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