2017-02-05 19 views
0

私は1つのテーブルから複数の行を取得し、私は画像のようなテーブルに表示 - >Click here for view the image < - データベースで更新複数行PHP

、「状態」の値を「保留」に設定されています私はいくつかの学生を選択し、 "ステータス"を "承認済み"に変更して、チェックしたすべての行を更新する1つの更新を行いたいと思います。あなたの文を準備し、それを実行することができ

これは...

 <?php 
     include("connection.php"); 


     echo "<table border='1'><tr> 

     <td><strong>Student ID</strong></td> 
     <td><strong>Student Name</strong></td> 
     <td><strong>Kelompok</strong></td> 
     <td><strong>Block</strong></td> 
     <td><strong>Level</strong></td> 
     <td><strong>House</strong></td> 
     <td><strong>Status</strong></td> 


     </tr>"; 
     $i=0; 
     while ($ww=mysqli_fetch_array($query)) 
     { 
      if ($i%2==0) 
       $class="evenRow"; 
      else 
       $class="oddRow"; 

      $id=$ww[0]; 
      $studentid=$ww[1]; 
      $name=$ww[2]; 
      $kelompok=$ww[8]; 
      $block=$ww[9]; 
      $level=$ww[10]; 
      $house=$ww[11]; 
      $status=$ww[14]; 



     echo "<tr> 
      <input type=hidden name=applyid[] value=".$id."/> 
      <td>$studentid</td> 
      <td>$name</td> 
      <td>$kelompok</td> 
      <td>$block</a></td> 
      <td>$level</td> 
      <td>$house</td> 
      <td> 
       <input type=checkbox name=status[] value=".$id."approved checked> APPROVED <br> 
      </td> 
      </tr>"; 
     } 
     $i++; 
     echo "</table>"; 

     ?> 

    <br> 

    <a href="officerapplicationupdate.php?applyID=<?php echo $id; ?>"><input type="submit" value="Update"></a> 
    </form> 

    <br><br> 
    </table> 

上記画像のための私のコードであり、これは、行を更新するためのコード..です

<?php 

    include("connection.php"); 



    if(isset($_POST["submit"]) && $_POST["submit"]!="") { 
     $idCount = count($_POST["status"]); 
     for($i=0;$i<$idCount;$i++) { 
      mysqli_query("UPDATE application SET apply_status='".$_POST["status"][$i]."' 
      WHERE apply_id='".$_POST["applyid"]."'"); 
     } 
    } 

?> 
+0

ようこそスタックオーバーフロー!私たちはQ&Aサイトであり、雇用者向けサービスではありません。これまでに何を試みたのか、それがうまくいかなかった理由を説明してください。参照:[なぜ誰かが私を助けることができますか?実際の質問ではありませんか?](http://meta.stackoverflow.com/q/284236) –

+0

あなたは配列=> $ _POST ["applyid"]を参照するため、あなたのIDは常に同じであることに注意してください。それは$ _POST ["applyid"] [$ i] – recycler

+0

@recyclerでなければなりません。エラーはありませんが、databseの値はまだ更新されていません –

答えて

0

その後。これは次のようにすることができます。

$in = array(); 
    if(isset($_POST["submit"]) && $_POST["submit"]!="") { 
     $idCount = count($_POST["status"]); 
     for($i=0;$i<$idCount;$i++) { 
     $in[] .= $_POST["applyid"][$i]; 
     } 
    } 
    mysqli_query("UPDATE application SET apply_status='approved' WHERE apply_id IN '".implode(",",$in)."'"); 

したがって、1つのクエリだけが必要です。

また、他のapply_statusの変更を合計することもできます。

SQLインジェクションを防ぐために、Webページからの入力を確認することに注意してください!