Проблема
У меня есть форма с выпадающим списком, и мне нужно POSTDATA из нее, чтобы поместить в запрос MySQL, но я не могу преобразовать в datetime.
То, что я пытался
1-я вещь, которую я попробовал: все значения в являются датой и временем из таблицы сервера.Затем пользователь выбирает время, а затем оно сохраняется в переменной с помощью POST.Затем я пытаюсь преобразовать значение внутри переменной обратно во время, которое можно использовать внутри запроса.Но это приводит к следующей ошибке: Предупреждение: mysql_query () ожидает, что параметр 2 является ресурсом, значение NULL указано в reserveren.php в строке 57
2-я вещь, которую я пробовал: Непосредственное использование POST внутри запроса, но это даетследующая ошибка: Предупреждение: mysql_query () ожидает, что параметр 2 является ресурсом, значение NULL, указанное в reserveren.php в строке 57
3-еИсправляемая фатальная ошибка: объект класса DateTime не может быть преобразован в строку в reserveren.php в строке 60
Используемый код
Код для первой попытки выглядит следующим образом:
$Tijd = date_create();
$Tijd->format(\DateTime::ISO8601);
$result = mysql_query ("SELECT Voorstellingsnummer FROM voorstelling v WHERE Tijd = '$Tijd' AND v.Voorstellingsnummer NOT IN(SELECT r.Voorstellingsnummer FROM reserveringen r WHERE r.Voorstellingsnummer = v.Voorstellingsnummer GROUP BY r.Voorstellingsnummer HAVING COUNT(*) >= 50) AND Vestigingsnaam = '" . $_SESSION["geselecteerdvestiging"] . "' AND Filmnaam = '" . $_SESSION["geselecteerdfilmnaam"] . "';", $db);
Код для 2-й попытки выглядит следующим образом:
$result = mysql_query ("SELECT Voorstellingsnummer FROM voorstelling v WHERE Tijd = '" . $_POST["Tijd"] . "' AND v.Voorstellingsnummer NOT IN(SELECT r.Voorstellingsnummer FROM reserveringen r WHERE r.Voorstellingsnummer = v.Voorstellingsnummer GROUP BY r.Voorstellingsnummer HAVING COUNT(*) >= 50) AND Vestigingsnaam = '" . $_SESSION["geselecteerdvestiging"] . "' AND Filmnaam = '" . $_SESSION["geselecteerdfilmnaam"] . "';", $db);
Код для 3-й попытки выглядит следующим образом:
$time = $_POST["Tijd"];
$Tijd = new DateTime("$time");
$result = mysql_query ("SELECT Voorstellingsnummer FROM voorstelling v WHERE Tijd = '$Tijd' AND v.Voorstellingsnummer NOT IN(SELECT r.Voorstellingsnummer FROM reserveringen r WHERE r.Voorstellingsnummer = v.Voorstellingsnummer GROUP BY r.Voorstellingsnummer HAVING COUNT(*) >= 50) AND Vestigingsnaam = '" . $_SESSION["geselecteerdvestiging"] . "' AND Filmnaam = '" . $_SESSION["geselecteerdfilmnaam"] . "';", $db);
Это код формы:
$resultaat = mysql_query ("SELECT Tijd FROM voorstelling v WHERE v.Voorstellingsnummer NOT IN(SELECT r.Voorstellingsnummer FROM reserveringen r WHERE r.Voorstellingsnummer = v.Voorstellingsnummer GROUP BY r.Voorstellingsnummer HAVING COUNT(*) >= 50) AND Vestigingsnaam = '" . $_SESSION["geselecteerdvestiging"] . "' AND Filmnaam = '" . $_SESSION["geselecteerdfilmnaam"] . "';", $db);
$_SESSION["Tijd"] = $resultaat; //the selected Tijd records in this query are in datetime format on the server.
echo "<form action='reserveren.php' method='post'>
<H3>Kies een Tijd</H3><br>
<select name='Tijd'> ";
while ($row = mysql_fetch_array($_SESSION["Tijd"])) {
echo "<option value='" . $row['Tijd'] ."'>" . $row['Tijd'] ."</option>";
}
echo "</select>
<input type='submit' name='Reserveer' value='Reserveren'>
</form>";
В настоящее время я получаю только ошибки, но я хочу, чтобы переменная $ Tijd была успешно использована в моем запросе mysql.Так, какие данные я получаю от выбора, и я преобразовываю это в пригодную для использования дату и время?