給產(chǎn)品經(jīng)理及UI的PHP教程丨文章管理系統(tǒng)創(chuàng)建文章(關(guān)聯(lián)數(shù)據(jù))

發(fā)布時(shí)間:2024-07-28
之前的課程為了大家好理解,鋪墊了好多廢話。以后盡量就不說那么多廢話了,單刀直入了!
第一步到phpmyadmin在study數(shù)據(jù)庫下創(chuàng)建一個(gè)名為article的數(shù)據(jù)表,字段數(shù)6,并添加對(duì)應(yīng)的字段如下圖所示:
ps:添加字段的時(shí)候當(dāng)然不會(huì)只有這些選項(xiàng),為了方便插圖,被我給p掉了。a_i就是auto_increment的縮寫。
這里用到了新的字段類型:text,之前有提到過像正文這種需要存儲(chǔ)的字符量多的情況下用text類型。
關(guān)聯(lián)數(shù)據(jù):
這節(jié)課里講到的數(shù)據(jù)關(guān)聯(lián)的方法是一種最簡(jiǎn)單的方法,我們?cè)谖恼卤韆rticle里加了一個(gè)cat_id字段,之前的欄目表category里也有一個(gè)cat_id字段,我們通過這個(gè)字段讓2個(gè)數(shù)據(jù)表之間產(chǎn)生一種聯(lián)系。只需要在發(fā)布文章的時(shí)候在cat_id里添加一條與已創(chuàng)建的欄目一致的某個(gè)id上去,后面就可以通過article表中的cat_id來查詢所屬欄目在category表中是叫什么名字的。
打開article_list.php頁面,代碼改成如下:
打開article.php頁面,代碼改成如下:
這兩段代碼是一個(gè)頁面內(nèi)連著的,因?yàn)榫庉嬈鞯囊恍﹩栴},分開起來看得更清楚些。
打開article_add.php頁面,代碼改成如下:
運(yùn)行之后進(jìn)入添加文章頁面可以看到如下結(jié)果:
select * from category 這段代碼本次增加了order by cat_id asc。在對(duì)數(shù)據(jù)表進(jìn)行查詢并保存結(jié)果集的時(shí)候可以通過order by來指定排序規(guī)則。后面跟著字段名來指定由哪個(gè)字段值來排序。asc代表著升序,desc代表著降序。1、2、3、4這叫升序,4、3、2、1這叫降序。我們可以在數(shù)據(jù)表中選擇任意字段作為排序字段。
在本節(jié)課程中我把這段代碼加到了article.php頁內(nèi),并沒有加在article_add.php頁內(nèi)。并不是因?yàn)榧拥絘rticle_add.php頁里不可以,而是因?yàn)樵摻Y(jié)果集我們需要應(yīng)用到好幾個(gè)頁面里,如列表頁、查看頁、修改頁、添加頁。這4個(gè)頁面無一例外是通過include方式包含到了article.php頁面內(nèi),所以把這段代碼加到了article頁面內(nèi),這樣該結(jié)果集就可以在任何被include進(jìn)來的頁面內(nèi)起作用。
ps:在這里需要注意放置的位置,程序都是把代碼從上往下按順序執(zhí)行。所以需要執(zhí)行的代碼的位置在順序上也需要合理安排,不可隨意放置。比如在這里我把代碼放在了配置文件下方,其他頁面上方。
category_add.php頁面我們這次用到了新的html元素select標(biāo)簽(下拉選項(xiàng))。select標(biāo)簽內(nèi)含有多個(gè)option標(biāo)簽,option標(biāo)簽是該下拉選項(xiàng)中的各個(gè)值。純html的格式如下:
當(dāng)我們通過表單提交該下拉選項(xiàng)的時(shí)候被提交上去的值是option value=””中的值,而不是option和/option中間的文字,該文字只是用來顯示用的。
label是一個(gè)類似于名片一樣的東西,label for=”cat_id”就代表著該label是id為cat_id的表單標(biāo)簽select的名片的意思。label的作用是當(dāng)你用鼠標(biāo)點(diǎn)擊了label內(nèi)的文字的時(shí)候,鼠標(biāo)的焦點(diǎn)會(huì)移動(dòng)到該label指向的表單標(biāo)簽中去。通常用于單選按鈕和復(fù)選框,因?yàn)榘粹o或者選擇框太小,通過用label指定的話可以點(diǎn)擊文字的形式選定對(duì)應(yīng)的選項(xiàng),有助于提高交互。
ps:要注意label for指向的是id,表單提交的時(shí)候的參數(shù)名卻是name不要弄混噢!
好了,接下來讓我們完成創(chuàng)建文章的功能吧。
打開article_add.php頁面,代碼改成如下。
article.php頁面,php部分的代碼改成如下:
這次新增的html標(biāo)簽有textarea,這個(gè)是文本域,與文本框最大的區(qū)別是可以換行。rows是行數(shù),cols是列數(shù)。文本域里的文字內(nèi)容(值)是放在textarea和/textarea之間,不放在value里。
運(yùn)行后進(jìn)入添加欄目頁面可以看到如下結(jié)果:
試著添加幾篇文章吧!
雖然文章可以添加成功了,頁面也太丑了是不是?我們來美化一下。
打開admin.css頁面增加如下代碼:
css具體我也不打算講,就算是送給大家了,省的一些像我這樣的人看著界面太難看鬧心。
簡(jiǎn)單講幾個(gè)知識(shí)點(diǎn)。可以像ul,li或者.text-input,textarea一樣通過逗號(hào)“,”連接的形式把同樣的一個(gè)css樣式應(yīng)用到多個(gè)class類或者h(yuǎn)tml標(biāo)簽。
可以通過.input_form ul li一樣用空格隔開的方式對(duì).input_form內(nèi)的ul內(nèi)的li定義樣式,不用非得由class名開頭,用html標(biāo)簽開頭也可以。
運(yùn)行后可看到如下結(jié)果:
留個(gè)作業(yè):
把選擇欄目的功能實(shí)現(xiàn)成單選按鈕的形式,如下圖所示:
通過while循環(huán)出對(duì)應(yīng)的單選按鈕標(biāo)簽和和label。輸出成功之后的html代碼如下:
要點(diǎn):
1. 單選按鈕的類型為radio
2. 當(dāng)name值相同時(shí)會(huì)被當(dāng)作一組按鈕,在同一組中只可選定一個(gè)按鈕。
3. label for對(duì)應(yīng)的是id,因此id要不同,不然無法正確對(duì)應(yīng)。
4. 真正傳遞的值是value里的值。
上一個(gè):結(jié)構(gòu)抗震有哪些計(jì)算原則?
下一個(gè):原子吸收分光光度計(jì)的日常維護(hù)要點(diǎn)

不再為裝純煩惱,四川純水機(jī)讓水本該如此
NIST SRM6g鑄鐵標(biāo)準(zhǔn)物質(zhì)規(guī)格
oppo怎么傳文件,oppor17怎么傳文件
2019年物聯(lián)網(wǎng)發(fā)展六大趨勢(shì)
hplc法測(cè)定山綠茶不同炮制品種中綠原酸和蘆丁的含量
氣動(dòng)襯氟法蘭蝶閥的主要特性
iphone超級(jí)夜景模式(蘋果超級(jí)夜景模式怎么調(diào))
實(shí)驗(yàn)室洗瓶機(jī)除了正確操作外,維護(hù)保養(yǎng)也不可忽視
.cn 域名 注冊(cè)
西門子440變頻器怎么在面板上監(jiān)控(查看)電機(jī)電流?
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos