-1

我正在尝试显示从“日期”中选择的数据库表中的数据。查询执行,但是当我回显时,我没有得到任何结果。你能帮我解决这个问题吗?

<?php include 'includes/connection.php'; ?>
<html>
<head>
<title> </title>
</head>
<body>
<?php 
if(isset($_POST['submitted'])){
$sql = "SELECT * FROM dagtaken WHERE datum = $_POST[datum]";

$result = mysql_query($sql) or die (mysql_error());
while ($row = mysql_fetch_array($result)){
echo $row['aantal'];
}
}else{
?>
<form action='' method='POST'>
<p><input type="date" name="datum"></p>
<p><input type='submit' value='Dagtaak toevoegen' />
<input type='hidden' value='1' name='submitted' /></p>
</form>
<?php } ?>
</body>
</html>
4

3 回答 3

1

查询不应该执行,因为日期很明显是字符串并且需要引号。那就是说...

xkcd

尝试这个:

mysql_query("SLEECT * FROM `dagtaken` WHERE `datum`='".mysql_real_escape_string($_POST['datum'])."'");

现在回到实际问题,您正在检查if(isset($_POST['submitted'])),但我<input name="submitted"在您的源代码中看不到任何地方(编辑没关系,它有大量的空白将其推离边缘)。尝试if(isset($_POST['datum'])),因为这是您实际使用的变量。

于 2013-03-04T14:46:06.177 回答
0

你还没有命名你的提交按钮,所以你的 PHP 代码永远不会启动。当你真正需要的是检查是否发生了 POST 时,不要检查表单字段。

快速修复您的代码:

<input type="submit" name="submitted" value="Dagtaak toevoegen" />
                    ^^^^^^^^^^^^^^^^^

更好的修复:

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    your code here ...
}
于 2013-03-04T14:45:34.850 回答
0

首先,转义您的数据。SQL注入现在很容易

其次,您的数据库中有数据吗?尝试 print_r($row) 而不是 echo $row...

$_POST 带有引号...=> $_POST["datum"] 最后添加,您的日期与您的输入相同吗?

于 2013-03-04T14:46:04.077 回答