我立即注意到有两件事不应该有所作为,但可能值得一试,看看是否有影响。首先,假设 product_id 列是数字列而不是字符串,请尝试仅使用 1 而不是 '1'。其次,明确检查mysql_fetch_assoc()
FALSE 的结果,而不是任何可能等于 false 的表达式。
$get = "SELECT * FROM artikelbestelling WHERE product_id = 1 LIMIT 0, 500";
$doget = mysql_query($get) or die(mysql_error());
while(($row = mysql_fetch_assoc($doget)) !== FALSE)
{
$order = $row['ordernummer'];
$artikel = $row['artikelnummer'];
echo "<strong>$order</strong><br />";
}
编辑:
如果您将代码更改为以下内容,您会得到什么?
$get = "SELECT * FROM artikelbestelling WHERE product_id = 1 LIMIT 0, 500";
$doget = mysql_query($get) or die(mysql_error());
$index = 0;
while(($row = mysql_fetch_assoc($doget)) !== FALSE)
{
$order = $row['ordernummer'];
$artikel = $row['artikelnummer'];
echo $index++ . ": <strong>$order</strong><br />";
}
具体来说,它是从 0 一直计数到 7,还是只显示第 0 行?我认为它必须是以下之一:
- 你真的只得到一行结果(这与你
mysql_num_rows()
返回 8 的语句相矛盾),
mysql_fetch_assoc()
仅在一行之后错误地返回 FALSE(这表示某种影响 PHP 或 MySQL 驱动程序的错误,这通常不太可能),或者
- 它正在按应有的方式遍历循环,但是根据 Marc B 关于空标签的评论,您误解了结果。
这可能有效地帮助缩小范围。