Использование обновления SQL в цикле foreach php

#php #mysql #sql-update

Вопрос:

Я пытаюсь обновить таблицу с несколькими флажками. В каждой строке есть флажок. Я хочу изменить значение статуса столбца, установив 1 вместо 0, если флажок установлен. Ниже приведен пример того, как оформлена форма:

 <tbody>
<?php
    foreach ($result as $key => $value) {
  ?> 
<?php echo "<td class='form-group form-md-line-input'>  <input type='checkbox' name='formation[]' id='myFormation[]' class='form-check-input' ></td>" ?>
<?php echo "<td class='form-group form-md-line-input'>  <input class='form-control' type='text' name='status' value='0'> </td>" ?>
</tbody>
 

Пример того, как оформляется запрос:

 // update the product
 function update(){

    if(isset($_POST['submit'])){

           if(!empty($_POST['formulaire'])) {

         foreach($_POST['formulaire'] as $value){
                                                            
                                                            
             $query = "UPDATE 
                " . $this->table_name . " 
            SET 
                Statut = 1
                  WHERE ...........;
             $stmt = $this->conn->prepare($query);
    
     $stmt->bindParam(':ID', $this->ID);
    
     // execute the query
     if($stmt->execute()){
        return true;
     }else{
        return false;
     }
               }

             }

         }
 }
 

Моя проблема в том, как написать запрос.
Заранее спасибо

Комментарии:

1. Ваши status входные данные должны быть массивом, не так ли? В противном случае он будет отражать только одно значение для всех ваших флажков. Откуда берется уникальный идентификатор для запроса, который определяет, какую строку вам нужно обновить?

2. Здравствуйте, да, Идентификатор идентифицирует строку, которую вы хотите обновить

3. Я не уверен, как вы можете надежно связать status formation элементы массива и. Я уверен, что должен быть способ, я бы, вероятно, взломал его и создал имя флажка, содержащее идентификатор, что-то вроде «CB001», если бы ваш идентификатор был «001», затем foreach через $_POST массив искал записи, начинающиеся с CB, и извлекал идентификатор из имени. Должен быть лучший способ.