[英]PHP only returning first MySQL result
我有一個循環,應該顯示所有MySQL結果的摘要。 它通過確定結果可能如何然后循環多次來做到這一點。 因此,如果有43個匹配我的查詢的結果,而不是顯示所有43個結果,它只會顯示第一個結果43次。 請幫忙! 這是我的代碼:
if (empty($res)) {
echo 'No results found';
} else if($num>1){
echo "<b>".$num_rows."<b> results found...<br>";
while ($res = mysql_fetch_assoc($result)) {
echo "<a href='#'>{$res['dealer']}</a><br>";
}
} else {
echo "<table border=\"0\"><tr><td colspan=\"2\"><span class=\"dealer\">" . $res['dealer'] . "</span></td></tr><tr><td><span class=\"label\">Pin: </span><span class=\"inf\">" . $res['pin'] . "</span></td><td><span class=\"label\">OB CODE: </span><span class=\"ob\">" . $res['ob'] . "</span></td></tr><tr><td><span class=\"label\">Program Director:</span></td><td><span class=\"inf\">" . $res['contact'] . "</span></td></tr><tr><td valign=\"top\"><span class=\"label\">Address:</span></td><td><span class=\"inf\">" . $res['address'] . "<br>" . $res['city'] . ", " . $res['state'] . "<br>" . $res['zip'] . "</span></td></tr><tr><td><span class=\"label\">Dealer Phone:</span></td><td><span class=\"inf\">" . $res['phone'] . "</span></td></tr><tr><td><span class=\"label\">Codes Valid on:</span></td><td><span class=\"inf\">" . $res['website'] . "</span></td></tr></table>";
}
非常感謝!
那是因為您只獲取了第一行(當您執行$res = mysql_fetch_assoc($result);
)。 實際上,您不需要做的是: mysql_fetch_assoc()
會在每次運行時自動將數據指針向前移動。 您可以做的(實際上是通常的做法)是:
//...
while ($res = mysql_fetch_assoc($result)) {
echo "<a href='#'>{$res['dealer']}</a><br />";
}
//...
附帶一提, mysql_*
函數即將被棄用。 您可以使用mysqli
或PDO
代替。 如果您是懶惰的笨蛋,並且有很多代碼要切換(像我一樣),則可以使用mysqli
程序函數-它們與原始mysql_*
函數幾乎相同。
你應該用
$res = mysql_fetch_assoc($result);
每次您想要檢索新行
您必須在循環中執行此操作:
$res = mysql_fetch_assoc($result);
...因為那樣只會拉第一個結果。 這是正確的方法:
while($res = mysql_fetch_assoc($result)){
echo "<a href='#'>".$res['dealer']."</a><br>";
i++;
}
干杯
采用:
while($res = mysql_fetch_assoc($result)) { echo $res['dealer']; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.