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

barale61 Messages postés 1126 Date d'inscription   Statut Membre Dernière intervention   -  
barale61 Messages postés 1126 Date d'inscription   Statut Membre Dernière intervention   -
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. Pitet Messages postés 2845 Statut Membre 530
     
    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
  2. barale61 Messages postés 1126 Date d'inscription   Statut Membre Dernière intervention   113
     
    Merci je vais essayer cette solution quand j'aurais un moment.
    0