使用PHP

时间:2017-04-18 04:40:58

标签: php

我想在数据库中更新我的值时遇到一些问题。没有显示错误。即使未更新值,页面也会按指示重定向。 这是用户输入的代码..

    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);

该值无法更新。我不知道出了什么问题。所以,任何帮助都会受到赞赏。谢谢。

4 个答案:

答案 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);
}