PHP MySQL - 编辑数据中的未定义索引

时间:2014-03-30 23:17:04

标签: php mysql indexing undefined

我制作文件details.php,显示来自MySQL的数据列表,然后为它制作edit.php。 当我点击edit.php时,它会自动转到edit.php?id=detailsid(它可以正常工作),但是当我点击提交编辑数据时,它没有任何变化和错误。

这是我的Edit.php

    <form method="post" action="editdata.php">
<?php 
          include 'config.php';
          $id=$_GET['id'];
          $sqlTampil="select * from data_korban Where kasus_id=$id"; 
          $qryTampil=mysql_query($sqlTampil); 
          $dataTampil=mysql_fetch_array($qryTampil); 
          $data=mysql_fetch_array($qryTampil);
         ?>

这是我的一些HTML表单

    <input type="DATE" name="tanggal" size="20" value="<?php echo $dataTampil['tanggal']; ?>">
    <input type="text" name="namakorban" size="40" value="<?php echo $dataTampil['namakorban']; ?>">
    <input type="text" name="umurkorban" size="5" value="<?php echo $dataTampil['umurkorban']; ?>">

<input type="submit" name="submit" value="SUBMIT">

当我点击提交时,它会自动调用editdata.php但我的MySQL行没有变化..

这是我的editdata.php

<?php 
include "config.php";

$id=$_GET['id'];
$tanggal = $_POST['tanggal'];
$namakorban = $_POST['namakorban'];
$umurkorban = $_POST['umurkorban'];

$update = "UPDATE data_korban SET tanggal='$tanggal', namakorban='$namakorban', umurkorban='$umurkorban' WHERE kasus_id = '$id'";

$hasil = mysql_query($update);

if ($hasil) 
    echo "<center>Update Success<center>"; 
else
    echo "<center><h3><a href=pencarian.php>Back Tampil Data</a></h3></center>"; 
?>

我的Error_Log

中有一些东西
PHP Notice:  Undefined index:  id in /home/lombokdi/public_html/dbanak/editdata.php on line 4 ------ it's $id=$_GET['id'];

我已更改为$_POST['id'];它仍然是错误。

4 个答案:

答案 0 :(得分:1)

您的表单似乎不包含id命名字段。

您正在尝试从请求中读取非现有字段。 形成请求以通过post方法发送数据,但您尝试使用id方法读取get参数。由于找不到id的值,null子句中使用了where,并且没有更新任何行。

$id=$_GET['id'];
$tanggal = $_POST['tanggal'];
$namakorban = $_POST['namakorban'];
$umurkorban = $_POST['umurkorban'];
  

ID的值为$id=$_GET['id']; ... ID来自detail.php?id=24(示例)转到edit.php?id=24 ..如果我错了,如何设置ID ??

edit.php中将id命名元素添加到表单中,并从请求中读取值。在提交表单时,id会转到editdata.php页。

<input type="DATE" name="tanggal" size="20" value="<?php echo $dataTampil['tanggal']; ?>">
<input type="hidden" name="id" value="<?php echo $id['id']; ?>">
<input type="text" name="namakorban" size="40" value="<?php echo $dataTampil['namakorban']; ?>">
<input type="text" name="umurkorban" size="5" value="<?php echo $dataTampil['umurkorban']; ?>">

并在editdata.php
变化:

$id=$_GET['id'];

致:

$id=$_POST['id'];

答案 1 :(得分:0)

这是因为你没有提交&#34; id&#34;如果你切换到editdata.php

添加:<input type="hidden" name="id" value="<?php $_GET['id']; ?>"> 到Edit.php中的表单

并替换     在editdata.php中$id=$_GET['id']; $id= $_POST['id'];

答案 2 :(得分:0)

尝试这样

$id=$_GET['id'];
$sql=mysqli_query($con,"Update client set nama='$nama',instansi='$instansi',telepon='$telepon',email='$email' where id = '".$_GET['id']."'");
    if($sql)
    {
        $msg="Your Client updated Successfully";
        header('location:manage-client.php');
    }

在正文后添加此查询

$sql=mysqli_query($con,"select * from client where id = '".$_GET['id']."'");
                                    while($data=mysqli_fetch_array($sql))

答案 3 :(得分:-1)

您正在使用$ _GET来获取ID。最好做var_dump($_REQUEST);