从一个MySQL表中显示多列表

时间:2011-05-22 19:21:13

标签: php mysql if-statement html-table

我在从MySQL表中显示多个列时遇到问题 这很简单 - 我有28条记录,我想要制作7行4 - 每条记录只有两列 - id#和name(表中的“handle”)。

当我使用

时,我的问题是什么
> $i<$cols

我得到四列,但第四列是空白的,每四个记录都被跳过(#4,#8等)简单我说...只需要$row && $i<=$cols添加&lt; ; =以$i变量为条件...但是它只是忽略if语句并显示整个页面中的所有记录。 我究竟做错了什么?我需要另一个if声明吗?不知道我哪里错了......

这是我到目前为止所处的位置:

// Table header.
echo '<center><table align="center" BLAH BLAH BLAH</b></td></tr><tr>';
do {
  // Fetch and print all the records:
  $cols = 4;
  for($i=1;$i<=$cols;$i++){ 
    $row = mysqli_fetch_array($r, MYSQLI_ASSOC);
    if($row && $i<$cols){
      echo '<td  align="center" bgcolor="' . '#' . $row['color'] . '"><b>' .
           $row['player_id'] . '</td></b><td  align="left" bgcolor="' . '#' .
           $row['color'] . '"><b>' . strtoupper($row['handle']) . '</td></b>';
    }
    else {
      echo '</tr>';
    }
  }
}              
while ($row);
  echo '</table></center>'; // Close the table.

1 个答案:

答案 0 :(得分:0)

只需将echo '</tr>'移到for循环之外。让do ... while循环打开并关闭<tr>标记:

// Table header.
echo '<center><table align="center" BLAH BLAH BLAH</b></td></tr>';
do {
  echo '<tr>';
  // Fetch and print all the records:
  $row = mysqli_fetch_array($r, MYSQLI_ASSOC);
  if($row){
    echo '<td  align="center" bgcolor="' . '#' . $row['color'] . '"><b>' .
         $row['player_id'] . '</b></td><td  align="left" bgcolor="' . '#' .
         $row['color'] . '"><b>' . strtoupper($row['handle']) . '</b></td>';
  }
  echo '</tr>';
} while ($row); echo '</table></center>'; // Close the table.
编辑:刚刚意识到你不需要for循环。