我想在数据库中更新我的值时遇到一些问题。没有显示错误。即使未更新值,页面也会按指示重定向。 这是用户输入的代码..
echo "<td bgcolor='#FFFFFF'><input id='id' name='pro_id[]' type='text'></td>";
echo "<td bgcolor='#FFFFFF'><input id='name' name='pro_name[]' type='text'></td>";
echo "<td bgcolor=‘#FFFFFF’><input id='quan' name='pro_quan[]' type='text'></td>";
以下是我的插入值的代码..
$query = "INSERT INTO product (username, pro_id, pro_name, pro_quan) VALUES ";
for ($i = 0; $i < count($_POST['pro_id']); $i++) {
$query .= " ('{$username}', '{$id[$i]}', '{$name[$i]}', '{$quan[$i]}'),";
}
$query = substr($query, 0, -1);
$result = mysqli_query($con, $query) or die(mysqli_error($con));
插入代码工作正常。该值将插入到数据库中。下面是我的更新代码..
$sql = "SELECT * FROM product where username = '$username'";
foreach($_SESSION['product'] as $item)
{
$id = $item['pro_id'];
$name = $item['pro_name'];
$quan = $item['pro_quan'];
$sold = $item['pro_sold'];
$sql="UPDATE product SET pro_id='".$id."', pro_name='".$name."', pro_quan='".$quan."', pro_sold='".$sold."' WHERE username = '".$username."'";
}
$results=mysqli_query($con, $sql);
该值无法更新。我不知道出了什么问题。所以,任何帮助都会受到赞赏。谢谢。
答案 0 :(得分:1)
需要在foreac中执行sql执行,如下所示......
$sql = "SELECT * FROM product where username = '$username'";
$results=mysqli_query($con, $sql);
while($row = mysqli_fetch_assoc($results)){
$id = $row['pro_id'];
$name = $row['pro_name'];
$quan = $row['pro_quan'];
$sold = $row['pro_sold'];
$sql="UPDATE product SET pro_id='".$id."', pro_name='".$name."', pro_quan='".$quan."', pro_sold='".$sold."' WHERE pro_id = '".$id."' ";
mysqli_query($con, $sql);
}
答案 1 :(得分:1)
$id
和$quan
位于单引号之间。我对你的数据库结构一无所知,但有些东西告诉我这些值是数字而不是字符串。这是更新的行:
$sql="UPDATE product SET pro_id=".$id.", pro_name='".$name."', pro_quan=".$quan.", pro_sold='".$sold."'";
您可能还必须删除$sold
周围的引号。
答案 2 :(得分:1)
首先检查pro_id是否为主键。 如果它是主键而不是以这种方式写查询。
$sql="UPDATE product SET pro_name='".$name."', pro_quan='".$quan."', pro_sold='".$sold."' WHERE pro_id = '".$id."' ";
因为如果列的唯一性是干扰,则主键会生成错误。
答案 3 :(得分:0)
感谢各位帮忙。我使用for循环更改了我的更新代码。 以下是解决方案..
for ($i = 0; $i < count($_POST['pro_id']); $i++) {
$sql="UPDATE product SET pro_name='".$name[$i]."', pro_quan=".$quan[$i].", pro_sold=".$sold[$i]." WHERE pro_id=".$id[$i]."";
$results=mysqli_query($con, $sql);
}