我正在尝试通过PHP查询mysql以从表中获取类名列表。然后,我希望用户单击其中一个类名称,将其重定向到一个页面,该页面显示单击任何类的类名称。名单是从数据库中的另一个表中即时生成的,现在我只想将类名保存为会话变量,然后让roster.php页面使用该变量来查询正确的名册。
例)
class a -click-> roster.php
- &GT; echo (// roster 'a' as <ol> from table);
class b -click-&gt; roster.php
- &GT; echo (// roster 'b' as <ol> from table);
class a -click-&gt; roster.php
- &GT; echo (// roster 'c' as <ol> from table);
我理解如何查询以及如何通过php页面回显html列表,但是我不确定如何为类名生成按钮,然后让网页跟踪点击哪个按钮在。
以下是我编写的用于从数据库生成名单的代码。
$sql = "SELECT firstname, lastname FROM student_Data WHERE classs =" . $_SESSION['classname'];
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
echo("<div id=\"list1\">")
while($row = $result->fetch_assoc()) {
echo ("<li><h4 class=\"list-group-item-heading\">". $row["firstname"]. " " . $row["lastname"] . "</h4></li>");
}
echo("</div>");
} else {
echo ("");
}
旁注:这是一个个人项目,所以我宁愿生成有效代码的快速代码。这就是为什么我对会话变量没问题。
答案 0 :(得分:0)
您可以输出类链接列表,其输出方式与输出学生列表的方式完全相同。假设您在上一页中有关于类的数据库查询,它可能看起来像这样:
while($row = $result->fetch_assoc()) {
echo ("<a href=\"class.php?id=" . $row["id"] . "\">" . $row["name"] . "</a>");
}
所以生成的链接看起来像这样:
<a href="class.php?id=1">Class A</a>
<a href="class.php?id=2">Class B</a>
<a href="class.php?id=3">Class C</a>
然后在下一页中,您可以使用$_GET["id"]
从查询字符串中获取标识符。 注意当然,用户可以更改此值 。因此,不希望直接在SQL查询中使用它,就像您目前使用会话值一样。 (你不应该这样做,真的。)而是使用预准备语句并将其绑定为值,而不是将其作为代码执行。
答案 1 :(得分:0)
您可以使用查询字符串参数:
显示按钮页面:
$sql = "SELECT id, classname FROM classes";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
echo "<ul id='list1'>";
while($row = $result->fetch_assoc()) {
echo sprintf("<li><a href='roaster.php?classId=%s'>%s</a></li>", $row['id'], $row['classname']);
}
echo "</ul>";
}
roaster page
$sql = "SELECT firstname, lastname FROM student_Data WHERE classid =" . $_GET['classId'];
请注意,您需要使用准备好的查询来处理丢失/无效ID,并正确防止SQL注入。以上没有显示这是为了重复