幾種顯示數(shù)據(jù)的方法的比較
發(fā)表時(shí)間:2023-08-10 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
用于顯示數(shù)據(jù)庫(kù)數(shù)據(jù)的時(shí)候,一般用循環(huán)體來(lái)做,常用的方法有while()和for()兩種語(yǔ)句,下面就來(lái)講一下他們?cè)诓煌闆r下各自的用法。
我們來(lái)分別介紹:
while()語(yǔ)句是可以顯示全部數(shù)據(jù),在不知道循環(huán)次數(shù)的情況下,尤其顯得方便,而for()語(yǔ)句呢,可以輸出顯示從指定位置開(kāi)始到指定位置結(jié)束的數(shù)據(jù),在輸出顯示一定范圍的數(shù)據(jù)時(shí)就用得上了。下面看一下編程實(shí)例:
我們先建一個(gè)數(shù)據(jù)庫(kù)來(lái)備用:數(shù)據(jù)庫(kù)名為:mydb 表名為:tbl。
用下面的語(yǔ)句:create table tal (idx int(3),url char (100),freetext char(100))
可以用phpmyadmin工具來(lái)向數(shù)庫(kù)表中插入若干個(gè)數(shù)據(jù)。
編程開(kāi)始: $id=mysql_connect("localhost") or die("無(wú)法建立數(shù)據(jù)庫(kù)鏈接");#鏈接數(shù)據(jù)庫(kù)
$result=mysql_db_query("mydb","select * from tbl",$id);#查詢(xún)結(jié)果并存入變量中
$rows=mysql_num_rows($result);#得出數(shù)據(jù)表中的總行數(shù),也就是數(shù)據(jù)的總個(gè)數(shù)
echo"<table>";#準(zhǔn)備以表格的形式輸出
echo "</table>";#表格結(jié)束
在上面兩句中插入輸出語(yǔ)句,對(duì)應(yīng)于不同的情況,輸出語(yǔ)句分為幾種情況:
若輸出全部數(shù)據(jù),先用for()來(lái)做
for($i=0;$i<$rows;$i++){
$total=mysql_fetch_array($result);
echo "<tr><td bgcolor=yellow><a href="http://$total[url]"target=_blank>$total[freetext]</a>$total[idx]</tr></td>";
}
用while()來(lái)做
while($total=mysql_fetch_array($result))
{ echo "<tr><td bgcolor=yellow><a href="http://$total[url]"target=_blank>$total[freetext]</a>$total[idx]</tr></td>";
}
當(dāng)我們想要分頁(yè)顯示的時(shí)候,也就是不能一下子把所有的數(shù)據(jù)一次性的顯示完,那么可以用for()來(lái)完成這個(gè)任務(wù)。
我們假設(shè)每輸出10個(gè)數(shù)據(jù),用$page來(lái)表示當(dāng)前的頁(yè)數(shù)$pagesize=10來(lái)表示第頁(yè)的數(shù)據(jù)數(shù)量.語(yǔ)句如下所示:
for ($i=0;$i<$pagesize;$i++)
{
$start=($page-1)*$pagesize+$i;#計(jì)數(shù)起始的數(shù)據(jù)行數(shù)
if ($start<$rows)
$idx=mysql_result($result,$start,"idx");
$url=mysql_result($result,$start,"url");
$freetext=mysql_result($result,$start,"freetext");
echo "<tr><td bgcolor=yellow><a href="http://$url"target=_blank>$freetext</a>$idx</tr></td>";
上述語(yǔ)句用for()分別得出數(shù)據(jù)表中的各字段的值存入變量中,用echo語(yǔ)句顯示出來(lái)。
以上程序在apache+mysql+php4中運(yùn)行通過(guò)