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

barale61 Messages postés 1214 Date d'inscription   Statut Membre Dernière intervention   -  
barale61 Messages postés 1214 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.
A voir également:

2 réponses

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