首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >并非所有行都输出PHP Mysql

并非所有行都输出PHP Mysql
EN

Stack Overflow用户
提问于 2013-02-08 07:23:20
回答 3查看 110关注 0票数 0

在这段代码中,我试图输出带有我搜索到的标签的所有图像。我创建了两张带有相同标签'hi‘的图片。

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

代码语言:javascript
复制
 $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;

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

代码语言:javascript
复制
echo "<img src='photolarge.php?input=$input'>"

当我回显$rows时,它输出数字2,因此我知道查询正在工作。

EN

回答 3

Stack Overflow用户

发布于 2013-02-08 07:24:57

您需要使用循环来迭代结果数组。

代码语言:javascript
复制
$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
EN

Stack Overflow用户

发布于 2013-02-08 07:25:10

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

票数 0
EN

Stack Overflow用户

发布于 2013-02-08 07:27:02

尝尝这个

代码语言:javascript
复制
   $query = "SELECT * FROM `photo`.`photo` WHERE `tags` LIKE '%$input%'";
   $result = mysql_query($query);
   while($row = mysql_fetch_array($result)) {
   echo $row['image'];
   }

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14763027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档