问题描述
我正在尝试使用表单更新表。我使用POST从另一个页面获取表的ID,该方法有效,并且数据库中记录的值也在输入中。 但是,当我想更新该行时,出现以下错误: 注意:未定义索引:第8行的ID
$id = $_POST['id'];
$res = $MysqLi->query("SELECT * FROM Personen WHERE ID = '$id'");?>
<? while($row = $res->fetch_assoc()){
?>
<form action="update.PHP" method="POST">
<div class="row top-buffer">
<input type="text" class="form-control" name="name" id="name" required="required" value="<? echo $row['Name'];?>">
</div>
<div class="row top-buffer">
<input type="text" class="form-control" name="vorname" id="vorname" required="required" value="<? echo $row['Vorname'];?>">
</div>
<div class="row top-buffer">
<input type="text" class="form-control" name="telefon" id="telefon" required="required" value="<? echo $row['Telefon'];?>">
</div>
<div class="row top-buffer">
<input type="text" class="form-control" name="email" id="email" required="required" value="<? echo $row['Email'];?>">
<br>
</div>
<?}?>
<button type="submit" name="update" class="btn btn-primary" style="margin-left: 40%;">Update</button></form>
这是我的Update语句:
if(isset($_POST['update'])){
$name = $_POST['name'];
$vorname = $_POST['vorname'];
$email = $_POST['email'];
$telefon = $_POST['telefon'];
$update = $MysqLi->query("UPDATE Personen SET Name = '$name',Vorname = '$vorname',Telefon = '$telefon',Email ='$email' WHERE ID = '$id'");
header("location: update.PHP");
}
解决方法
如果获得Notice: Undefined index: id
,则意味着您引用$id
而不显式设置该值。 PHP确实允许您这样做,但是在这种情况下,您需要通过放置以下代码来抑制错误消息的Notice类型:
error_reporting(E_ALL^E_NOTICE);
脚本上方的某处。但是,优良作法是始终在使用变量之前明确定义它。在您的示例中,尚不清楚$id
如何获得其价值。