我想问一下在循环一些数据之后在php中输出一个表。以前,我总是只是水平或垂直地将数据循环到表格。但是现在,我想把这个循环数据水平和垂直地放到一个表中,所以结果可能是这样的:
data1 | data2 | data3 | data4
data5 | data6 | data7 | data8
仍然喜欢直到循环结束。所以我从我的桌子上得到了1个数据,就像那样。
我现在的代码是:
<?php
require ('server.php');
$query = mysql_query("SELECT * FROM ekskul");
if (mysql_num_rows($query) < 1) {
echo "No data.";
} else {
$i = 0;
while ($roweks = mysql_fetch_array($query)) {
echo '<tr class="dark">';
echo "<td>$roweks[nama]</td>";
if ($i % 4 == 0) {
echo "</tr>";
}
$i += 1;
}
}
?>
我没有得到关于水平抛出结果的逻辑,因为我得到的总是垂直的:
data1
data2
data3
...
datan
答案 0 :(得分:2)
如果出现条件,则在while循环之前使用tr打开然后关闭tr并打开新的tr ..
<?php
require ('server.php');
$query = mysql_query("SELECT * FROM ekskul");
if (mysql_num_rows($query) < 1) {
echo "No data.";
} else {
$i = 1;
echo "<table>";
echo '<tr class="dark">';
while ($roweks = mysql_fetch_array($query)) {
echo "<td>".$roweks['nama']."</td>";
if ($i % 4 == 0) {
echo "</tr>";
echo '<tr class="dark">';
}
$i += 1;
}
}
echo "</table>";
?>
答案 1 :(得分:0)
怎么回事这个
<?php
require ('server.php');
$query = mysql_query("SELECT * FROM ekskul");
if (mysql_num_rows($query) < 1) {
echo "No data.";
} else {
$i = 0;
echo '<table>';
while ($roweks = mysql_fetch_array($query)) {
echo '<tr class="dark">';
echo "<td>$roweks[nama]</td>";
if ($i % 4 == 0) {
echo "</tr>";
}
$i += 1;
}
echo '</table>';
}
?>
答案 2 :(得分:0)
应该这么容易。
<table>
<tr>
<?
$i = 1;
while ($roweks = mysql_fetch_array($query)) {
echo "<td>$roweks[nama]</td>";
if ($i == 4 ) {
echo "</tr><tr>";
$i = 1;
}else{
$i += 1;
}
}
?>
</tr>
</table>
答案 3 :(得分:0)
你必须每4个项目创建一个新行,跳过最后一个是项目数是4的倍数。
<?php
require ('server.php');
$query = mysql_query("SELECT * FROM ekskul");
$num_row = mysql_num_rows($query);
if ($num_row < 1) {
echo "No data.";
} else {
$i = 0;
echo '<tr class="dark">';
while($roweks = mysql_fetch_array($query))
{
$i++;
echo "<td>$roweks[nama]</td>";
if($i % 4 == 0 && $i != $num_row)
{
echo "</tr>";
echo '<tr class="dark">';
}
$i++;
}
if ($i % 4 != 1) {
echo "</tr>";
}
}