【问题标题】: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" width="16" height="16" />';
            } }
            ?>

【问题讨论】:

    标签: php mysqli while-loop


    【解决方案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" width="16" height="16" />';
        }
      } 
    }
    

    一些代码注释:
    您的查询中的$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 非常感谢您的帮助。我是说谢谢。
    猜你喜欢
    • 1970-01-01
    • 2021-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-11
    • 1970-01-01
    相关资源
    最近更新 更多