我有一个奇怪的问题,把一个查询放入一个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