2012-12-27 125 views
2

我正在面臨從所需格式的數據庫中檢索數據的問題。我已經使用PHP MYSQL。我可以使用while($row=mysql_fetch_array($result));等等來檢索記錄,但不能以我想要的格式檢索記錄。如何以所需的格式從數據庫中檢索數據(PHP MYSQL)

假設,從數據庫我得到10個記錄垂直1到10,但我想要下面的格式使用表。

1 2 3 4 

5 6 7 8 

9 10 

注意:沒有記錄本質上是動態的,我希望每行有4列。

請幫我一把。提前致謝。

+0

爲什麼你不使用PHP的呢?爲什麼你需要從MySQL? – Champ

+2

應該在檢索後處理。這只是一個觀點問題(目前可以輕鬆處理)。 –

+1

SQL不是爲數據表示而設計的。在你的邏輯中處理 –

回答

1

數據庫中每行有4條記錄不會改變任何內容。數據庫中沒有這樣的功能,因爲它沒有任何用處,可以用PHP代替。正如評論中所述,數據庫不是爲數據表示而設計的。

可以代替檢索這些數據,並存儲爲以後使用簡單的PHP腳本四肢組:

$i = 0; 
$in = 0; 
$array = array(); 
while($row = mysql_fetch_array($result)) { 
    if ($i%4) { 
     $in++; 
    } 
    $array[$in][] = $result; 
    $i++; 
} 
2

你不能與MySQL做到這一點,MySQL是不是用來很好地顯示數據,它僅用於存儲和檢索您的數據。

你需要的是下面的,而$陣列可以從數據庫中的數據被替換:

$array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); 

echo '<table>'; 
    echo '<tr>'; 
for ($i = 0; $i < sizeof($array); $i++) { 
    if(($i % 4) == 0 && $i != 0) { 
     echo '</tr><tr>'; 
    } 
    echo '<td>'; 
     echo $array[$i]; 
    echo '</td>'; 
} 
    echo '</tr>'; 
echo '</table>'; 
+2

你需要在循環之前打開'',然後關閉它。 – Pharaoh

+0

謝謝@Pharaoh我加了他們。 –

+0

非常感謝,它工作正常。 –

0

由於克林斯曼dSQL不適用於數據表示。手柄在你的邏輯

所以,你可以

$array = array(1,2,3,4,5,6,7,8,9,10); 
$i=0; 

while($i < sizeof($array)) 
{ 
if($i%4 ==0 && $i>0) echo "<br>"; 
    echo $array[$i++] ; 
} 

注意與陣列從數據庫替換$array

+1

最好使用數組的大小來確定它將創建多少個循環,而不是對其進行硬編碼,也可以使用表來更好地表示數據,因爲大數字你的列可能不在同一行。 –

+0

這只是爲了表明它在SQL中通過php來完成。非常感謝 – Champ

+0

沒問題。如果您願意,您可以提出我的評論。 –

0
$data = ... your mysqli call that returns the data from mysql 
$i = 0; 
if ($data) { 
    $HTML = '<table><tr>'; 
    foreach($data as $k => $v) { 
     $HTML .= '<td>'.$v.'</td>'; 
     if ($i == 3) { 
      $i = 0; 
      $HTML .= '</tr><tr>'; 
     } 
     $i++; 
    } 
    $HTML .= '</tr></table>'; 
    echo $HTML; 
} 
0

這是完整的例子:)。您需要創建表MYSQL「Cname」列中的「Category」

<?php 
    require 'ConnDB.php'; 
    $sql = "Select * From Category"; 
    $ResShowCateg = mysqli_query($conn_link, $sql); 

    echo '<table>'; 
    echo '<tr>'; 

    for ($i = 0; $i < mysqli_num_rows($ResShowCateg); $i++) { 
     $row = mysqli_fetch_assoc($ResShowCateg); 
     if(($i % 3) == 0 && $i != 0){ 
      echo '</tr><tr>'; 
     } 
     echo '<td>'; 
     echo $row["Cname"]; 
     echo '</td>'; 
    } 

    echo '</tr>'; 
    echo '</table>'; 

    mysqli_close($conn_link); 
?> 
相關問題