WHILE循环不能使用两次?PHP

ETA*_*TAN 6 html php loops

我是PHP新手,希望有人能帮助我.我有一个表,其中包含mysql数据库中的"id","img","link"和"desc".我想让它全部回应如下:

    <div id="featured">
    <a target='_blank' href='link'><img src='image link1' title='description'/></a>
    <a target='_blank' href='link'><img src='image link2' title='description'/></a>
    <a target='_blank' href='link'><img src='image link3' title='description'/></a>
    <a target='_blank' href='link'><img src='image link4' title='description'/></a>
    </div>
    <div id="cap">
    <span class='desc' id='idnumber'>Description1</span>
    <span class='desc' id='idnumber'>Description2</span>
    <span class='desc' id='idnumber'>Description3</span>
    <span class='desc' id='idnumber'>Description4</span>
    </div>
Run Code Online (Sandbox Code Playgroud)

PHP代码:

<?php
  require_once "./dbconfig.php";
  opendb();
  $sql = "SELECT * FROM images ORDER BY id DESC"; 
  $query = querydb($sql);
?>
<div id="featured"> 
<?php
  while($row = mysql_fetch_array( $query )){
    echo "<a target='_blank' href='$row[link]'><img src='$row[img]' title='$row[desc]'/></a>";
  }
?>
</div>
<div id="cap">
<?php
  while($row = mysql_fetch_array( $query )){
    echo "<span class='desc' id='$row[id]'>$row[desc]</span>";
  }
closedb();
?>
</div>
Run Code Online (Sandbox Code Playgroud)

可以使用两次或我错了吗?当我运行此代码时,第二个while循环不起作用,跨度根本没有显示.

请帮忙.

JCo*_*ine 13

在第二次while循环之前使用它

mysql_data_seek($query,0);
Run Code Online (Sandbox Code Playgroud)


hak*_*kre 13

第一个循环已经消耗了mysql中的所有数据,因此第二个循环中没有任何内容.您可以同时存储行数据,然后重新使用该存储.

<div id="featured"> 
<?php
$rows = array();
while($row = mysql_fetch_array( $query )){
  $rows[] = $row;
  echo "<a target='_blank' href='$row[link]'><img src='$row[img]' title='$row[desc]'/></a>";
}
?>
</div>
<div id="cap">
<?php
foreach($rows as $row){
  echo "<span class='desc' id='$row[id]'>$row[desc]</span>";
}
closedb();
?>
</div>
Run Code Online (Sandbox Code Playgroud)