我遇到这个问题的时间很长,如果你们能帮我解决这个问题,我会很高兴。
这是插图。
例如,您有一个名为matrics的表,该表有一个名为'matric_num'的列。
现在,您为用户创建一个注册页面,其中一个字段是选择任何matric num,并且在用户可能选择了matric数字后,填写表单的其余部分并单击提交按钮,它应该插入细节到数据库。 如果其他用户想要注册,则不应在选项菜单中列出上一个用户选择的主编号。
这就是我的所作所为。
$query = mysqli_query($con, "SELECT *FROM `users`");
$rows = mysqli_num_rows($query);
echo "<select>";
for($i=1;$i<=$rows;$i++)
{
$fetch_user_matric = mysqli_fetch_array($query);
$matric_num = $fetch_user_matric['matric_num'];
$matric_query = mysqli_query($con, "SELECT *FROM `matrics` WHERE `matric_no` <> '$matric_num'");
$matric_rows = mysqli_num_rows($matric_query);
for($j=1;$j<=$matric_rows;$j++)
{
$fetch_matric_num = mysqli_fetch_array($matric_query);
$matric_no = $fetch_matric_num['matric_no'];
echo "<option value='$matric_no'>$matric_no</option>";
}
}
echo "</select>";
它仅显示数据库中的第一个matric编号,而应显示任何用户未使用的所有matric编号。
请问您认为sql查询有什么问题。
感谢。
答案 0 :(得分:1)
试试这个问题:
SELECT * FROM `matrics` WHERE `matric_no` not in (select `matric_num` from `users`)