如何使用带有循环数据的echo命令使用php创建表?

时间:2014-12-14 21:20:52

标签: php html sql html-table echo

我想为我的SQL数据做一个漂亮的表。

我现在加载我的数据:

$sql = "SELECT mednr, mednaam, medvoornaam , medemail, ploeg, medgeslacht FROM Medewerker, Ploeg WHERE medploeg = ploegnummer";

$result = $conn->query($sql);

if ($result->num_rows > 0) {

    // output data of each row
    while($row = $result->fetch_assoc()) {
        if ($row["ploeg"] == "Tapper") {
        echo 
    "<td class='link2'>" . $row["mednaam"] . "</td>".
    "<td class='link2'>" . $row["medvoornaam"] . "</td>".
    "<td class='link2'>" . $row["medemail"] . "</td>".
    "<td class='link2'>" . $row["ploeg"] . "</td>".
    "<td class='link2'>" . $row["medgeslacht"] . "</td>".

        '<form id="delete" method="post" action="">'.
        '<input type="hidden" name="delete_rec_id" value="<?php print $id; ?>"/>'.
        '<input type="submit" name="delete" value="Delete"/>'."</form>".
    "</br>"."</hr>";
            ;
    }
    }
} else {
    echo "0 results";
}

但我想制作一张漂亮的桌子。问题是回声不断循环数据,所以我不能制作<table><td>标签,因为它会为每一段数据创建一个表和td。

我从jQuery知道我可以使用$append将数据放入某个标记内。

有什么方法可以用PHP做到这一点吗?

(我对PHP和编程很新,所以请原谅我这个简单的问题。)

4 个答案:

答案 0 :(得分:1)

您在代码中遗漏了一些表格标签(例如<table><tr>)。请查看此处的文档:http://www.w3schools.com/tags/tag_table.asp。您还可以使用?>在任何地方关闭php代码,添加html代码并使用<?php继续使用{{1}}的PHP代码,如果您想要更透明的代码。

答案 1 :(得分:1)

// .....

if ($result->num_rows > 0) {
    echo "<table>";

    // you can also echo table headers here

    // output data of each row
    while($row = $result->fetch_assoc()) {
        if ($row["ploeg"] == "Tapper") {
            echo 
            "<tr>" .
            "<td class='link2'>" . $row["mednaam"] . "</td>".
            "<td class='link2'>" . $row["medvoornaam"] . "</td>".
            "<td class='link2'>" . $row["medemail"] . "</td>".
            "<td class='link2'>" . $row["ploeg"] . "</td>".
            "<td class='link2'>" . $row["medgeslacht"] . "</td>".
            "</tr>";
        }
    }
    echo "</table>";
} 
// .....
?> 

答案 2 :(得分:0)

正如Micer所说,添加TABLE和TR标签。 你也不需要一个回声。很难处理一个非常长的回声。您也可以分别为每个TD编写尽可能多的回声。在编写它时,在其中进行所需的所有设计,例如使其变粗,添加颜色或对齐等。

在您尝试修复它时,请为SQL添加一个限制,以便它只在循环中显示10行。

$sql = "SELECT mednr, mednaam, medvoornaam , medemail, ploeg, medgeslacht FROM Medewerker, Ploeg WHERE medploeg = ploegnummer LIMIT 0,10";

答案 3 :(得分:0)

通过在我想要创建表格时结束php代码,这就是我的工作方式。

感谢您的帮助!

    $sql = "SELECT mednr, mednaam, medvoornaam , medemail, ploeg, medgeslacht FROM Medewerker, Ploeg WHERE medploeg = ploegnummer";

$result = $conn->query($sql);
?> <table id='table2'> <tbody><?php
if ($result->num_rows > 0) {
    // Table header -->
        echo "<thead>".
            "<tr>".
                '<th scope="col" id="...">This is the table header</th>'.

            "</tr>".
        "</thead>";

    // output data of each row
    while($row = $result->fetch_assoc()) {
        if ($row["ploeg"] == "Tapper") {
        echo "<tr>";
        echo "<td class='link2'>" . $row["mednaam"] . "</td>";
        echo "<td class='link2'>" . $row["medvoornaam"] . "</td>";
        echo "<td class='link2'>" . $row["medemail"] . "</td>";
        echo "<td class='link2'>" . $row["ploeg"] . "</td>";
        echo "<td class='link2'>" . $row["medgeslacht"] . "</td>";
            echo "</br>"."</hr>";
        echo "</tr>";
    }
    }
    ?></tbody></table><?php
} else {
    echo "0 results";
}
?>