2013-07-14 24 views
0

嗨我試圖顯示從一個MySQL表中水平檢索使用PHP的HTML表中的數據。下面的代碼運行良好,除了它在我的數據庫中留下第一條記錄(從第二條記錄開始)。我確信它與櫃檯有關,但我似乎無法弄清楚如何讓它停止這樣做。如果有人能指出我的錯誤,我會非常感激!使用php和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'; 
} 
+0

你不應該使用'mysql_'功能,和你的縮進繁瑣 – samayo

回答

1

嘗試,除去第一

$row = mysql_fetch_array($result);

您呼叫兩次,這就是爲什麼它跳過while循環

+0

這就是它的感謝!我會把它標記爲正確答案,但顯然我只能在九分鐘後才能做出答覆。 –

+0

不客氣:) –

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'; } 
+0

@matttuman做到了這一點更簡單得到你想要的? –

+0

這將垂直顯示結果,但謝謝! –

+0

@matttuman,因爲我已經刪除了'\ n'和'\ t' .try再次添加它們,看到 –

0

我以前也遇到了這個問題。改爲嘗試while while循環。例如

do { 

// code 

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