-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インジェクションが非常に簡単になりました

次に、データベースにデータがありますか?echo $ rowの代わりにprint_r($ row)を試してください...

$_POSTは引用符で囲まれています...=>$ _ POST ["datum"]最後に、日付は入力と同じですか?

于 2013-03-04T14:46:04.077 に答える