Я пытаюсь правильно настроить раскрывающийся фильтр для запроса MySQL, но безрезультатно. Если праздничная дата равна дате инвентаризации, работник не должен отображаться в раскрывающемся списке.
Это работает только для первого результата строки, ниже приведены некоторые примеры;
Больше примеров;
- Пользователь А не может работать 6/6/2019, поэтому он не показывает (это правильно)
- и пользователь A также не могут работать 6/6/2019, но теперь отображаются для всех дат. (этого не должно быть)
Другой пример;
- Пользователь А не может работать 6/6/2019, поэтому он не показывает (это правильно)
- и пользователь B не может работать 6/6/2019, но теперь пользователь A снова показывает все даты. (этого не должно быть)
Другой пример;
- Пользователь A & B не может работать 10/6/2019, поэтому пользователь B & User A не показывает (это правильно)
- и пользователь B не может работать 6/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 и т. Д. - не может работать 10/6/2019 - он не отображается ни в одном из раскрывающихся списков для строки 10/6/2019.
и если Пользователь A, B & C - не может работать 6/6/2019 - он не отображается ни в одном из выпадающих списков для строки 10/6/2019 и 6/11/2019, поскольку они помечены как не работающие в те дни.
Вот некоторые SQL-скрипты (когда я впервые использовал их, я не знал, как составить несколько таблиц), это лишь основные данные, которые я использую.
Обновление:
Я заметил, что это работает, если есть только одно «значение», если это имеет смысл, например,
- Если я забронирую пользователя A 10 июня 2009 г., это сработает.
Но если я забронирую пользователя A, зарегистрированного 10/06/2019 и 11/06/2019, это не сработает.
Если я забронирую пользователя A & User B 10/06/2019, он будет работать
- Хотя, если я забронирую пользователя B 11/06/2019, это не сработает.
Обновление 2:
Это 100% работает, как задумано, если в таблице только одна строка - если добавлена вторая строка, она просто не работает и смешивает результаты. Почти как если бы запрос не работал правильно для каждой строки?