【问题标题】:php - Displaying more than one image from a databasephp - 显示数据库中的多个图像
【发布时间】:2014-03-21 18:02:50
【问题描述】:

我正在尝试在表格中显示图像(以及与之相关的其他数据,例如标题)。图片的文件名在我的数据库中存储为imgname,但问题是只有一张图片正在显示。
这是我使用的代码。我应该改变什么?

mysql_select_db($database_connection, $connection);
$query_img = "SELECT imgname FROM img ORDER BY imgname";
$img = mysql_query($query_img, $connection) or die(mysql_error());
$row_img = mysql_fetch_assoc($img);
$totalRows_img = mysql_num_rows($img);

表格

<ul>
    <li>
        <img src="images/<?php echo $row_img['imgname']; ?>">
        <h3><?php echo $row_title['title']; ?></h3>
        <p><?php echo $row_description['des']; ?></p>
    </li>
    <li>
        <img src="images/<?php echo $row_img['imgname']; ?>">
        <h3><?php echo $row_title['title']; ?></h3>
        <p><?php echo $row_description['des']; ?></p>
    </li>
    <li>
        <img src="images/<?php echo $row_img['imgname']; ?>">
        <h3><?php echo $row_title['title']; ?></h3>
        <p><?php echo $row_description['des']; ?></p>
    </li>
</ul>


由于我对标题和描述使用了类似的代码,因此我遇到了同样的问题。

【问题讨论】:

标签: php mysql database


【解决方案1】:

只需使用循环遍历数据库结果集:

$img = mysql_query($query_img, $connection) or die(mysql_error());
while($row_img = mysql_fetch_assoc($img)) {
?>
    <li>
        <img src="images/<?php echo $row_img['imgname']; ?>">
        <h3><?php echo $row_title['title']; ?></h3>
        <p><?php echo $row_description['des']; ?></p>
    </li>
<?php
}

【讨论】:

  • 它会自动创建与数据库中的图像一样多的 li 元素还是我必须手动创建?
【解决方案2】:
mysql_select_db($database_connection, $connection);
$query_img = "SELECT imgname FROM img ORDER BY imgname";
$img = mysql_query($query_img, $connection) or die(mysql_error());
<ul>
    <?php
        while($row_img = mysql_fetch_assoc($img)) {
    ?>
        <li>
            <img src="images/<?php echo $row_img['imgname']; ?>">
            <h3><?php echo $row_title['title']; ?></h3>
            <p><?php echo $row_description['des']; ?></p>
        </li>
    <?php
    }
    ?>   

</ul>

【讨论】:

    【解决方案3】:

    使用foreach 循环遍历结果并将&lt;li&gt; 包含在该循环中以获取查询返回的每行的列表元素。

    【讨论】:

      【解决方案4】:
      $img = mysql_query($query_img, $connection) or die(mysql_error());
          $result = mysql_fetch_assoc($img);
          foreach ($result as $row_img)
          {
          ?>
              <li>
                  <img src="images/<?php echo $row_img['imgname']; ?>">
                  <h3><?php echo $row_img['title']; ?></h3>
                  <p><?php echo $row_img['des']; ?></p>
              </li>
          <?php
          }
      

      【讨论】:

      • 感谢@kayra!如果我想为乘法元素(图像、标题和描述)执行此操作,我应该只复制代码 (foreach) 乘法次数吗?
      • 没有。您的查询将是这样的:“SELECT imgname,title,dec FROM img ORDER BY imgname”。因此,它会得到 imgname、title 和 dec 的结果。上面的代码获取每一行的所有内容,并为从 table 返回的每一行创建
      • 元素。
    • 然后使用另一个查询来获取标题和描述。然后得到 $title_desc = mysql_query($query_title_desc), result1 = mysql_fetch_assoc($$title_desc)。再次使用foreach,类似于img。
    • 最后另一种方法是创建查询以从 2 个表中获取结果到 1 个表中,然后使用它在一个 foreach 循环中一起获取。
    • 猜你喜欢
      相关资源
      最近更新 更多
      热门标签