在这段代码中我试图用我搜索过的标签输出所有图像。我用相同的标签'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,所以我知道查询正在运行。
答案 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'];
}
提示:尝试更改为MYSQLI
或PDO
,不再维护MYSQL