PHP教學(xué)內(nèi)容詳解:數(shù)據(jù)表與翻頁(yè)
4.2日筆記
本項(xiàng)目?jī)?nèi)容為在網(wǎng)頁(yè)上顯示一個(gè)數(shù)據(jù)表格,包括姓名,年齡,性別,成績(jī)。以及實(shí)現(xiàn)表格的翻頁(yè)。

首先建立一個(gè)php文件,命名按個(gè)人喜好,本文件用于存儲(chǔ)數(shù)據(jù)表數(shù)據(jù)以及輸出
我的命名是:Mu_lu.php
注:一下所有變量名,都可以自己命名的,用最容易理解的就好
1.
在php中定義一個(gè)二維數(shù)組,用來(lái)存放數(shù)據(jù)表內(nèi)容。一共十二組學(xué)生數(shù)據(jù)。主需要注意三點(diǎn):
只有二維數(shù)組需要變量存儲(chǔ),二維數(shù)組里的一維數(shù)組則不需要,會(huì)自動(dòng)分配從0開(kāi)始的下標(biāo)。
在每個(gè)一維數(shù)組定義完成后,需要一個(gè)“,”因?yàn)橐痪S數(shù)組是二維數(shù)組的一個(gè)元素,元素與元素之間需要“,”隔開(kāi),別忘了。
數(shù)據(jù)的鍵用單引號(hào)括起來(lái),值則看它的數(shù)據(jù)類型,如果是字符串,就用雙引號(hào)括起來(lái),如果是數(shù)字(int/folat)則不需要。
2.
本行代碼用于計(jì)算變量$mulu的長(zhǎng)度,并賦值給變量$changdu。
3.
本行代碼用于設(shè)定每頁(yè)顯示的數(shù)據(jù)量,即一頁(yè)顯示幾個(gè)學(xué)生的數(shù)據(jù)。我設(shè)定為4.
4.
本行代碼用于檢測(cè)變量“yeshu”有沒(méi)有被賦值,有的話將其強(qiáng)制轉(zhuǎn)換為int型,沒(méi)有的話賦值為1。
yeshu即目錄當(dāng)前顯示的第幾頁(yè)
要注意三點(diǎn):
isset(變量1,...),本函數(shù)用于檢測(cè)變量有沒(méi)有被賦值,且其值不為 null。返回值為真假。
三目運(yùn)算符“?:”。功能為:(判斷本內(nèi)容是真是假)?(是真的話執(zhí)行本內(nèi)容):(是假的話執(zhí)行本內(nèi)容)
用$_GET調(diào)用變量不用$,而是將其放在['? ']之中,因?yàn)檫@個(gè)變量已經(jīng)被存放在了$_GET數(shù)組里。?
5.
本行代碼用于,用數(shù)組長(zhǎng)度除以每頁(yè)顯示的數(shù)據(jù)量,并向上取整,得出總頁(yè)數(shù)
ceil(int/float $num): float
本函數(shù)功能為:如果有必要,通過(guò)對(duì) num 向上取整返回下一個(gè)最高的整數(shù)。向上取整即進(jìn)一。
6.
本行代碼能找出yeshu與1中的最大數(shù),用于規(guī)定yeshu不能小于1。 ? ?要在第四行代碼yeshu后規(guī)定才能生效
7.
本行代碼能找出yeshu與總頁(yè)數(shù)的最小值,用于規(guī)定yeshu不能大于總頁(yè)數(shù) ? ?要在第四行代碼yeshu后規(guī)定才能生效
8.
本行代碼用于得出每頁(yè)顯示的最頂端的數(shù)據(jù)的下標(biāo),顯示數(shù)量乘以(頁(yè)數(shù)-1)。
9.
本行代碼用于得出每頁(yè)最下端的數(shù)據(jù)的下標(biāo),顯示數(shù)量乘以頁(yè)數(shù),再-1。
10.
本行代碼用于在(最下端數(shù)據(jù)下標(biāo))與(數(shù)組總長(zhǎng)度-1)中找最小值,用于規(guī)定這個(gè)數(shù)據(jù)不會(huì)大于數(shù)組總長(zhǎng)度? ? 要在第24行代碼$muoduan后規(guī)定才能生效
11.
這些代碼要寫在php文件中,是php與html的互嵌。目的是在php網(wǎng)頁(yè)中顯示表格
接下來(lái)的代碼都在<body></body>中寫。
12.
這些代碼是定義一個(gè)表格,bgcolor定義表格背景色,bprder定義表格邊框粗細(xì),單位為像素
接下來(lái)的代碼寫在<table></table>中
13.
在html中<tr></tr>表示一行。<td></td>表示一行中的一個(gè)單元格。
14.
本行代碼用于在html中運(yùn)用php語(yǔ)言,建立一個(gè)循環(huán),輸出$mulu的內(nèi)容
注意的點(diǎn)有:
循環(huán)變量i,每次循環(huán)以最頂端的數(shù)據(jù)的下標(biāo)開(kāi)始,最下端的數(shù)據(jù)的下標(biāo)結(jié)束,這樣的定義可以不會(huì)漏過(guò)任何一個(gè)數(shù)據(jù),也可以隨著數(shù)據(jù)表內(nèi)的元素量的改變而改變。注意,變量i小于等于最下端的數(shù)據(jù)的下標(biāo),不要只有一個(gè)小于號(hào)。
在php語(yǔ)言定義的循環(huán)算法中,定義html的行與單元格內(nèi)容。即每循環(huán)一次,輸出一行學(xué)生的數(shù)據(jù)。
輸出二維數(shù)組。" echo $數(shù)組名[一維數(shù)組名或者自動(dòng)分配的下標(biāo)][一維數(shù)組內(nèi)的元素名]",如果鍵是數(shù)字,那就不用單引號(hào),如果鍵是字符串,就需要單引號(hào)括起來(lái)。
方法的大括號(hào)可以寫在兩個(gè)php標(biāo)識(shí)中。
接下來(lái)建立第二個(gè)php文件,隨意命名,用于編寫翻頁(yè)方法。
我的命名是:Fan_ye.php
1.
關(guān)鍵字function 方法名 (參數(shù)) 的功能就是定義一個(gè)全新的方法,這個(gè)方法的名字,參數(shù),功能都可以自由定義。
我們要編寫的,是一個(gè)實(shí)現(xiàn)翻頁(yè)功能的方法。
接下來(lái)的代碼都要寫在這個(gè)方法中。
2.
定義一個(gè)變量,并將字符串??<a href = "?yeshu=1" > [首頁(yè)] </a>??賦值給它。
<a href = "?? " > [首頁(yè)] </a> 是一個(gè)htnl的超鏈接標(biāo)簽。href="?? "里面的是超鏈接指向的地址,“?”代表這個(gè)超鏈接要帶回一個(gè)返回值,就也就是雙引號(hào)中,問(wèn)號(hào)后的內(nèi)容。
被夾在<a></a>中間的[首頁(yè)],是網(wǎng)頁(yè)里會(huì)顯示的內(nèi)容,點(diǎn)擊它就相當(dāng)于點(diǎn)擊超鏈接。
本超鏈接指向頁(yè)數(shù)為1的目錄頁(yè)。
3.
本行代碼定義一個(gè)變量,這個(gè)變量的值可以實(shí)現(xiàn)跳轉(zhuǎn)到數(shù)據(jù)表上一頁(yè),并在第一頁(yè)停下。
三目運(yùn)算符?:? ? 如果頁(yè)數(shù)-1小于等于0,那么頁(yè)數(shù)不變,否則頁(yè)數(shù)-1.
4.
本行代碼是在變量$htmnl后用“.”連接了一個(gè)新的超鏈接。網(wǎng)頁(yè)顯示時(shí)就是“[首頁(yè)][上一頁(yè)]”
[上一頁(yè)]代表的超鏈接是<a href="?yeshu='.$shangyiye.'"></a>。
超鏈接的地址是".$shangyiye."。
因?yàn)?shangyiye是一個(gè)變量而不是方法,所以要在前后加兩個(gè)"."用來(lái)串接字符串。
5.
本行代碼定義一個(gè)變量,這個(gè)變量的值可以實(shí)現(xiàn)跳轉(zhuǎn)到數(shù)據(jù)表下一頁(yè),并在最后一頁(yè)停下。
同樣使用了三目運(yùn)算符:如果頁(yè)數(shù)+1大于總頁(yè)數(shù),則頁(yè)數(shù)不變,否則頁(yè)數(shù)+1。
6.
本行代碼是在變量$htmnl后用“.”連接了一個(gè)新的超鏈接。網(wǎng)頁(yè)顯示時(shí)就是“[首頁(yè)][上一頁(yè)][下一頁(yè)]”。
邏輯與第四行代碼相同
7.
本行代碼是在變量$htmnl后用“.”連接了一個(gè)新的超鏈接。網(wǎng)頁(yè)顯示時(shí)就是“[首頁(yè)][上一頁(yè)][下一頁(yè)][尾頁(yè)]”。
超鏈接地址指向總頁(yè)數(shù),數(shù)字意義上等同于最后一頁(yè)。
8.
方法 fanye 的返回值,變量$html。
接下來(lái)還要在Mu_lu.php中補(bǔ)充兩行代碼
1.
在第一行的位置寫include "? ?"? ?,函數(shù)功能是將雙引號(hào)中的文件的數(shù)據(jù)導(dǎo)入當(dāng)前文件中。
也就是可以在Mu_lu.php中使用Fan_ye.php的變量,方法等。
2.
在html表格的下面,也就是整個(gè)文件的最后一行,寫下輸出fanye方法的語(yǔ)句
首先寫下php標(biāo)識(shí)<?php? ?>。
用echo語(yǔ)句輸出 fanye();參數(shù)為$zongyeshu(總頁(yè)數(shù)),$yeshu(當(dāng)前頁(yè)數(shù))