我有一个带有下拉列表的表单,我需要从它的POSTDATA进入mysql查询,但我无法转换为日期时间。
第一件事我试过:这些值都是来自服务器表的日期时间。然后,用户选择一个时间,然后使用POST将该时间保存在变量中。然后我尝试将变量中的值转换回可在查询中使用的时间。但这会产生以下错误:警告:mysql_query()期望参数2为资源,在第57行的reserveren.php中给出null
第二件事我试过:直接在查询中使用POST但是这会出现以下错误:警告:mysql_query()期望参数2是资源,null在第57行的reserveren.php中给出
第3件事我试过:仍然转换值但使用不同的方法,并给出此错误:可捕获的致命错误:类DateTime的对象无法在第60行的reserveren.php中转换为字符串
第一次尝试的代码如下所示:
$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);
第二次尝试的代码如下所示:
$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);
第三次尝试的代码如下所示:
$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>";
目前我只是得到错误,但我想要的是在我的mysql查询中成功使用$ Tijd变量。那么我从select中得到什么样的数据呢?我将它转换为可用的日期时间吗?
由于@Nick,现在问题有点固定。使用第二次尝试的代码,它会停止给我错误。我把查询放在我的数据库连接前面,这是错误。
这仍然没有修复我的代码,但现在我至少知道如何进一步。