我正在尝试从html表单获取用户输入,然后使用该数据更改mysql数据库中的行。它还应该加载当前表的列表,以便用户可以选择要更改的行。这是我到目前为止的代码
<?php
require('conn.php');
error_reporting( E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED & ~E_WARNING);
ini_set("display_errors", 1);
if( isset($_POST['send'])){
$Change=htmlspecialchars($_POST["change"]);
$Product_Name = htmlspecialchars($_POST["product_name"]);
$Stock= htmlspecialchars($_POST["stock"]);
$Price=htmlspecialchars($_POST["price"]);
$update="UPDATE product SET Product_Name='$Product_Name', Stock='$Stock', Price='$Price' WHERE $Product_Name='$Change'";
if (mysqli_query($conn,$update)){
echo "Record updated";
} else{
echo "Error updating record: " . mysqli_error($conn);
}
}
$sql = "SELECT * FROM product";
$result = mysqli_query($conn,$sql);
if(!$result){
echo 'Could not run query: ' . mysqli_error($conn);
exit;
}
print "<table border='1'>\n";
print " <tr><th>Product Name</th><th>Total Stock</th><th>Price</th> </tr>\n";
while($row = mysqli_fetch_row($result)){
print " <tr>\n";
print "<td>".$row['0']."</td>";
print "<td>".$row['1']."</td>";
print "<td>".$row['2']."</td>";
print " </tr>\n";
}
print "</table>\n";
mysqli_close($conn);
?>
<html>
<body>
<form action="update.php" method="post">
<table border="1">
<tr>
<td>Row to Change</td>
<td align="center"><input type="text" name="change" size="30" /></td>
</tr>
<tr>
<td>Product Name</td>
<td align="center"><input type="text" name="product_name" size="30" /></td>
</tr>
<tr>
<td>In Stock</td>
<td align="center"><input type="text" name="stock" size="30" /></td>
</tr>
<tr>
<td>Price</td>
<td align="center"><input type="text" name="price" size"30" /></td>
</tr>
<tr>
<td>Submit</td>
<td align="center"><input type="submit" name="send" value="send"></td>
</tr>
但是,当我加载它时,当前页面是空白的。 html部分与PHP代码的这部分以及
的部分工作正常$sql = "SELECT * FROM product";
$result = mysqli_query($conn,$sql);
if(!$result){
echo 'Could not run query: ' . mysqli_error($conn);
exit;
}
print "<table border='1'>\n";
print " <tr><th>Product Name</th><th>Total Stock</th><th>Price</th> </tr>\n";
while($row = mysqli_fetch_row($result)){
print " <tr>\n";
print "<td>".$row['0']."</td>";
print "<td>".$row['1']."</td>";
print "<td>".$row['2']."</td>";
print " </tr>\n";
}
print "</table>\n";
mysqli_close($conn);
?>
当我添加其余部分时,它只显示一个空白页面。如何更改此设置并获取表单输入以更新和更改数据库中的相应行?
答案 0 :(得分:1)
这个braket在哪里关闭?
if( isset($_POST['send'])){
在更新/插入语句后正确关闭brakets,在
之前猜测$sql = "SELECT * FROM product";
语句。
(PS尝试使用编程编辑器(如记事本++)。它显示打开/关闭正确的标签。真的很有帮助。
也是
error_reporting( E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED & ~E_WARNING);
ini_set("display_errors", 1);
第一行的也会有所帮助。