MySQL查询只收到1个结果

时间:2012-07-17 18:33:00

标签: php mysql

我有以下代码,只显示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&amp; autoincrement)(int 11)

product_id(int 11)

number(int 11)

ordernummer(int 11)

3 个答案:

答案 0 :(得分:1)

因为您的身份证明,您不需要使用''

$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 />";
}

答案 1 :(得分: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关于空标记的评论,你误解了结果。

这可能有效地缩小了它的范围。

答案 2 :(得分: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]";
}