Как вставить несколько флажков значения уважать их идентификатор - PullRequest
0 голосов
/ 16 апреля 2011

Я получаю некоторое значение из базы данных. и хотите обновить таблицу базы данных, уважая их идентификаторы.

вот мой код:

<?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, тогда выбираются все столбцы.

как решить эту проблему?

1 Ответ

0 голосов
/ 16 апреля 2011

Похоже, у вас есть таблица, в которой хранятся все идентификаторы чего-либо, и вы хотите, чтобы кто-то мог определить каждую запись как показанное "объявление" и сделать все сразу.

МойБыло бы предложено изменить код:

<input type="checkbox" name="feature[]" value="feature">

, чтобы отразить выбранную функцию и вернуть свои функциональные возможности в соответствии с требованиями.Например:

<input type="checkbox" name="feature[]" value="<?php  echo $row['ads_id']; ?>">

Когда флажок установлен, значение флажка устанавливается, ваш код выше будет означать, что значение флажка функции всегда будет «функция», но это не будет относиться к «ads_id»'field.

Перейдя к приведенному выше примеру, вы могли бы:

  • обновить таблицу, указав, что ни одно из дополнений не представлено

  • перебрать переменную формы feature [], чтобы обновить таблицу и установить для выбранного столбца значение true для выбранных столбцов.

Я сделал то же самое, но использовал радиогруппы.потому что проверки дают вам значение, только если они проверены.

Например:

  <label><input type="radio" name="feature[$id]" value="yes"/>yes</label>
  <label><input type="radio" name="feature[$id]" value="no"/>no</label>

hth:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...