我的POST中存储的数据形成SELECT输入

问题描述 投票:-2回答:1

Problem

我有一个带有下拉列表的表单,我需要从它的POSTDATA进入mysql查询,但我无法转换为日期时间。

我试过的事情

第一件事我试过:这些值都是来自服务器表的日期时间。然后,用户选择一个时间,然后使用POST将该时间保存在变量中。然后我尝试将变量中的值转换回可在查询中使用的时间。但这会产生以下错误:警告:mysql_query()期望参数2为资源,在第57行的reserveren.php中给出null

第二件事我试过:直接在查询中使用POST但是这会出现以下错误:警告:mysql_query()期望参数2是资源,null在第57行的reserveren.php中给出

第3件事我试过:仍然转换值但使用不同的方法,并给出此错误:可捕获的致命错误:类DateTime的对象无法在第60行的reserveren.php中转换为字符串

Code used

第一次尝试的代码如下所示:

$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中得到什么样的数据呢?我将它转换为可用的日期时间吗?

php mysql forms
1个回答
0
投票

由于@Nick,现在问题有点固定。使用第二次尝试的代码,它会停止给我错误。我把查询放在我的数据库连接前面,这是错误。

这仍然没有修复我的代码,但现在我至少知道如何进一步。

© www.soinside.com 2019 - 2024. All rights reserved.