0

こんにちは、php を使用して、mysql テーブルから取得したデータを html テーブルに水平に表示しようとしています。以下のコードは、データベースの最初のレコード (2 番目のレコードから始まる) を除外するという事実を除いて、うまく機能します。カウンターと関係があると確信していますが、これをやめる方法がわかりません。誰かが私のエラーを指摘できれば、本当に感謝しています!

$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

1番目を削除してみてください

$row = mysql_fetch_array($result);

2回呼び出しているため、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) ur スクリプトからこのコード行を削除してください。2) 代わりに while ループ コードのみを使用してください。

于 2019-03-12T13:17:38.973 に答える