2011-06-17 61 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

相关问题