2011-12-21 7 views
0

を更新し、私は、チェックボックスによって選択された特定のエントリのためのいくつかのMySQLのデータを更新しています、そのために私のコードは次のようになります。カウント数とMySQL

<?php 
    if($_POST['code_approve']){ 
     for($i=0;$i<count($_POST['checkbox']);$i++){ 
      $approval_id = $checkbox[$i]; 
      $sql = "UPDATE table SET status='approved', used='processed' WHERE id='$approval_id'"; 
      $result = mysql_query($sql); 
     } 
     if($result){ 
      echo "<meta http-equiv=\"refresh\" content=\"0;URL=table.php\">"; 
     } 
    } 
?> 

今、私が選択されているどのように多くのチェックボックスを知りたいです選択されたすべてのチェックボックスに対して、テーブル「メンバー」行「天秤」に25を追加します。

が、私はこのように試してみました:

<?php 
    if($_POST['code_approve']){ 
     for($i=0;$i<count($_POST['checkbox']);$i++){ 
      $approval_id = $checkbox[$i]; 
      $approvedamount = count($_POST['checkbox']) 
      $approvedx25 = $approvedamount * 25; 
      $sql = "UPDATE table SET status='approved', used='processed' WHERE id='$approval_id'"; 
      $sql2 = "UPDATE members SET balance = + '$approvedx25'"; 
      $result = mysql_query($sql); 
     } 
     if($result){ 
      echo "<meta http-equiv=\"refresh\" content=\"0;URL=table.php\">"; 
     } 
    } 
?> 

しかし、それはまったく動作しませんでした、これを実行するための適切な方法は何ですか?

// EDIT

この質問を無視してください、それが働いていた、私はちょうどするmysql_queryを追加するのを忘れ。あなたはそれを書いた

$sql2 = "UPDATE members SET balance = balance + ".$approvedx25; 

方法、for句をwithingで更新、このようにして、すべてのチェックボックスのために一度実行:

+0

私はwhere節で引用符を取り除いて、そのようにしてください:WHERE id = $ approval_id ..そのチェックボックス配列はどこから来たのですか?!?$ checkbox [$ i] ..あまりにも多くのコードがないと思う –

+0

ループ内でSQLクエリを実行しないでください。効率的ではありません。ループ内でIDを収集し、INを使用してUPDATEクエリを1つ作成します。 – kapa

+0

「チェックボックスグループ」のセクションをご覧ください:http://www.html-form-guide.com/php-form/php-form-checkbox.html – Minras

答えて

0

あなたの更新クエリは次のようなものでなければなりません。すでにチェックボックスの数が増えているので、私はあなたがそれを望んでいるとは思っていません。

また、2番目のクエリ($sql2)はコード内で実行されません。

関連する問題