2011-05-22 19 views
0

從MySQL表中顯示多列時出現問題。
這很簡單 - 我有28條記錄,我想做7行4條 - 每條記錄只有兩列 - id#和name(表中的「handle」)。從一個MySQL表中顯示多列表

我的問題是什麼,當我使用

> $i<$cols 

我得到四列,但第四個是空白的,每四個記錄被跳過(#4,#8等)簡單地說,只是讓它$row && $i<=$cols增加< =有條件的$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. 

回答

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. 

編輯:剛剛意識到你不需要的循環。

+0

謝謝,謝謝,謝謝!我知道這裏對於一個天才來說很容易! – 2011-05-22 19:38:52

+0

另外,請注意,我更改了您的標籤。你有​​...,這是不正確的語法;它應該是​​...。 – Ivan 2011-05-22 19:42:35

+0

謝謝伊凡 - 我會改正的 - 非常感謝您的幫助! – 2011-05-22 19:59:31