我有一个while循环,可以对数据库中的每门课程(或产品或任何东西)进行分类,在每个经过分类的地方,都有一个创建的按钮,它的作用是将您带到该页面的详细信息页面当然。
所以我已经创建了一个带有course_id的会话并将其存储在其中,然后我尝试将该会话['course_id']更改为每个按钮旁边也会显示的每个课程的ID
$query = "SELECT * FROM courses ";
$runquery= mysqli_query($conn , $query);
if($runquery){
while($rows= mysqli_fetch_assoc($runquery)){
echo $rows['course_name'];
echo "<center> <form method='POST' action='courses.php'> <input type='submit' name='button' value='More Details'> </form></center>";
if(isset($_POST['button'])){
$_SESSION['course_id'] = $rows['course_id'];
}
}
}
echo $_SESSION['course_id'];
我希望当我按下第一个按钮时看到course_id = 1,第二个= 2等。 但将来会随机化,因此首先显示的内容应具有自己的ID,而不仅仅是1,2,3,...
答案 0 :(得分:1)
在显示课程列表之前,您应该先检查提交的课程ID。我假设您要显示所选课程的特定信息,并且您将课程ID存储在会话中,以便可以重定向到另一个页面来完成此操作。
if (isset($_POST['course_id'])) {
$_SESSION['course_id'] = $_POST['course_id'];
// redirect to the course page
}
现在,您不需要一堆不同的表格。您可以使用按钮代替输入,并将所有课程设置为相同形式。如果将课程ID用作按钮的值,则单击按钮的值将是您提交表单时在$_POST
中获得的值。
$runquery = mysqli_query($conn , "SELECT * FROM courses");
if ($runquery) {
echo '<form action="courses.php" method="post">';
while ($rows = mysqli_fetch_assoc($runquery)){
echo $rows['course_name'];
echo "<button type='submit' name='course_id' value='$rows[course_id]'>More Details</button>";
}
echo '</form>';
}
答案 1 :(得分:1)
仅是一个基本示例,请考虑了解其工作原理。
您需要2个php
文件:
例如index.php
例如info.php
在第一个文件中,您需要列出课程,如下所示:
$query = "SELECT * FROM courses";
$runquery = mysqli_query($conn, $query);
if($runquery){
while($row = mysqli_fetch_assoc($runquery)){
echo '<a href="info.php?course_id='.$row['course_id'].'">'.$row['course_name'].'</a><br />';
}
}
在第二个文件中,如下所示:
$query = "SELECT * FROM courses WHERE course_id = ".(int)$_GET['course_id']; // <-- IMPORTANT! Cast it to int to prevent SQL injections.
$runquery = mysqli_query($conn, $query);
if($runquery){
$row = mysqli_fetch_assoc($runquery);
print_r($row);
}
尝试一下。