Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

चेकबॉक्स बेतरतीब ढंग से चेक आउट कर रहे हैं

आपके तर्क में निम्नलिखित खामियां हैं:आपका $_POST सरणी में कुंजी है untrain और इसका मान कुंजियों की एक आंतरिक सरणी है room_id (क्योंकि वे चेकबॉक्स नाम में हैं) और मान user_id (चेकबॉक्स के मान)। आपके फ़ोरैच लूप में $room_id चेकबॉक्स के मूल्यों को स्वीकार किया है, जो वास्तव में user_ids हैं . इसके अलावा आपको $_POST['untrain'] . पर पुनरावृति करनी चाहिए , मुझे नहीं पता कि आप उस कुंजी को कहाँ ले जाते हैं $room->room_id से.

मैं इसे इसमें बदल दूंगा:

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

या, यदि आपके पास सभी रूम_आईड्स की एक सरणी है, तो आप यह जांचने के लिए उन पर पुनरावृति कर सकते हैं कि क्या चेक किए गए हैं:

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. मैं mysql असली एस्केप स्ट्रिंग का उपयोग कैसे करूं?

  2. दिनांक फ़ील्ड में शून्य मान सम्मिलित करने के लिए संगतता क्वेरी

  3. SQL त्रुटि:'database.table.field ग्रुप बाय में नहीं है'

  4. क्या MySQL सिस्टम डेटाबेस टेबल को InnoDB में बदला जा सकता है?

  5. MySQL - डेटाबेस में मौजूद होने पर टेबल कैसे छोड़ें?