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

画像のURLを表示します。それは働いているはずです。

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います。結果セット (最初の画像) から 1 行を取得するため、すべての結果をループしてすべての画像を取得する必要があります。

mysql_*ただし、関数は非推奨であるため、PDO / mysqli でそれを行う必要があります。

于 2012-12-12T00:01:59.350 に答える