我正在尝试显示从“日期”中选择的数据库表中的数据。 查询执行,但是当我回显时,我没有得到任何结果。你能帮帮我吗?
<?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>
答案 0 :(得分:1)
查询不应该执行,因为日期非常明显是字符串并且需要引号。那说......
试试这个:
mysql_query("SLEECT * FROM `dagtaken` WHERE `datum`='".mysql_real_escape_string($_POST['datum'])."'");
现在回到实际问题,您正在检查if(isset($_POST['submitted']))
,但我在源头中看不到<input name="submitted"
(编辑没关系,它有一个愚蠢的数量空白将其推离边缘)。试试if(isset($_POST['datum']))
,因为那是你实际使用的变量。
答案 1 :(得分:0)
您尚未命名您的提交按钮,因此您的PHP代码永远不会启动。当您真正需要的是检查POST是否发生时,请不要检查表单字段。
快速修复代码:
<input type="submit" name="submitted" value="Dagtaak toevoegen" />
^^^^^^^^^^^^^^^^^
更好的解决方法:
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
your code here ...
}
答案 2 :(得分:0)
首先,逃避您的数据。 SQL注入现在非常简单
其次,您的数据库中是否有数据? 尝试print_r($ row)而不是echo $ row ...
$ _ POST带引号... =&gt; $ _ POST [ “基准”] 最后一个,您的日期与您的输入相同吗?