“注释”字段是可更新的,您应将其突出显示为黄色。所有其他列都是不可更新的字段。 注意已更新,我应该更新 注意数据库表中相应记录的列。一条消息“代码xxxx的注释包含 数据库中已更新。”应该为每个更新的记录显示。
这是我的表格注释代码
while($tablerow=mysqli_fetch_array($tableresult)){
$amt=$tablerow['amount'];
if($amt>'0'){
$aColor='style="color:blue;"';
}else{
$aColor='style="color:red;"';
}
$operation="";
if($tablerow['type']=='W'){
$operation="Withdraw";
}
if($tablerow['type']=='D'){
$operation="Deposit";
}
$source="";
if($tablerow['sid']==1){
$source="ATM";
}else if($tablerow['sid']==2){
$source="Online";
}else if($tablerow['sid']==3){
$source="Branch";
}else{$source="Wired";
}
echo"
<tr><td align='center'><input type='hidden' name='mid[".$i."]' value='".$tablerow['mid']."'>".$tablerow['mid']."</td>
<td align='center'><input type='hidden' name='code[".$i."]' value='".$tablerow['code']."'>".$tablerow['code']."</td>
<td align='center'".$aColor."><input type='hidden' name='amount[".$i."]' value='".$amt."'>".$amt."</td>
<td align='center'><input type='hidden' name='type[".$i."]' value='".$operation."'>".$operation."</td>
<td align='center'><input type='hidden' name='source[".$i."]' value='".$source."'>".$source."</td>
<td align='center'><input type='hidden' name='date[".$i."]' value='".$tablerow['mydatetime']."'>".$tablerow['mydatetime']."</td>
<td align='center' bgcolor='yellow'><input type='text' name='note[".$i."]' style='background-color:yellow' value='".$tablerow['note']."'></td>
<td align='center'><input type='checkbox' name='delete[".$i."]' value='Y'></td></tr>\n";
$i++;
}
echo "Total balance: $".$totalrow['total']."<br>";
echo"<input type='submit' value='Update transaction'></form>";
echo "</table>\n";
echo "Total balance: $".$totalrow['total']."<br>";
echo"<input type='submit' value='Update transaction'></form>";
这是我苦苦挣扎的代码
for($i=0; $i<$tablerow; $i++){
if(isset($_POST['note'][$i])){
$note=$_POST['note'][$i];
$mid=$_POST['mid'][$i];
mysqli_query($con,"UPDATE Money set note='$note' where mid='$mid' and note!='$note';");
echo"Successfully update transaction code: UPDATE Money_kimeunb set note='".$note."' where id=".$mid." and note !='".$note."'<br>";
}
但是由于我在note输入中已经有值,所以它不仅在我要更新的地方更新表的所有值。
答案 0 :(得分:0)
您的查询似乎正在更新“注释”内容与发布的“注释”不相等的所有注释。
我注意到您传递了一个包含您的帖子数据的代码,我假设这是您数据库中的一列,也与此特定注释相关联。如果这是一个唯一值。你可以改变
mysqli_query($con,"UPDATE Money set note='$note' where mid='$mid' and note!='$note';");
到
mysqli_query($con,"UPDATE Money set note='$note' where mid='$mid' and code ='$code';");
您当然需要定义$ code
这当然是假设代码在这里是唯一的吗?否则,最简单的方法就是使用唯一的索引,例如行ID。
在这种情况下,您可以写:
mysql_query($con,"UPDATE Money set note='$note' where id='$id';");
显然,您再次需要在此处定义$ id。
但是请注意,当使用隐藏形式的索引值作为索引时,很容易有人将数据放入不属于该用户的帖子中,因此您总是需要某种验证确保拥有所有权,然后再考虑进行更新。