IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Enregistrer dans Mysql multiples cases a cocher


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 2
    Points : 2
    Points
    2
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre averti Avatar de makmaoui
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2007
    Messages : 283
    Points : 368
    Points
    368
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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()); 
        } 
    }

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    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!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Enregistrement dans mysql
    Par mioke dans le forum PHP & Base de données
    Réponses: 30
    Dernier message: 31/03/2008, 16h28
  2. Formulaire ajout enregistrement dans MySQL
    Par dahu17 dans le forum Langage
    Réponses: 2
    Dernier message: 05/02/2008, 13h07
  3. Détection d'enregistrement dans MySQL
    Par fabou3377 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/11/2006, 18h33
  4. Réponses: 10
    Dernier message: 21/06/2006, 14h50
  5. [Efficacite/Redondance] Millions d'enregistrement dans MySQL
    Par nico33307 dans le forum Requêtes
    Réponses: 4
    Dernier message: 25/07/2005, 21h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo