这是带有日期选择器的main.php,并指向index.php
,其中包含数据表。它可以在我选择日期时工作,但是当我对index.php
页面进行一些更改时:编辑数据,或者如果我直接转到index.php
,我会得到:
注意:第112行的/Applications/XAMPP/xamppfiles/htdocs/zeta/index.php中的未定义索引:arr_date
<?php
include 'database.php';
$reponse = $bdd->query("SELECT * FROM live");
$reponse->closeCursor();
?>
<form action="index.php" method="post">
<input type="date" name="arr_date" value="FROM">
<input type="submit" value="Search">
</form>
的index.php
<?php
include 'database.php';
$selected_date= $_POST['arr_date'];
$reponse = $bdd->query("SELECT * FROM live where
arr_date='$selected_date'");
while ($row = $reponse->fetch())
{
?>
大家好,
谢谢你的帮助,这些信息解决了我的问题:
<?php
session_start();
include 'db.php';
// Check Post variables are available
if(isset($_POST['select_date']))
{
$_POST['select_date']."";
// Set session variables
$_SESSION["select_date"] = $_POST['select_date'];
$_SESSION["select_date"]."";;
}
else
$_SESSION["select_date"];
//echo 'No, form submitted.';
$select_date = $_SESSION["select_date"];
$reponse = $bdd->query("SELECT * FROM live where
select_date='$select_date'");
while ($row = $reponse->fetch())
{
答案 0 :(得分:1)
当然,如果直接转到index.php,这是一个没有表单数据的新请求。
您应该检查表单是否已提交
if(isset($_POST['arr_date'])) {
//do stuff
}
答案 1 :(得分:1)
使用isset()
或empty()
<?php
include 'database.php';
if(isset($_POST['arr_date']))
{
$selected_date= $_POST['arr_date'];
$reponse = $bdd->query("SELECT * FROM live where
arr_date='$selected_date'");
while ($row = $reponse->fetch())
{
}
}
echo "Other code which is not depended on POST will write here";
?>
答案 2 :(得分:1)
您需要检查变量是否已设置。
如果已设置,则仅使用isset()
更正后的代码:
<?php
include 'database.php';
if (isset($_POST['arr_date'])) {
$selected_date= $_POST['arr_date'];
$reponse = $bdd->query("SELECT * FROM live where
arr_date='$selected_date'");
while ($row = $reponse->fetch()) {
// While code
}
}
?>
答案 3 :(得分:1)
您必须显示完整的代码。无论你有什么可能像这样直接从数组中获取值。 $ val = $ _POST ['arr_date'],你必须使用isset()函数检查变量是否设置为这样。
if(isset($_POST['arr_date'])){
$var = $_POST['arr_date'];
}
答案 4 :(得分:0)
尝试查看是否设置了帖子数据
<?php
include 'database.php';
$selected_date= "";//set select date to blank
if(isset($_POST['arr_date']))
{
$selected_date= $_POST['arr_date'];
$reponse = $bdd->query("SELECT * FROM live where arr_date='$selected_date'");
while ($row = $reponse->fetch())
{
}//end of while
}
?>
如果条件
,我会使用我所做的事情$selected_date= "";//set select date to blank
if(isset($_POST['arr_date']){
$selected_date= $_POST['arr_date'];
}
答案 5 :(得分:0)
直接访问未定义的数组键(数组索引)会导致
“注意:未定义的索引:KEY_NAME”。
解决方案:
首先检查密钥是否存在isset($_POST['KEY'])
如果存在,请使用
代码:
if (isset($_POST['KEY'])) {
// use $_POST['key']
};
答案 6 :(得分:0)
您的代码几乎是正确的,但您还需要编写验证,如下所示:
第一种方法:
<?php
include 'database.php';
$selected_date= isset($_POST['arr_date'])?$_POST['arr_date']:"";
if(!empty($selected_date)){
$reponse = $bdd->query("SELECT * FROM live where
arr_date='$selected_date'");
while ($row = $reponse->fetch())
{
// Do your stuff here;
}
}
?>
第二种方法:
<?php
include 'database.php';
$selected_date= "";//set select date to blank
if(isset($_POST['arr_date']))
{
$selected_date= $_POST['arr_date'];
$reponse = $bdd->query("SELECT * FROM live where arr_date='$selected_date'");
while ($row = $reponse->fetch())
{
// Do your stuff here;
}
}
?>