在这段代码中,我试图输出带有我搜索到的标签的所有图像。我创建了两张带有相同标签'hi‘的图片。
不过,该程序只输出其中一个图像。但是当我回显$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,因此我知道查询正在工作。
发布于 2013-02-08 07:24:57
您需要使用循环来迭代结果数组。
$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-08 07:25:10
您需要获取第4行中返回的所有行,而不仅仅是第一行。
发布于 2013-02-08 07:27:02
尝尝这个
$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
https://stackoverflow.com/questions/14763027
复制相似问题