使用php和mysql水平显示数据

时间:2013-07-14 18:50:41

标签: php html mysql css

您好我正在尝试使用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';
 }

3 个答案:

答案 0 :(得分:1)

尝试删除第一个

$row = mysql_fetch_array($result);

你正在调用它两次,这就是它在你的while循环中跳过1行的原因

答案 1 :(得分: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'; }

答案 2 :(得分:0)

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

do {

// code

 } while($row = mysql_fetch_array($result)); //end while loop