這一章節(jié)我們來看用戶輸入網(wǎng)頁后的主界面。
一般來說,默認(rèn)主頁都是 index 點(diǎn) xxx,比如 index.php, index.html , index.jsp 等等。我們來看一下我們的 index.php 吧。
index.php
提醒:在<?php?>的兩端,不要出現(xiàn)任何空格或者其他字符,也就是不要在
<?php
的前面加上空格這樣的字符,然后?>
后面也不要出現(xiàn)其余的字符,不然的話可能會(huì)出現(xiàn)這樣的提示:
我之前出現(xiàn)過這樣的情況,Google 了之后是說 header 必須放在最開始的時(shí)候執(zhí)行,不能先有輸出然后再 header。
再次強(qiáng)調(diào)一遍,stackoverflow 真的是太強(qiáng)大了,基本上所有的問題都能在上面找到答案。
接下來,我們看兩個(gè) include_once() 相當(dāng)于 import 進(jìn)來的文件,在整個(gè) index.php 中我們移動(dòng) include 了 3 個(gè)文件,分別是 db_fns.php, header.php 和 footer.php。
我們分別來看吧。
db_fns.php
這個(gè)階段我們只需要用到這個(gè) db_connect() 函數(shù)就好了,不要忘記在結(jié)尾加上?>
。
這個(gè)函數(shù)是用來連接數(shù)據(jù)庫的,mysql_connect() 函數(shù)里面的3個(gè)參數(shù),分別是 數(shù)據(jù)庫的地址、數(shù)據(jù)庫的用戶名稱、該用戶的密碼。
友情提醒下,上一篇里面可以下載到源代碼,那里面的密碼我是改成了‘password’的,真實(shí)的密碼不一樣哦。然后用 mysql_select_db() 函數(shù)來選擇我們的數(shù)據(jù)庫。
這樣就可以連接到我們之前建好的數(shù)據(jù)庫了。
header.php 和 footer.php 其實(shí)就相當(dāng)于獨(dú)立出來的框架,在不同的頁面里面,我們只需要修改里面的內(nèi)容,而外圍的這個(gè)框架是不變的,所以單獨(dú)把它們摘出來。
header.php
可以看到,header.php 里面其實(shí)沒有 php 的代碼,都是純的 HTML 的代碼,這里就不多做講解了,都很簡(jiǎn)單的標(biāo)簽、鏈接地址、CSS等等
footer.php
footer 也一樣,都是純的 HTML 標(biāo)簽。這兩部分結(jié)合起來看,就是一個(gè)完整的框架,然后我們需要做的,就是修改中間的部分,讓它們?cè)诓煌捻撁嬲故静煌膬?nèi)容。
讓我們把注意力集中在 index.php 中間的 php 代碼塊部分。我們慢點(diǎn)來,剛開始總會(huì)有點(diǎn)困難:
我再帖一遍代碼:
代碼的第 12 行,我們寫了我們工程中的第一個(gè) sql 語句,我們從 page 表中把所有的內(nèi)容篩選出來,如果在數(shù)據(jù)庫里面是這樣的:
我們看到 page 表里面存了所有文章的類型,用 code 來表示;每種類型的描述也都相應(yīng)地存儲(chǔ)了下來。然后我們通過 mysql_query 函數(shù)把 select 的結(jié)果保存到一個(gè)變量 pages_result 里面:
$pages_result = mysql_query($pages_sql);
然后,看代碼的第 17 行,在 while 語句中,我們用到了一個(gè)函數(shù) mysql_fetch_assoc 來把搜索出來的結(jié)果存到一個(gè)字典里面。
如果你 Google 一下這個(gè)函數(shù),會(huì)發(fā)現(xiàn)在 Mysql 的函數(shù)中,一共有 3 個(gè):
mysql_fetch_row , mysql_fetch_array 和mysql_fetch_assoc
row 的話只能用下標(biāo) 0,1,2 來選取不同列的內(nèi)容,而 assoc 可以通過數(shù)據(jù)庫的列名來選取,array 即可以用數(shù)字,也可以用 key 來找。
所以在第一次執(zhí)行 while 語句是變量 pages 里面其實(shí)是一個(gè) key 和 value 的鍵值對(duì),key 是 code 和 description ,value 分別是 news 和 'The top news stories from around the world';
所以,我們就能理解 18,19 行的 select 語句是如何組成了的吧?不懂的可以留言,大家一起學(xué)習(xí)!
通過 while 語句循環(huán),我們依次得到 3 個(gè) select 語句,從 stories 表里面選取出按照 page 做分類的所有 stories
這樣,我們以此顯示出不同 page 的第一個(gè) story(因?yàn)槭?if 不是 while,僅顯示第一個(gè) story 的相關(guān)內(nèi)容);然后我們通過 resize_image.php 顯示出來對(duì)應(yīng)的圖片,這個(gè)我們放到下個(gè)章節(jié)來介紹,包括數(shù)據(jù)庫里面的一些小 tips 和 header 里面的幾個(gè)鏈接,我們都放到以后介紹。
這樣代碼寫下來,在瀏覽器里面輸入我們的網(wǎng)址,就能顯示出來相應(yīng)的內(nèi)容了。當(dāng)然,如果你點(diǎn)擊上面的鏈接是會(huì)提示錯(cuò)誤的,我們慢慢來完善吧。
本文由 kaka 創(chuàng)作,采用 知識(shí)共享署名-相同方式 3.0 (CC協(xié)議)中國(guó)大陸許可協(xié)議 進(jìn)行許可。轉(zhuǎn)載、引用前需聯(lián)系作者,并署名作者且注明文章出處。
更多建議: