深入資料庫讀取與顯示邏輯,掌握 while 迴圈與 if-else 流程控制。
<?php
$db = mysql_connect("localhost", "root");
mysql_select_db("mydb", $db);
$result = mysql_query("SELECT * FROM employees", $db);
echo "<table border=1>\n";
echo "<tr><td>姓名</td><td>職位</td></tr>\n";
while ($myrow = mysql_fetch_row($result)) {
printf("<tr><td>%s %s</td><td>%s</td></tr>\n", $myrow[1], $myrow[2], $myrow[3]);
}
echo "</table>\n";
?>
mysql_fetch_row() 回傳數值索引陣列,欄位從 0 開始,複雜查詢時易混淆。<?php
$db = mysql_connect("localhost", "root");
mysql_select_db("mydb", $db);
$result = mysql_query("SELECT * FROM employees", $db);
if ($myrow = mysql_fetch_array($result)) {
echo "<table border=1>\n";
echo "<tr><td>姓名</td><td>住址</td></tr>\n";
do {
printf("<tr><td>%s %s</td><td>%s</td></tr>\n", $myrow["first"], $myrow["last"], $myrow["address"]);
} while ($myrow = mysql_fetch_array($result));
echo "</table>\n";
} else {
echo "對不起,沒有找到記錄!";
}
?>
mysql_fetch_array() 同時提供關聯與數值索引,可用欄位名 $myrow["first"] 讀取,碼更易讀。if-else 先判斷是否有資料,無資料顯示友善訊息。do-while 確保第一筆資料(已在 if 中讀取)不會遺漏,避免一般 while 直接讀取下一筆導致首筆丟失。掌握此模式,即可建立健壯的資料列表頁面。