gpt4 book ai didi

php - SQL Inner Join 每次获取不同的结果

转载 作者:行者123 更新时间:2023-11-30 21:55:09 24 4
gpt4 key购买 nike

我的项目堆栈在这个问题下面,

我有 2 个表测验(由老师填写)有 10 列

id,dept,subject,question,ans1,ans2,ans3,ans4,correct_ans,techername

学生有7列

id,username,password,usertype,dept,subject,answers

如果用户在 dborad.php 中(成功)登录,他将看到链接,每个链接都会将他带到 quiz.php 页面中的不同测验(使用 get 方法获取学生的主题和部门),在这个 quiz.php 页面中,他将看到他的测验有 4 个答案,我的问题是内部连接不起作用,它应该获取他从 dborad.php 选择的特定主题的测验,其中一些问题与其他学生不同,但不是

dboard.php

if (isset($_SESSION['username'])) {
if ($_SESSION['usertype'] === "isstudent") {
$SQLgetParea = "SELECT * From students WHERE username = '$_SESSION[username]' ";
$SQLgetPareaResult = mysqli_query($conn,$SQLgetParea);
$SQLgetPareaRow = mysqli_fetch_array($SQLgetPareaResult,MYSQLI_NUM);
$getDept = $SQLgetPareaRow[4];

$sql2 = "SELECT students.*, quiziz.*
FROM students
INNER JOIN quiziz
ON students.dept=quiziz.dept
AND students.subject = quiziz.subject
WHERE students.dept = '".$getDept."'
";
$result2 = mysqli_query($conn,$sql2);

while ($row2 = mysqli_fetch_array($result2,MYSQLI_NUM)) {
echo "
<a href='quiz.php?subject=".$row2[5]."?dept=".$row2[4]."'>Enter Exam for ".$row2[5]."</a>
<br><br>";
}
}
}

quiz.php

if(isset($_SESSION['username'])){
if ($_SESSION['usertype'] === "isstudent") {

$conn->query("SET NAMES utf8");
$conn->query("SET CHARACTER SET utf8");

$SQLgetParea = "SELECT * From students ";
$SQLgetPareaResult = mysqli_query($conn,$SQLgetParea);
$SQLgetPareaRow = mysqli_fetch_array($SQLgetPareaResult,MYSQLI_ASSOC);
$getSub = $SQLgetPareaRow['subject'];

$sql2 = "SELECT quiziz.*, students.*
FROM quiziz
INNER JOIN students
ON quiziz.dept=students.dept
AND quiziz.subject = '".$getSub."' ";
$result2 = mysqli_query($conn,$sql2);

while ($row2 = mysqli_fetch_array($result2,MYSQLI_ASSOC)) {

echo "
<li>".$row2['question']."</li>
<li><div class='ruler'></div></li>
<li>".$row2['ans1']."</li>
<li>".$row2['ans2']."</li>
<li>".$row2['ans3']."</li>
<li>".$row2['ans4']."</li>
";
}

}
}

最佳答案

要为每个用户获取不同的问题,请创建一个问题表并为您要向用户显示的每个问题分配一个 ID。

之后,您只需创建一个带有随机函数的向量,即可通过 id 从数据库中获取这些问题。将您的列问题从 quizes 更改为 question_id,这是您最近创建的表的外键。

关于php - SQL Inner Join 每次获取不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45524006/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com