1

你们!所以我要做的是两个部分:首先,必须知道我已经在 phpMyAdmin 上创建了一个数据库,其中包含一个名为“lists”的表,其中包含“id”、“name”、“times”列、“级别”、“电子邮件”和“号码”。(1) 我希望能够称这些列中的每一列都通过它们的 id 来引用它们。(2) 然后我希望能够按从最低到最高的顺序打印出一个基于我的“级别”数据(这是一个介于 0 和 3 之间的数值)的有序表,这将保持顺序即使更多的输入被放入数据库。唯一的问题是我对 (1) 的实现似乎不起作用,因为我制作的网站上的表格中没有任何内容打印出来。这是我所拥有的:

// configuration
require("../includes/config.php"); 

for ($num = 0; $num < 255; $num++)
{
    // get info from database
    $rows = query("SELECT id FROM list WHERE id = ?", $num);
}    

if ($rows === false)
{
    apologize("Oops, something went wrong with the database.");
}

// look up list info
$positions = [];
foreach ($rows as $row)
{
    $positions[] = [
    "name" => $row["name"],
    "times" => $row["times"],
    "level" => $row["level"],
    "email" => $row["email"],
    "number" => $row["number"]
    ];
}  

// render list of people
render("list_form.php", ["positions" => $positions, "title" => "List"]);

?>

顺便说一下,“list_form.php”是一个 html 文件,其中包含应该打印数据的表格,并且理想情况下按照“级别”中的数据进行排序。

<thead>
    <tr>
        <th>Name</th>
        <th>Times Available</th>
        <th>Level of Play</th>
        <th>Email Address</th>
        <th>Phone Number</th>
    </tr>
</thead>

<tbody>

<?php 

    foreach ($positions as $position)
    {
        printf("<tr>");
        printf("<td>%s</td>", htmlspecialchars($position["name"]));
        printf("<td>%s</td>", htmlspecialchars($position["times"]));
        printf("<td>%s</td>", htmlspecialchars($position["level"]));
        printf("<td>$%s</td>", htmlspecialchars($position["email"]));
        printf("<td>$%s</td>", htmlspecialchars($position["number"]));
        printf("</tr>");
    }

?>
<center>
    <a href="index.php">Index</a></li>
</center>

</tbody>

感谢您的任何帮助,您可以提供。

4

1 回答 1

0

首先:

for ($num = 0; $num < 255; $num++)
{
    // get info from database
    $rows = query("SELECT id FROM list WHERE id = ?", $num); // IF YOU DON'T SAVE THIS IN AN ARRAY, YOU COULD NOT HAVE INFOS...
}   

您可以通过这种方式只运行一个查询:

$maxID = 255;
$rows = query("SELECT id FROM list WHERE id < ? ORDER BY level asc", $maxID);
于 2012-12-09T13:14:56.353 回答