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

Fermé
barale61 Messages postés 1208 Date d'inscription jeudi 13 septembre 2012 Statut Membre Dernière intervention 4 novembre 2024 - 10 avril 2015 à 11:21
barale61 Messages postés 1208 Date d'inscription jeudi 13 septembre 2012 Statut Membre Dernière intervention 4 novembre 2024 - 13 avril 2015 à 18:22
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 lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
13 avril 2015 à 16:36
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 1208 Date d'inscription jeudi 13 septembre 2012 Statut Membre Dernière intervention 4 novembre 2024 110
13 avril 2015 à 18:22
Merci je vais essayer cette solution quand j'aurais un moment.
0