我有一個奇怪的問題,把一個查詢放入一個html表中顯示在php/mysql設置。該查詢總是會產生比所示更多的結果。例如,如果返回了一組結果,則表中不會顯示任何結果。如果有5個,只顯示4個。我已經使用預定義的函數嘗試了相同的查詢來生成基於查詢的表格,並生成了具有正確結果數量的正確表格。下面是一個例子(用於縮進,或缺乏道歉):PHP/MySQL查詢到html表問題
$user_id = implode($_SESSION['user_id']);
$query = "SELECT name, address
FROM user
WHERE user_id = '$user_id'
ORDER BY date_added DESC";
$result = mysql_query($query) or die ("query failed: " . mysql_error());
echo "<table border='1' style=\"border-collapse: collapse;\">
<tr style=\"background-color: #000066; color: #FFFFFF;\">
<th>Name</th>
<th>Address</th>
</tr>";
$rowCt = 0; // Row counter
while($row = mysql_fetch_array($result))
{
if($rowCt++ % 2 == 0) $Style = "background-color: #00CCCC;";
else $Style = "background-color: #0099CC;";
echo "<tr style=\"$Style\">";
echo "<td>" . $row['name'] . "</td>";
echo "<td>" . $row['address'] . "</td>";
echo "</tr>";
}
echo "</table>";
任何想法,爲什麼發生這種情況?任何幫助將不勝感激,這讓我瘋狂,需要弄清楚,然後才能繼續前進!謝謝。
編輯
我稍微改變它遍歷行的量,這個數字是正確的,現在的表是正確的尺寸,但是最後的結果總是空的。有任何想法嗎?
$rowCt = 0; // Row counter
$i = 0;
echo mysql_num_rows($result). ' number of rows';
$num = mysql_num_rows($result);
//while($row = mysql_fetch_array($result))
while ($i < $num)
{
$row = mysql_fetch_array($result);
if($rowCt++ % 2 == 0) $Style = "background-color: #00CCCC;";
else $Style = "background-color: #0099CC;";
echo "<tr style=\"$Style\">";
echo "<td>" . $row['name'] . "</td>";
echo "<td>" . $row['address'] . "</td>";
echo "</tr>";
$i++;
}
echo "</table>";
感謝
echo mysql_num_rows($ result);並確保它返回你期望的行數 – Tom 2012-04-01 01:40:27
你想用'implode($ _ SESSION ['user_id'])'做什麼? – mshsayem 2012-04-01 01:50:37
我看到你的代碼沒有錯。只有在你身邊,你有一個if和else,試着評論他們,看看會發生什麼,它可以做一些意想不到的事情。另外我建議直接在phpmyadmin中執行$ query(如果已安裝)並查看返回的數據集以確認返回的數據。 – ArendE 2012-04-01 02:02:11