SELECT输入中存储了哪些数据?

时间:2019-03-31 11:04:12

标签: php mysql forms

问题

我有一个带下拉菜单的表单,我需要将其中的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查询中成功使用。那我从选择中得到什么样的数据,并将其转换为可用的日期时间?

1 个答案:

答案 0 :(得分:0)

由于@Nick,问题现在已经解决。 使用第二次尝试中的代码,它不再给我错误。 我把查询放在我的数据库连接的前面,这是错误的。

这仍然不能解决我的代码,但现在我至少知道如何进一步。