我正在尝试更改数据库中的值..在我的数据库中,它像这样保存
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 </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];它显示我选择的颜色,但是当它保存它不是..
答案 0 :(得分:1)
您需要AND
条件来指定应更新哪种颜色。
例如:
UPDATE productcolor
SET colorName = :color
WHERE productinformationID=:productinformationID
AND colorName = :colorName
:colorName
应该是要更改的颜色。