2011-06-17 177 views
1

我正在試圖生成一個從mysql數據庫獲取數據的表格。有8列,但行數是可變的,這取決於來自數據庫的信息量。我遇到的問題是,我有兩件事是可變的,我不知道如何使用兩個while循環(或者如果這是正確的選擇)。生成帶有變量行和單元格的html表格

下面的代碼可以生成一個包含8列和可變數量的行的表,但我不知道如何用順序整數代替thing。我想每個單元只有一個整數,它依次就像一個while循環,直到numbers = $end

CODE:

<?php 

$end=82; //will get all this data from a dabase 
$rows=ceil($end/8); 
$x=0; 
$start=0; 
?> 
<table> 
<?php 
While ($x<=$rows){ 


echo" 

     <tr> 
     <td> 
      thing 
     </td> 
     <td> 
      thing 
     </td> 
     <td> 
      thing 
     </td> 
     <td> 
      thing 
     </td> 
     <td> 
      thing 
     </td> 
     <td> 
      thing 
     </td> 
     <td> 
      thing 
     </td> 
     <td> 
      thing 
     </td> 
    </tr> 

    "; 
    $x++; 
    } 
?> 
</table> 
+0

除了返回的記錄數(還有您需要生成的錶行數),還有什麼變量? – kinakuta

+0

@kinakuta唯一可變的事情是行數和每個單元格中的內容。每個單元應該有連續的數字,直到$ end – kirby

+0

您的意思是說連續的數字從$ end-7到$ end?這8個數字是? –

回答

1

這將輸出每行八個數字從1開始,並要$end。我不確定$maxprobs在這裏。

<?php 

$end=82; //will get all this data from a dabase 
$rows=ceil($end/8); 
$x=0; 
$start=0; 
?> 
<table> 
<?php 
while($x<=$rows) { 
    echo "<tr>"; 
    for ($y = 0; $y < 8; $y++, $start++) { 
    if ($start <= $end) echo "<td>$start</td>"; 
    } 
    echo "</tr>"; 
    $x++; 
} 
?> 
</table> 
+0

$ end = $ maxprobs他們應該是同樣的東西我搞砸了變量 – kirby

0

看看PHP的網站,幾乎所有的參賽作品有例子中,數據庫的東西顯示while循環,這是做到這一點的最好辦法..

寫表開始標記,加上任何頭..

同時能夠得到更多的數據庫數據,得到它,並做

顯示錶行開放標籤 顯示該行,通過該領域的循環和細胞標記 之間輸出他們

DISPAL Ÿ行標籤

結束,現在你已經和你的數據完成後,寫表

年底有很多有關的例子。

爲了循環遍歷字段,這就是爲什麼他們發明了一個「foreach」,比如說你有0或者10000,你可以通過每一個,即使它不是連續的,所以對於蘋果中的每個「水果」 ,梨,bannana ..

1

我不得不問 - 如果你從MySQL數據庫中提取行,並且你希望你的表具有取決於數據的動態行數,是否有任何特定的原因,不是經常這樣做,while loopmysql_fetch函數?

$data = mysql_query("SELECT row1, row2, ... , row8 FROM table WHERE ...); // Sample query, edited for brevity. 

echo "<table>"; 

while ($result = mysql_fetch_object($data)) 
(
     echo "<tr>"; 
     echo "<td>".$data->row1."</td>; 
     echo "<td>".$data->row2."</td>; 
     ... // Edited for brevity. Include as many columns as you queried. 
     echo "<td>".$data->row8."</td>; 
     echo "</tr>"; 
} 

echo "<table>"; 

除非你有一個真正的具體原因不這樣做,我會使用這種方法。它非常靈活,並且會打印儘可能多的行,這就意味着你只需要改變你的查詢,而不是你的代碼。

有關mysql_fetch_object和mysql_query的更多信息可分別參見herehere