【问题标题】:Fetching rows of data from a table that isn't in another table从不在另一个表中的表中获取数据行
【发布时间】:2015-05-12 13:13:23
【问题描述】:

我遇到这个问题已经很久了,如果你们能帮助我解决问题,我会很高兴。

这是插图。

例如,您有一个名为矩阵的表,该表有一个名为“matric_num”的列。

现在,您为用户创建一个注册页面,其中一个字段是选择任何矩阵数字,并且在用户可能选择了矩阵数字之后,填写表格的其余部分并单击提交按钮,它应该插入详细信息存入数据库。 如果其他用户要注册,前一个用户选择的矩阵号不应列在选项菜单中。

这就是我所做的。

$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>";

它只显示数据库中的第一个矩阵数,而所有未被任何用户使用的矩阵数都应显示。

请问您认为 sql 查询有什么问题。

谢谢。

【问题讨论】:

  • 您的实际问题是什么?这不起作用吗?它怎么不工作?你得到什么错误?你做了什么来解决这个问题?您的代码不会检查错误。如果您不查找错误,您如何期望找到错误?
  • 我们需要更多信息来“解决”您的问题,但不够清楚
  • 这个问题不是你的问题,但答案会解决你的问题:stackoverflow.com/questions/10512452/…
  • 它只显示数据库中的第一个矩阵号,而所有未被任何用户使用的矩阵号都应显示在选项列表中,以便其他用户可以选择任何矩阵号进行注册

标签: php


【解决方案1】:

试试这个查询:

SELECT * FROM `matrics` WHERE `matric_no` not in (select `matric_num` from `users`)

【讨论】:

    猜你喜欢
    • 2017-01-14
    • 2021-11-05
    • 2020-12-17
    • 1970-01-01
    • 2019-05-02
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多