当我直接从PHP执行此查询时,我的管理员得到了5个结果。
SELECT img FROM `table`.`goog` WHERE `url` LIKE '%google.com%' and `pictureID` != 'picture_50d22657a423b6.62354164';
然而,当我的代码
$sql2 = "SELECT img FROM `table`.`goog` WHERE `url` LIKE '%$url%' and `pictureID` != '$pictureID';";
// echo $sql2;
$result2=mysql_query($sql2);
$rows2 = mysql_fetch_array($result2);
mysql_close($con);
print_r(count($rows2));
echo "<br/>";
echo $sql2;
打印出来
2
SELECT img FROM `ashkan`.`goog` WHERE `url` LIKE '%66.228.42.45%' and `pictureID` != 'picture_50d22657a423b6.62354164';
我还要注意,我运行的php我的管理员的查询是从我的代码返回的内容中复制的。
那么,为什么一个只返回2个项目,另一个返回5?
修改
我在底部添加了以下内容
var_dump($rows2);
echo "<br/>";
echo mysql_num_rows($result2);
并得到了这个
array(2) { [0]=> string(1) "b" ["img"]=> string(1) "b" }
5
我有手动选择行的东西
基本上我希望能够做到
echo $rows2[somenum]; //that some number is at random and only one at a time
然而,按原样,我只能访问第0项而不是全部5项。
答案 0 :(得分:1)
mysql_fetch_array()
仅从结果集中提取一行,并将指针向前移动一行。
如果要计算查询返回的行数,请使用mysql_num_rows()
echo mysql_num_rows($result2);
答案 1 :(得分:1)
这是您的更新代码:
$mysqlQuery=mysql_query("SELECT img FROM `table`.`goog` WHERE `url` LIKE '%$url%' and `pictureID` != '$pictureID");
$databaseArray=array();
while($arrayQuery=mysql_fetch_array($mysqlQuery))
{
$imageName=$arrayQuery['img'];
$databaseArray[]=$imageName;
}
echo "Database returned ".count($databaseArray)." rows.";
print_r($databaseArray);
echo $databaseArray[0]; // prints image name row 1
echo $databaseArray[1]; // prints image name row 2
echo $databaseArray[2]; // prints image name row 3
// etc etc etc
这样做:
$sql2 = "SELECT img FROM `table`.`goog` WHERE `url` LIKE '%$url%' and `pictureID` != '$pictureID';";
// echo $sql2;
$result2=mysql_query($sql2);
while($data = mysql_fetch_array($result2))
{
var_dump($data);
}
mysql_fetch_array一次只返回一行。上面的代码循环遍历数据库中的所有行。如果您只想计算行数,请检查mysql_num_rows()函数。
你也应该使用mysqli_ *而不是mysql_ *,因为它已被弃用。请阅读更多: http://php.net/manual/en/book.mysqli.php
答案 2 :(得分:1)
使用:
print_r(count($rows2));
您只计算此行的数组键数
你应该这样做:
echo mysql_num_rows($result2);
答案 3 :(得分:0)
你必须迭代结果。
$sql2 = "SELECT img FROM `table`.`goog` WHERE `url` LIKE '%$url%' and `pictureID` != '$pictureID';";
// echo $sql2;
$result2=mysql_query($sql2);
// iterate over the results
while($row = mysql_fetch_assoc($result2)) {
print_r($row);
}
mysql_close($con);