我从数据库中获取一些值。并希望更新数据库表尊重他们的ID。如何插入多个复选框值尊重他们的ID
这里是我的代码:
<?php
$sql = "SELECT * FROM tbl_ads ORDER BY ads_id DESC LIMIT $START, $LIMIT";
$result = mysql_query($sql);
$num = mysql_num_rows($result);
if($num > 0){
while($row = mysql_fetch_array($result)){ ?>
<tr bgcolor="#E1E1E1">
<td align="left" valign="top" bgcolor="#F1F1F1" class="BlackText2">
<?php echo $row['title'];?>
</td>
<td align="left" valign="top" bgcolor="#F1F1F1" class="BlackText2">
<?php echo substr($row['description'], 0, 40);?>
</td>
<td align="left" valign="top" bgcolor="#F1F1F1">
<?php echo $row['mywebsite'];?>
</td>
<td align="center" valign="top" bgcolor="#F1F1F1">
<input type="hidden" name="ads_id[]" value="<?php echo $row['ads_id'];?>">
<input type="checkbox" name="feature[]" value="feature">
</td>
<?php
if(isset($_REQUEST['submit'])){
$feature = $_POST['feature'];
$ads_id = $_REQUEST['ads_id'];
if(empty($feature)){
echo("You didn't select any buildings.");
}else{
$N = count($feature);
$M = count($ads_id);
echo("You selected $N door(s): ");
for($i=0 ; $i < $N ; $i++){
for($j=0 ; $j < $M ; $j++){
echo ($feature[$i] . " ");
echo $update_feature = "UPDATE tbl_ads SET `featureads` = '".$feature[$i]."' WHERE ads_id ='".$ads_id[$j]."'";
$result_feaure = mysql_query($update_feature);
}
}
}
}
?>
但我的问题是,当我更新featureads列尊重ads_id列,那么所有列都被选中。
如何解决这个问题?
不要使用'bgcolor'或'align'属性,而使用CSS风格你的输出。我建议不要使用'mysql_'函数,最好使用[PDO](http://php.net/manual/en/book.pdo.php)或者至少[MySQLi](http://php.net) /manual/en/book.mysqli.php)。另外,$ START和$ END变量来自哪里?您的代码很少有其他问题... – Cobby 2011-04-16 09:49:33
@Cobby感谢您的建议,$ START和$ END变量来自其他sql。其实我的问题是,当我检查1或2复选框和“$ update_feature”sql运行所有功能组件行更新,而不是那2个选定的字段 – Moumita 2011-04-16 10:03:35