PHP:记录未在SQL中更新
我的问题是更新SQL记录。它将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 =
注意:未定义变量:第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
值和noGET
参数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>