0

我有以下代码,它只显示 1 个结果。但是,我的数据库中有六行 product_id = '1'。我说的是$order,只有一个出现,而不是六个。怎么了?

$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))
{
$order = $row['ordernummer'];
$artikel = $row['artikelnummer'];
echo "<strong>$order</strong><br />";
}

我的数据库结构:

id (primary & autoincrement)(int 11)

product_id (int 11)

数字(整数 11)

订单号(int 11)

4

3 回答 3

1

因为你的 id 是 int,所以你不需要使用 ''

$get = "SELECT * FROM artikelbestelling WHERE product_id = '1' LIMIT 0, 500";
$doget = mysql_query($get) or die(mysql_error());

while($row = mysql_fetch_array($doget))
{
$order = $row['ordernummer'];
$artikel = $row['artikelnummer'];
echo "<strong>$order</strong><br />";
}
于 2012-07-17T18:44:15.553 回答
0

我立即注意到有两件事不应该有所作为,但可能值得一试,看看是否有影响。首先,假设 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 关于空标签的评论,您误解了结果。

这可能有效地帮助缩小范围。

于 2012-07-17T18:39:40.230 回答
0

尝试这个.....

$get = "SELECT * FROM artikelbestelling WHERE product_id = '1'  
LIMIT 0, 500";
$doget = mysql_query($get) or die(mysql_error());

while($row = mysql_fetch_array($doget))
{
echo "$row[ordernummer]";
echo "<br />";
echo "$row[artikelnummer]";
}
于 2012-07-17T19:10:01.450 回答