0

您好我正在尝试使用 php 在 html 表中水平显示从 mysql 表中检索到的数据。下面的代码运行良好,除了它在我的数据库中遗漏了第一条记录(从第二条记录开始)。我确定它与柜台有关,但我似乎无法弄清楚如何让它停止这样做。如果有人能指出我的错误,我将不胜感激!

$items = 5;
$query = "SELECT * FROM members ";

$result = mysql_query($query) 
  or die(mysql_error());

$row = mysql_fetch_array($result);

if (mysql_num_rows($result) > 0) {

echo '<table border="1">';

$i = 0;

while($row = mysql_fetch_array($result)){

     $first_name = $row['first_name'];

           if ($i==0) {
                       echo "<tr>\n";
                      }

           echo "\t<td align=\center\">$first_name</td>\n";

           $i++;

           if ($i == $items) {

                              echo "</tr>\n";
                              $i = 0;
                              }
 }//end while loop

 if ($i > 0) {

                 for (;$i < $items; $i++) {
                      echo "<td>&nbsp;</td>\n";
                  }

              echo '</tr>';

              }//end ($i>0) if 

 echo '</table>';

 }else {

   echo 'no records found';
 }
4

4 回答 4

1

尝试删除第一个

$row = mysql_fetch_array($result);

你调用它两次,这就是为什么它在你的 while 循环中跳过 1 行

于 2013-07-14T18:55:09.240 回答
1

试试这个更简单。

       $items = 5;
  $query = "SELECT * FROM members ";

 $result = mysql_query($query) or die(mysql_error());
 if (mysql_num_rows($result) > 0) {

 echo '<table border="1">';
 while($row = mysql_fetch_array($result)){

 $first_name = $row['first_name'];
        echo "<tr>";
       for ($i=0 ; $i <= $items ;$i++) {

                    echo "<td align='center'>".$first_name."</td>";
                    }
}//end while loop
     echo "</tr>";
    echo '</table>';
}else{ echo 'no records found'; }
于 2013-07-14T18:59:59.687 回答
0

我以前遇到过这个问题。请尝试使用 do while 循环。例子

do {

// code

 } while($row = mysql_fetch_array($result)); //end while loop
于 2014-05-30T16:40:56.953 回答
0

$row = mysql_fetch_array($result); 1)从你的脚本中删除这行代码2)只使用while循环代码。

于 2019-03-12T13:17:38.973 回答