1

我试图让我的 sql 表 NEWS 中的前 5 个图像连续出现。当我尝试这个时,会出现一排空图像框。列image表示图像的目录。我仔细检查以确保它是确切的目录。

<?php 
   $leaders=mysql_fetch_array(mysql_query("SELECT `image` FROM news ORDER BY ID DESC LIMIT 5"));
   for ($i=1; $i<=5; $i++)
      {
?>
<img src="<?php echo($leaders[$i])?>" style="width: 200px; height: 200px;"></img>
<?php
   }
?>

有人知道为什么图片不显示吗?另外,我在 sql 命令行客户端上对其进行了测试。这

SELECT `image` FROM news ORDER BY ID DESC LIMIT 5

确实显示图像网址。它应该工作。

4

2 回答 2

2

mysql_fetch_array(已弃用)返回 1 个单行,而不是整个结果集。您需要它来获取另一行。像这样的东西会起作用:

 <?php 
  $leaders=mysql_query("SELECT `image` FROM news ORDER BY ID DESC LIMIT 5");
  while($row = mysql_fetch_array($leaders)){
   ?>
     <img src="<?php echo($leaders['image'])?>" style="width: 200px; height: 200px;"></img>
  <?php
  }

但说真的,看看PDO并开始转换。

于 2012-12-12T00:04:01.420 回答
1

您误解了如何mysql_fetch_array工作。它从结果集中(您的第一张图像)中获取一行,因此您必须遍历所有结果才能获取所有图像。

但是你应该在 PDO / mysqli 中这样做,因为这些mysql_*函数已被弃用。

于 2012-12-12T00:01:59.350 回答