使用php更新具有相同id的多个值

时间:2015-11-26 05:50:55

标签: php

我正在尝试更改数据库中的值..在我的数据库中,它像这样保存

ID                  COLOR
1                    RED
1                    BLUE
1                    GREEN

我想更新我的颜色类别中的所有ID

现在我想像这样更新它

 Color1 : RED  to BLACK
 Color2 : BLUE to YELLOW
 Color3: GREEN To WHITE

但是当我点击更新..结果就像这样

Color1 : WHITE 
Color2 : WHITE
Color3:  WHITE

我如何保存修复程序?

这是我的代码。

HTML表格

<div class='control-group'>
   <div style='margin-left: 25px; margin-top:-5px;'>
    <label style='display: inline-block !important; vertical-align: middle; float: left; font-weight: bold; margin-left:40px;'> Color Combination $x &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>

   <div class='controls'>
   <select name='color1[]' class='form-control'  id='color1' onchange='getcolor()'><option value=''>$test</option>
    ";

 $statement = $db->prepare("SELECT * FROM color order by colorName ASC");
   $statement->execute();

     while($rows = $statement->fetch(PDO::FETCH_ASSOC)) {
echo "<option value='" .$rows['colorName']. "'>" . $rows['colorName'] . " - " . $rows['colorCode'] ."</option>";
        }

echo "</select>";

我的提交代码

if (isset($_POST['submit'])) {

$color1 = $_POST['color1'];
$count = count($color1);

 for ($x = 0; $x <=$count; $x++) {

    if($color2[$x] == "")
    {   
     $savecolor = $color1[$x];

$stmt = $db->prepare('UPDATE productcolor set colorName = :color WHERE productinformationID=:productinformationID');
$stmt->execute(array(':color' => $savecolor, ':productinformationID' => $prodID));
    }
}   

} 

但是当我回显$ savecolor = $ color1 [$ x];它显示我选择的颜色,但是当它保存它不是..

1 个答案:

答案 0 :(得分:1)

您需要AND条件来指定应更新哪种颜色。

例如:

UPDATE productcolor
SET colorName = :color
WHERE productinformationID=:productinformationID
AND colorName = :colorName

:colorName应该是要更改的颜色。