PHP:记录未在SQL中更新

PHP:记录未在SQL中更新,php,mysql,sql-update,Php,Mysql,Sql Update,我的问题是更新SQL记录。它将SQL数据正确地提取到表单中(用于编辑),但当我按下“保存编辑”按钮时,它会在输入字段中返回以下错误:注意:未定义变量:第46行的C:\xampp\htdocs\edit.php中的行请告诉我如何修复它 <html> <body> <?php $servername = "localhost"; $username = "root"; $password = "zz224466"; $database = "zain"; $conn =

我的问题是更新SQL记录。它将SQL数据正确地提取到表单中(用于编辑),但当我按下“保存编辑”按钮时,它会在输入字段中返回以下错误:

注意:未定义变量:第46行的C:\xampp\htdocs\edit.php中的行
请告诉我如何修复它

<html>
<body>
<?php
$servername = "localhost";
$username = "root";
$password = "zz224466";
$database = "zain";
$conn = mysqli_connect($servername,$username,$password,$database);
if($conn->connect_error) {
    die("connection failed: " . $conn->connect_error);
}


if(isset($_GET['edit'])) {
    $id = $_GET["edit"];  //Get id of sql table from other php page.
    echo $id; //It gives true result. It means that $_GET method above gets id of sql table correctly


    $res = mysqli_query($conn, "SELECT * FROM product where product_id=$id");



    if ($res == FALSE) {
        die("Error");

    }
    $row = mysqli_fetch_array($res);// Getting row from sql of specific id above selected above




    if (isset($_POST['Edit'])) {  ///Checking if Edit button has been pressed
        $product_category = $_POST['product_category'];
        $product_id = $id;

//// SQL query
        $sql_category = "UPDATE product SET product_category='$product_category' WHERE product_id=$id";
        if (mysqli_query($conn, $sql_category)) {

        }

    }
}
    ?>

////////////////////HTML FORM/////////////////////////
<form method="post" action ="edit.php" id="contact-form">


    <input type="text" name="product_category" placeholder="product_category" value="<?php echo $row['product_category'];//It prints sql record in input field which is to be updated and it prints correctly. But when I press edit button it gives above mentioned error ?>"/>


    <div class="btn-group" role="group">
        <input type="submit" class="btn btn-default" name="Edit" value="Save Edits" style="margin-top: 15px; margin-right: 15px; border-radius: 4px;">

    </div>
</form>
</body>
</html>


试试这个。因为,当您按下提交按钮时。它将使用
POST
值和no
GET
参数edit.php(在按下
edit
submit按钮后。因此,浏览器无法找到由此产生的
$id
,没有
$row
值。)

因此,没有
edit=1

更新代码

将您的
更改为

<form method="post" action ="edit.php?edit=<?echo $_GET['edit'];?>" id="contact-form">

这是因为点击编辑按钮后,$id没有值。请尝试在表单提交时再次发送它。因为
$\u GET[“edit”]!=$_GET[“Edit”]
此行
if(isset($\u GET['Edit']){
您输入的名称是
name=“Edit”
所以使用`
if(isset($\u GET['Edit'])){
INSTEAD此get方法与表单元素无关。@它的可能副本停止显示错误,但记录未更新yetSee my answer@ZainFarooqHi@ZainFarooq:您没有响应我的答案。您好,很抱歉响应太晚。我今天刚切换到编程。您的错误很小。您忘记添加隐藏的inp将产品标识的ut字段转换为表单,该标识将用于sql的更新查询
https:www.example.com/edit.php
<form method="post" action ="edit.php?edit=<?echo $_GET['edit'];?>" id="contact-form">
<html>
<body>
<?php
$servername = "localhost";
$username = "root";
$password = "zz224466";
$database = "zain";
$conn = mysqli_connect($servername,$username,$password,$database);
if($conn->connect_error) {
    die("connection failed: " . $conn->connect_error);
}

if(isset($_GET['edit'])) {
    $id = $_GET["edit"];  
    echo $id; 
    $res = mysqli_query($conn, "SELECT * FROM product where product_id=$id");
    if ($res == FALSE) {
        die("Error");

    }
    $row = mysqli_fetch_array($res);
    if (isset($_POST['Edit'])) {  
        $product_category = $_POST['product_category'];
        $product_id = $_GET['edit']; // Change Here

        // Changes here 
        $sql_category = "UPDATE product SET product_category='$product_category' WHERE product_id=$product_id";
        if (mysqli_query($conn, $sql_category)) {

        }
    }
}?>
    // Changes here in form tag 
    <form method="post" action ="edit.php?edit=<?echo $_GET['edit'];?>" id="contact-form"> 
          <input type="text" name="product_category" placeholder="product_category" value="<?php if(isset($row['product_category'])) { echo $row['product_category']; }?>"/>
          <div class="btn-group" role="group">
              <input type="submit" class="btn btn-default" name="Edit" value="Save Edits" style="margin-top: 15px; margin-right: 15px; border-radius: 4px;">
          </div>
    </form>
</body>
</html>