PHP未定义指数($ _GET)
你好,我有一些问题,我的代码:
if (!empty($_GET['id'])){
$id = $_GET['id'];
}else if (!empty($_POST['id'])){
$id = $_POST['id'];
}
$get_id = 'SELECT * FROM kunde WHERE id=' . $id;
$r = mysql_query($get_id);
$t = mysql_fetch_array($r);
$_SESSION['id'] = $t['id'];
我也有我的隐藏字段:
<input type="hidden" name="id" value="<?php echo $_SESSION['id']; ?>">
但我总是相同的错误:
Notice: Undefined variable: id in C:\xampp\htdocs\Uebungsklausur\PHP\change.php on line 30
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\Uebungsklausur\PHP\change.php on line 32
请帮我家伙..我只是想从表“孔德”
ID用3210编辑:谢谢你们我解决了它。问题出现在表单标签中。这是第一个代码:<form method="post">
现在它是:'<form method="post" action=" change.php?id=' . $row[0] . '">';
这段代码现在太复杂了,因为没有足够的信息。 代码太模糊了,因为我没有理解你想要做什么以及代码应该引导你到哪里。
下面将可能帮助您:
,如果你想获得它的形式表的客户,你就错了。你现在从表'kunde'得到它。你还需要在WHERE语句中提供一个ID,你没有,因为你试图用实际的语句来得到它?
下面的代码是我认为你要做的。
做一个输入,如果它存在,发送它的ID。
<input type="hidden" name="id" value="<?php if (isset($_SESSION['id'])) { echo $_SESSION['id']; } ?>">
然后在下面的代码检查是否设置了'id'并返回id?
if (isset($_POST['id'])) {
$id = $_POST['id'];
// REST OF CODE (The $get_id, $r, $t and setting $_SESSION)
}
if (isset($_GET['id'])) {
$id = $_GET['id'];
// REST OF CODE (The $get_id, $r, $t and setting $_SESSION)
}
让我们来解决您提供的代码一些事情:
1.您使用GET和POST在同一时间?我想知道你实际使用的是哪一个。
2.我假设你从$ _SESSION ['id']获得ID。另一种方法是,你可以直接从它获得$ id。
考虑到这些事情:
让我们假设你正在使用GET获取的ID。
首先,改变这种:
if (!empty($_GET['id'])){
$id = $_GET['id'];
}else if (!empty($_POST['id'])){
$id = $_POST['id'];
}
这个
if (isset($_GET['id'])){
$id = $_GET['id'];
}
else if (!isset($GET['id'])) {
$id = $_SESSION['id'];
}
不过,请清楚你的要求。
任何理由downvote? – Ronald
发生这种情况是因为$ id没有从IF语句中声明出来,即$ id变量只存在于if或else语句中,而且它不存在。
要解决它,你可以:
1#申报的$ id以外的if语句
这使得你的代码运行
$id; // or $id = null
if (!empty($_GET['id'])){
$id = $_GET['id'];
}else if (!empty($_POST['id'])){
$id = $_POST['id'];
}
$get_id = 'SELECT * FROM kunde WHERE id=' . $id;
$r = mysql_query($get_id);
$t = mysql_fetch_array($r);
$_SESSION['id'] = $t['id'];
2#使用三元操作
使用非常简单:
$id = (!empty($_GET['id'])) ? $_GET['id'] : $_POST['id'];
$get_id = 'SELECT * FROM kunde WHERE id=' . $id;
$r = mysql_query($get_id);
$t = mysql_fetch_array($r);
$_SESSION['id'] = $t['id'];
3#使用$ _REQUEST全球
$ _REQUEST全局这是一个的$ _POST和$ _GET
$id = $_REQUEST['id'];
$get_id = 'SELECT * FROM kunde WHERE id=' . $id;
$r = mysql_query($get_id);
$t = mysql_fetch_array($r);
$_SESSION['id'] = $t['id'];
[PHP的可能重复的 “总结”: “通知:未定义的变量”和“注意:未定义的索引”](http://*.com/questions/4261133/php-notice-undefined-variable-and-notice-undefined-index) – Phiter
你应该使用'isset();'来检查是否变量'$ _GET ['id']'或'$ _POST ['id']'存在或不存在。 – 2016-11-21 23:12:05
if(isset($ _GET ['id'])){ \t \t echo“GET_ID exists”; \t} else { \t \t echo“Error”; \t} \t \t 如果(isset($ _ POST [ 'ID'])){ \t \t回声 “POST_ID存在”; \t} else { \t \t echo“Error”; } 我得到了“错误”,但我不知道为什么.. – Syntrax