【发布时间】:2011-04-16 09:42:10
【问题描述】:
我从数据库中获取一些值。并希望更新数据库表尊重他们的 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 列时,所有列都被选中。
如何解决这个问题?
【问题讨论】:
-
@Cobby 感谢您的建议,$START 和 $END 变量来自其他 sql。实际上我的问题是当我选中 1 或 2 复选框并且“$update_feature”sql 运行时所有功能行都更新而不是 2 个选定字段