如何显示一张图片而不是四张图片
Posted
技术标签:
【中文标题】如何显示一张图片而不是四张图片【英文标题】:How to show one image instead of four images 【发布时间】:2014-04-10 20:44:38 【问题描述】:在 mysql 数据库中,我有列名“product_id”,并且有 while 语句代码来检查行是否存在......
如果 product_id 的值存在,那么它会显示“note-icon.png”图像,如果不退出它会说“No”,但问题是假设在“product_id”中有四个 product_id 的 SAME NUMBER 然后结果将显示四张图片,我的问题是如何编写代码来显示一张图片而不是四张图片!
<?php
$sql = new mysqli($mysql_hostname, $mysql_user, $mysql_password, $mysql_database);
$query = "SELECT * FROM notes WHERE product_id = $product_id";
$results = mysqli_query($sql, $query);
while ($row = mysqli_fetch_array($results, MYSQLI_ASSOC))
if(isset($row['$product_id']))
echo "<p>No </p>";
else
echo '<img src="images/note-icon.png" />';
?>
【问题讨论】:
【参考方案1】:只选择一行:
MySQL:
SELECT * FROM notes WHERE product_id = ? LIMIT 1
SQL:
SELECT FIRST 1 * FROM notes WHERE product_id = ?
如果您想获取所有注释但为每个产品绘制一张图像,您可以这样做:
$product_ids = array();
while ($row = mysqli_fetch_array($results, MYSQLI_ASSOC))
if(!isset($row['product_id']))
echo "<p>No </p>";
else
if(!isset($product_ids[$row['product_id']]))
$product_ids[$row['product_id']] = 1;
echo '<img src="images/note-icon.png" />';
一些代码注释:您的查询中的$product_id
允许,前提是您之前将其转换为 int
else 使用占位符(准备好的语句)
if(isset($row['$product_id']))
这是什么?认为应该是:
if(!isset($row['product_id']))
你也忘了检查$results
,它不是false
,在使用之前..
【讨论】:
限制 1 不起作用,因为每条记录只显示一行,这种情况涉及分页,所以我有 30 条分页记录和图像我想在列字段中显示一个图像,如果相同的 product_id number 的值大于 ONE 相同值的数字。 您的原始查询选择所有具有 same product_id 的行 再次阅读您的问题,并尝试了解作者想要得到什么。。除了您表中的 product_id 字段之外,我什么都不知道.. 我的问题很清楚,我的问题没有说如何回显限制 1 行,它说“如何编写代码以使图像无限相同的图像变成一个图像。很简单。【参考方案2】:你可以使用分组
SELECT * FROM notes WHERE product_id = ? GROUP BY product_id
【讨论】:
是的,效果很好,我从没想过使用 GROUP 非常感谢您的帮助。我是说谢谢。以上是关于如何显示一张图片而不是四张图片的主要内容,如果未能解决你的问题,请参考以下文章