0

我想在循环一些数据后询问在 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
4

4 回答 4

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>";
    ?>
于 2012-12-18T07:25:46.063 回答
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>';
}
?>
于 2012-12-18T06:49:49.607 回答
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>
于 2012-12-18T06:50:16.563 回答
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>";
        }
    }
于 2012-12-18T06:52:34.690 回答