PHP和MYSQL Select下拉列表未在所有结果上正确过滤

时间:2019-06-10 12:17:19

标签: php mysql dropdown option

尽管无济于事,我正在尝试对MySQL查询正确选择下拉列表过滤器。如果假期日期等于盘点日期,则该工人在下拉菜单中应该不可见。

这仅适用于该行的第一个结果,下面是一些示例;

更多示例;

  • 用户A不能在10/6/2019工作,因此他不会显示(这是正确的)
  • 和用户A也无法在11/6/2019上班,但现在显示所有日期。 (这不应该发生)

另一个例子;

  • 用户A不能在10/6/2019工作,因此他不会显示(这是正确的)
  • 和用户B无法在11/6/2019上班,但现在用户A再次显示所有日期。 (这不应该发生)

另一个例子;

  • 用户A和用户B不能在10/6/2019工作,因此用户B和用户A不会显示(这是正确的)
  • 和用户B无法在11/6/2019上班,但现在用户A再次显示所有日期。 (这不应该发生)
if ($available_date == $stk_date) {
    $query = "
        SELECT *
        FROM user_master
        WHERE id NOT IN (
            SELECT UM.id
            FROM user_master UM 
            JOIN bookings B ON B.id_item = UM.id
            JOIN stocktakes S ON B.the_date = S.stk_date
        )
    ";
    $result = mysqli_query($connect, $query);
    // $row = mysqli_fetch_array($result);
    if ($result) {
        while ($row = mysqli_fetch_array($result)){
            echo "<option value=$row[first_name]>$row[first_name]  $row[last_name]</option>'";
        }
    }
}
else {
    $query  = "SELECT * FROM user_master";
    $result = mysqli_query($connect, $query);
    // $row = mysqli_fetch_array($result);
    if ($result) {
        while ($row = mysqli_fetch_array($result)){
            echo "<option value=$row[first_name]>$row[first_name]  $row[last_name]</option>'";
        }
    }
}

我需要弄清楚做到这一点;

如果用户A,B,C或D等无法在2019年10月6日工作-他们不会在2019年10月6日的任何下拉列表中显示。

并且如果用户A,B和C-在11/6/2019上无法使用-他们不会在10/6/2019行和11/6/2019的任何下拉列表中显示标记为那几天不工作。

这里有一些SQL提琴(第一次使用它,不确定如何制作多个表),其中只有我正在使用的基本数据。

更新

我已经注意到,如果只有一个“值”有意义的话,这似乎是可行的,例如;

  • 如果我让用户A在10/06/2019上预订,它将起作用。
  • 但是,如果我让用户A在10/06/2019和11/06/2019上预订,它将无法正常工作。

  • 如果我让用户A和用户B都预订了10/06/2019

  • 尽管如果我让用户B在2019年11月6日预订,那将不起作用。

更新2:

如果表中只有一行,它将100%正常工作-如果添加第二行,它将不起作用并将结果混合在一起。几乎好像查询的每一行都无法正常运行?

0 个答案:

没有答案