如何显示一张图片而不是四张图片

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 非常感谢您的帮助。我是说谢谢。

以上是关于如何显示一张图片而不是四张图片的主要内容,如果未能解决你的问题,请参考以下文章

thinkphp 关于图片问题

如何在一张照片上拍摄出四幅图片?

Javascript:: 图像预览

如何将2张图片合成1张?

怎么在word里边一页插入四张图片,而且要占满这张纸。

在 UIScrollView 中添加 UIView