0

在这段代码中,我试图用我搜索的标签输出所有图像。我创建了 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 所以我知道查询正在工作。

4

3 回答 3

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 注入的影响。

于 2013-02-07T23:24:57.247 回答
0

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

于 2013-02-07T23:25:10.293 回答
0

尝试这个

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

提示:尝试改成MYSQLIor PDO,MYSQL不再维护

于 2013-02-07T23:27:02.173 回答