从mysql_fetch_array回显数据

时间:2013-03-04 14:42:32

标签: php mysql

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

<?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>

3 个答案:

答案 0 :(得分: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'])),因为那是你实际使用的变量。

答案 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 [ “基准”] 最后一个,您的日期与您的输入相同吗?