并非所有行都输出PHP Mysql

时间:2013-02-07 23:23:20

标签: php mysql

在这段代码中我试图用我搜索过的标签输出所有图像。我用相同的标签'hi'创建了2张图片。

该程序仅输出其中一个图像。但当我回显$ rows数时,它等于2.当我在MYSQL中运行查询时,它也返回了2行。我不明白为什么所有的图像都被显示出来。

 $input = ($_GET['input']);
$query = "SELECT * FROM `photo`.`photo` WHERE `tags` LIKE '%$input%'";
$result = mysql_query($query);
$data = mysql_fetch_array($result) or die (mysql_error());
$rows = mysql_num_rows($result);
$image = $data['image'];
     header('Content-type: image/jpeg');
     echo $image;

这不是我的所有代码,但我认为这是必要的。以下是另一页显示的内容。

echo "<img src='photolarge.php?input=$input'>"

当我回显$ rows时,它会输出数字2,所以我知道查询正在运行。

3 个答案:

答案 0 :(得分:1)

您需要使用循环来遍历结果数组。

$query = "SELECT * FROM `photo`.`photo` WHERE `tags` LIKE '%$input%'";
$result = mysql_query($query);
while($rows = mysql_fetch_array($result)) {
    echo $rows[image];
}

正如我在评论中提到的,请不要使用mysql_函数。您还需要清理参数,因为您的代码易受SQL注入攻击。

答案 1 :(得分:0)

您需要获取第4行中返回的所有行,而不仅仅是第一行。

答案 2 :(得分:0)

试试这个

   $query = "SELECT * FROM `photo`.`photo` WHERE `tags` LIKE '%$input%'";
   $result = mysql_query($query);
   while($row = mysql_fetch_array($result)) {
   echo $row['image'];
   }

提示:尝试更改为MYSQLIPDO,不再维护MYSQL