Enregistrer les valeurs d'un select multiple dans une table mys

Bonjour,

Je souhaite enregistrer les valeurs d'un multiple select dans une table mysql j'affiche donc ces valeurs dans un tableau mais comment je dois faire pour les insérer dans ma table?

if(($_POST['idTypeCms']) && !empty($_POST['idTypeCms'])){
$col = $_POST['idTypeCms'];
//print_r($col);
foreach($col as $selectValue){
//echo $selectValue."<br>";
}
}

et mon select:
<select multiple name="idTypeCms[]" id="idTypeCms">
 <?php
  while ($donnees = $reponse->fetch())
  {
  ?>
   <option value="<?php echo $donnees['id']; ?>"><?php echo $donnees['nomCms']; ?></option>
  <?php
  }
 ?>

Je vous remercie de votre aide.

2 réponses

  1. Salut,

    Voici un début de solution :
    // si $_POST['idTypeCms'] existe et n'est pas vide
    if(!empty($_POST['idTypeCms'])){
    	// on cast en tableau si ce n'est pas le cas 
    	$idTypeCms = (array) $_POST['idTypeCms'];
    	
    	// on ne récupère que des identifiants sous forme d'entier (évite les injections sql)
    	$idTypeCms = array_map(intval, $idTypeCms);
    	// on ne récupère chaque identifiant qu'une seule fois
    	$idTypeCms = array_unique($idTypeCms);
    	
    	// si on a au moins un identifiant dans le tableau $idTypeCms
    	if ($idTypeCms) {
    		// on met à la jour la table
    		$requete = 'UPDATE table SET selected = 1 WHERE id IN (' . implode(',', $idTypeCms) . ')';
    		
    		// exécuter la requête...
    	}
    }
    


    Bonne journée
    0
    1. Merci je vais essayer cette solution quand j'aurais un moment.
      0