我从数据库中获取一些值。并希望更新数据库表尊重其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列,然后选择所有列。
如何解决这个问题?
答案 0 :(得分:0)
看起来你有一个存储所有ID的表格,你希望有人能够将每个记录定义为特色“广告”并立即完成。
我的建议是更改代码:
<input type="checkbox" name="feature[]" value="feature">
反映所选功能并回溯您的功能以适应。 例如:
<input type="checkbox" name="feature[]" value="<?php echo $row['ads_id']; ?>">
选中复选框后会设置一个复选框值,上面的代码表示功能复选框的值将始终为“功能”但不会与'ads_id'字段相关。
通过更改上面的示例,您可以:
更新表格,表示没有添加任何内容
循环使用feature []表单变量来更新表格,将所选列的特征列设置为true。
我做了类似的事情,但是使用了无线电组,因为只有在检查时,check才会给你一个值。
E.g:
<label><input type="radio" name="feature[$id]" value="yes"/>yes</label>
<label><input type="radio" name="feature[$id]" value="no"/>no</label>
hth:)