Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/01/2008, 16h26   #1
Invité de passage
 
Inscription : janvier 2008
Messages : 2
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 2
Points : 1
Points : 1
Par défaut Enregistrer dans Mysql multiples cases a cocher

Bonjour,

j'essaye de récupérer le résultat des cases à cocher dans un champ de ma table mysql.

Mes cases à cocher sont de forme:
Code HTML :
1
2
3
<td><input type="checkbox" name="fruits[]" value="Abricot" ><STRONG>Abricot</STRONG></td>
    <td><input type="checkbox" name="fruits[]" value="Pomme" ><STRONG>Pomme</STRONG></td>
    <td><input type="checkbox" name="fruits[]" value="Poire" ><STRONG>Poire</STRONG></td>

Pour récupérer les valeur, j'utilise:
Code :
1
2
3
4
5
6
7
$tabLangages = (isset($_POST['fruits']))?$_POST['fruits']:null; 
if (!empty($tabLangages)) { 
    foreach($tabLangages as $cle => $valeur) { 
       $sql="UPDATE aliments SET fruits='$valeur' WHERE id='1'" ; 
       mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
    } 
}
Malheureusement, la seule valeur enregistrée dans ma table est la dernière case cochée. je n'arrive pas à récupérer toutes les valeurs
didiweby est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2008, 17h17   #2
Membre éclairé
 
Avatar de makmaoui
 
Développeur Web
Inscription : mai 2007
Messages : 282
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2007
Messages : 282
Points : 361
Points : 361
Salut,

c'est normal dans ta boucle à chaque passage tu écrases l'ancienne valeur du champ, tu as 2 possibilités soit rassembler tes valeurs dans une seule variable et l'insérer dans ta table :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
<?php
$tabLangages = (isset($_POST['fruits']))?$_POST['fruits']:null; 
if (!empty($tabLangages)) { 
 
    $mesFruits = '';
    foreach($tabLangages as $cle => $valeur) { 
       $mesFruits .= $valeur.'/' ;
 
    } 
   $mesFruits = mysql_real_escape_string($mesFruits);
   $sql="UPDATE aliments SET fruits='$mesFruits' WHERE id='1'" ; 
   mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
}
?>

ou tu peux utiliser la fonction SQL CONCAT :
Code :
1
2
3
4
5
6
7
8
 
$tabLangages = (isset($_POST['fruits']))?$_POST['fruits']:null; 
if (!empty($tabLangages)) { 
    foreach($tabLangages as $cle => $valeur) { 
       $sql="UPDATE aliments SET fruits=CONCAT(fruits , '/' ,'$valeur') WHERE id='1'" ; 
       mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
    } 
}
makmaoui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2008, 17h42   #3
Invité de passage
 
Inscription : janvier 2008
Messages : 2
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 2
Points : 1
Points : 1
Merci beaucoup,
c'est bien ce que je pensait!
j'ai utiliser la seconde maniere qui fonctionne parfaitement

Me reste plus qu'a faire l'inverse, recuperer les valeurs pour cocher les cases!
didiweby est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h21.


 
 
 
 
Partenaires

Hébergement Web