我有行显示产品及其长袜。 我可以从数据库中提取记录,但不知怎的,我被困在编辑部分。当我点击编辑时,我不知道如何传递id,所以我可以使用id来选择表格中需要选择的内容。
我有类似stock.php的东西,它显示了所有item_name和stock
<?php
$sql = "SELECT * FROM inventory";
$result = mysqli_query($mysqli,$sql);
//make sure database queries
if (!$result) {
echo "DB Error, could not query the database\n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
if ($result->num_rows > 0) {
echo "<table><tr><td>Name</td>
<td>Stock</td>
</tr>";
// output data of each row
while($row = $result->fetch_assoc()) {
$id = $row['id'];
echo "<tr>
<td>".$row["item_name"]."</td>
<td>".$row["stock"]."</td>
<td>
<form action='edit.php' method='POST'>
<input type='hidden' name='$id' value='$id'/>
<input type='submit' name='edit' value='edit' />
</form>
</td>
</tr>";
}
echo "</table>";
} else {
echo "0 results";
}
?>
在我的edit.php中我有类似的东西,因为$id
未通过而给我错误
include_once "init.php";
if ($_SERVER['REQUEST_METHOD']=='POST') {
// query the table by matching up the int id
$sql = "SELECT * FROM inventory WHERE id = '$id'";
}
我想在新页面中再次提取数据,然后再次输入框以让用户更新库存#或甚至产品名称以及其他必要的商品名称。
答案 0 :(得分:1)
输入声明中有错误。 HTML项目的名称不能以特殊字符开头(如$)。您应该以这种方式设置基于变量的名称:
<input type='hidden' name='".$id."' value='".$id."'/>
同样在你的edit.php中,你的SQL语句有一个错误。
$sql = "SELECT * FROM inventory WHERE id = '$id'";
应该是:
$sql = "SELECT * FROM inventory WHERE id = ".intval($id);
答案 1 :(得分:0)
您需要执行以下更新:
stock.php
<input type='hidden' name='id' value='$id'/>
edit.php
$sql = "SELECT * FROM inventory WHERE id = '".$_POST["id"]."'";
您将当前的id值作为post var名称传递,var的名称应为“id”