这是我的代码
$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);
告诉我有一个项目满足搜索但是循环永远不会执行可能是什么问题?提前致谢。
答案 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();
}