Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kotak centang memeriksa secara acak

Logika Anda memiliki kelemahan berikut:$_POST Anda array memiliki kunci untrain dan nilainya adalah larik internal kunci room_id (karena mereka berada di nama kotak centang) dan nilai user_ids (nilai kotak centang). Di loop foreach Anda $room_id telah menetapkan nilai kotak centang, yang memang user_ids . Selain itu, Anda harus mengulangi $_POST['untrain'] , saya tidak tahu di mana Anda mengambil kunci itu $room->room_id dari.

Saya akan mengubahnya menjadi:

if(isset($_POST['submit'])){
    foreach ($_POST['untrain'] as $room_id => $user_id) {
        //sanitize $room_id
        $untrainQuery = "UPDATE room_users SET trained = '1'  WHERE room_id = $room_id";
        $db->update($untrainQuery);
    }
}

Atau, jika Anda memiliki larik semua room_ids, Anda dapat mengulanginya untuk memeriksa apakah yang dicentang:

if(isset($_POST['submit'])){
    foreach ($room_ids as $room_id) {
        //sanitize $room_id
        if(isset($_POST["untrain[{$room_id}]"]){//that is, if it was checked
            $trained = 1;
        }else{
            $trained = 0;
        }
        $untrainQuery = "UPDATE room_users SET trained = $trained  WHERE room_id = $room_id";
        $db->update($untrainQuery);
    }
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Django, setelah memutakhirkan:Server MySQL telah hilang

  2. Kapan harus mempertimbangkan Solr

  3. menyapu dibatalkan! tidak dapat memuat file seperti itu -- mysql2/mysql2 di El Capitan

  4. Bagaimana cara mengubah nama database menggunakan MySQL?

  5. Apa perbedaan antara addlash PHP dan mysql(i)_escape_string?