而mysql_fetch_array循环不运行

时间:2014-03-17 10:59:58

标签: php

这是我的代码

$itemSelect="select * from items where gender='men' and type='suite'";
$itemQuery=mysql_query($itemSelect) or die(mysql_error());
$num=count($itemQuery);
echo $num;
if($itemQuery)
{
    echo "I am here";
    echo "<table>";
    while($row = mysql_fetch_array($itemQuery))
    {
            $photo=$row['photo'];
            $name=$row['name'];
            $price=$row['price'];
            echo "<tr><td>". $photo ."</td><td>" .$name ."</td><td>" .$price ."</td>     </tr>";
    }
    echo "</table>";
}
else
{
    echo "There is some mistacke";
    die();
}

所以这里$num=count($itemQuery);告诉我有一个项目满足搜索但是循环永远不会执行可能是什么问题?提前致谢。

2 个答案:

答案 0 :(得分:2)

您获得1的原因是因为此代码:

$num=count($itemQuery);
echo $num;

count是一个获取数组中项目数的函数。如果您传递的不是数组(或未实现ICountable接口),那么count将始终返回1

所以这段代码不正确,因为它显示为1,而该数字与返回的行数完全无关。

查询本身对我来说很好,虽然我无法针对您的实际数据库进行验证。如果您看到消息"I am here",那么您的查询执行正常,但没有返回任何行。如果您没有看到该消息,那么其他问题就出错了。在这种情况下,您可以使用mysql_error尝试查找任何错误。

答案 1 :(得分:0)

$count= mysql_num_rows($itemQuery);
echo $count;
if($count > 0)){
    echo "<table>";
    while($row = mysql_fetch_array($itemQuery)){
        $photo=$row['photo'];
        $name=$row['name'];
        $price=$row['price'];
        echo "<tr><td>". $photo ."</td><td>" .$name ."</td><td>" .$price ."</td>     </tr>";
    }
    echo "</table>";
}else{
    echo "there are no results";
    die();
}