Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Hộp kiểm đang kiểm tra ngẫu nhiên

Logic của bạn có những sai sót sau:$_POST của bạn mảng có khóa untrain và giá trị của nó là một dãy khóa nội bộ room_id (vì chúng nằm trong tên hộp kiểm) và các giá trị user_id (giá trị của hộp kiểm). Trong vòng lặp foreach của bạn $room_id đã xác định giá trị của các hộp kiểm, thực sự là user_ids . Ngoài ra, bạn nên lặp lại $_POST['untrain'] , Tôi không biết bạn lấy chìa khóa đó ở đâu $room->room_id từ.

Tôi sẽ thay đổi điều đó thành:

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);
    }
}

Hoặc, nếu bạn có một mảng gồm tất cả các room_ids, bạn có thể lặp lại chúng để kiểm tra xem cái nào đã được chọn hay chưa:

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. Đối tượng của lớp DateTime không thể được chuyển đổi thành chuỗi

  2. Laravel thả khóa ngoại trong Migration

  3. Cập nhật cơ sở dữ liệu mysql bằng php

  4. Hiệu suất của mysql GIỮA .. là gì?

  5. biến ràng buộc mysqli