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

PHP & Base de données Discussion :

[SQL] Problème résultat checkbox dans requête SQL


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 98
    Points : 34
    Points
    34
    Par défaut [SQL] Problème résultat checkbox dans requête SQL
    Bonjour,

    Je vous explique :

    j'ai un formulaire basique et à la fin j'ai 10 checkbox; si par exemple il y a 4 checkbox choisis, je veux que dans ma table SQL il y ait en chaine de caractères mes 4 choix séparés par des virgules.

    Ainsi je mets le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    mysql_query("INSERT INTO voiture (marque, modele, annee, carross, energie, kms, prix, mensua, dmc, couleur, puiss, garantie, equip, dateCreaAnnonc, idAnnonc) VALUES 
    					('$theMarque', '$theModele', '$theAnnee', '$theListeCarross', '$theListeEnergie', '$theKm', '$thePrix', '$theMensua', '$maDateDMCTab', '$theCouleur', '$thePuiss', '$theListeGarantie', 'if (!empty($tabEquipmt)) { foreach($tabEquipmt as $cle => $valeur) { echo '$valeur, '; } } ', '$date', $theMaxIdAnnonc+1)") or die(mysql_error());
    Voilà, si vous pouviez m'aider...

  2. #2
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Checkbox n'est pas une notion SQL, tu t'es trompé de forum...
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  3. #3
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    déplacé !
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  4. #4
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Et le problème est ?

    La requête ne fonctionne pas ?
    Je pense pas qu'on puisse faire des echo dans une chaîne directement comme ça, il vaut mieux construire la requête dans une variable $req, et concaténer ensuite tout ce que tu veux mettre dedans à l'aide du point.
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  5. #5
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 98
    Points : 34
    Points
    34
    Par défaut
    oui excusez moi, en fait je pense que c'est la concaténation qui me pose problème mais j'ai beau tourner dans tous les sens ca marche pas trop;

    comment faire pour mettre les valeurs du tableau en concaténation dans une variable SVP

  6. #6
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    C'est pas trop dur à trouver comment on fait une concaténation en PHP (surtout que je t'ai mis sur la voie...).

    Ca donnerait un truc comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $req = "INSERT INTO voiture (marque, modele, annee, carross, energie, kms, prix, mensua, dmc, couleur, puiss, garantie, equip, dateCreaAnnonc, idAnnonc) VALUES 
    					('$theMarque', '$theModele', '$theAnnee', '$theListeCarross', '$theListeEnergie', '$theKm', '$thePrix', '$theMensua', '$maDateDMCTab', '$theCouleur', '$thePuiss', '$theListeGarantie', '";
    if (!empty($tabEquipmt))
    {
       foreach($tabEquipmt as $cle => $valeur)
            $req .= $valeur . ", ";
    }
    $req .= "', '$date', " . ($theMaxIdAnnonc+1) . ")";
    mysql_query($req) or die(mysql_error());
    J'ai repris ta boucle, mais je pense que tu vas avoir un souci avec elle car quand tu parcours le tableau $tabEquipmnt tu mets toujours une virgule après chaque élément (même le dernier)...
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  7. #7
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 98
    Points : 34
    Points
    34
    Par défaut
    Merci pour l'élément de la réponse...
    le problème est que EasyPHP me trouve une erreur après ton VALUES, dans la parenthèse à la 2ème ligne de ton code...

    désolé je débute depuis 6 mois en SQL...

    merci de votre aide

  8. #8
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 98
    Points : 34
    Points
    34
    Par défaut
    up

  9. #9
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Ah voilà je trouvais plus ce post

    Alors fais un echo de ta requête comme ça pour voir ce qui cloche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $req .= "', '$date', " . ($theMaxIdAnnonc+1) . ")";
    echo $req;
    mysql_query($req) or die(mysql_error());

    désolé je débute depuis 6 mois en SQL...

    C'est plus trop débuter là...
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  10. #10
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 98
    Points : 34
    Points
    34
    Par défaut
    2 petites questions :

    soit j'enlève le ; à la fin de ta 2ème ligne (Values ..... et là ça me trouve une erreur à la ligne du IF

    soit je laisse ton ; à la fin de la ligne Values et alors erreur à cette ligne...


    même avec le echo que tu m'as dit de rajouter...

  11. #11
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 98
    Points : 34
    Points
    34
    Par défaut
    à savoir que le $tabEquipmt c'est le résultat de mes CHECKBOX

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    // vérifions que la variable a été transmise 
    $tabEquipmt = (isset($_POST['equipmt']))?$_POST['equipmt']:null;

  12. #12
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    La requête c'est sur une seule ligne (VALUES et le reste).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req = "INSERT INTO voiture (marque, modele, annee, carross, energie, kms, prix, mensua, dmc, couleur, puiss, garantie, equip, dateCreaAnnonc, idAnnonc) VALUES ('$theMarque', '$theModele', '$theAnnee', '$theListeCarross', '$theListeEnergie', '$theKm', '$thePrix', '$theMensua', '$maDateDMCTab', '$theCouleur', '$thePuiss', '$theListeGarantie', '";
    Le echo c'est pas ça qui va réparer les bugs, il sert à afficher la requête qui est effectivement exécutée pour voir où est précisement le problème.

    Si tu as mis le echo où il faut la requête doit s'afficher. Dis-nous alors la requête affichée.
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  13. #13
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 98
    Points : 34
    Points
    34
    Par défaut
    merci je t'ai dis que j'étais débutant (cf par rapport à ceux qui masterisent!!!)

    en mettant exactement la même syntaxe que toi, j'obtiens ce que je t'ai dis :

    Parse error: parse error in c:\program files\easyphp1-8\www\site garage php sql\ajout_ok.php on line 191

    et la ligne 191 = la ligne où il y a "VALUES etc etc"

  14. #14
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 98
    Points : 34
    Points
    34
    Par défaut
    car si je mets la requete sur la meme ligne (je mettais sur deux lignes pour éviter les ascenceurs trop longs) ca me donne le meme probleme sur la ligne de la requete
    mais en meme temps c'est normal car dans mon INSERT INTO j'ai plus de variables que dans mon VALUES

    c'est pour ça que je te parle de ce ; à la fin de la requete

  15. #15
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Je répète :

    Le echo c'est pas ça qui va réparer les bugs, il sert à afficher la requête qui est effectivement exécutée pour voir où est précisement le problème.

    Si tu as mis le echo où il faut la requête doit s'afficher. Dis-nous alors la requête affichée.
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  16. #16
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 98
    Points : 34
    Points
    34
    Par défaut
    pour éviter une prise de tête inutile sur ce forum, je te donne le code est dis moi STP où faut-il que j'insère ce ECHO :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    if ($yachiffres5 == true){		
     
    					//içi on cherche le plus grand indice pour pouvoir lui ajouter +1 dans le insert to suivant
     
    					// Création et envoi de la requête
    					$query = "SELECT MAX(idAnnonc) FROM voiture";
    					$result = mysql_query($query);
     
    					//Récupération des résultats
    					while ($row = mysql_fetch_row($result)) {
    					$theMaxIdAnnonc = $row[0];
    					}
     
     
     
     
     
     
    					//içi on ajoute le nouveau véhicule dans la table VOITURE
    					$theReq("INSERT INTO voiture (marque, modele, annee, carross, energie, kms, prix, mensua, dmc, couleur, puiss, garantie, equip, dateCreaAnnonc, idAnnonc) VALUES ('$theMarque', '$theModele', '$theAnnee', '$theListeCarross', '$theListeEnergie', '$theKm', '$thePrix', '$theMensua', '$maDateDMCTab', '$theCouleur', '$thePuiss', '$theListeGarantie', '";
     
    							 if (!empty($tabEquipmt))
    							 {
    									foreach($tabEquipmt as $cle => $valeur)
    										$theReq .= $valeur." - ";
    							}
    							 $theReq .="', '$date', " . ($theMaxIdAnnonc+1) . ")";
     
    							 mysql_query($theReq) or die(mysql_error()));
     
     
     
     
     
     
    				}

  17. #17
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Pas de prise de tête j'ai déjà mis le bout de code avec le echo dans mon post de 17h37
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  18. #18
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 98
    Points : 34
    Points
    34
    Par défaut
    voilà, j'ai mis ça sur mon code et maintenant j'obtiens :

    Parse error: parse error in c:\program files\easyphp1-8\www\site garage php sql\ajout_ok.php on line 200

    où la ligne 200 =
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     mysql_query($theReq) or die(mysql_error()));

  19. #19
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 98
    Points : 34
    Points
    34
    Par défaut
    merci à toi JWhite

    désolé pour les prises de tête! lol

    a bientôt

  20. #20
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Une parenthèse de trop .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query($theReq) or die(mysql_error());
    (parse error = erreur de parenthèse en général)
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 6
    Dernier message: 09/04/2014, 14h05
  2. [MySQL] Syntaxe dans requête SQL
    Par Zhebulon dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 04/06/2009, 09h37
  3. Problème de syntaxe dans requête SQL
    Par soprano6217 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 03/06/2009, 15h49
  4. [SQL] Comparer résultat d'une requête Sql avec php
    Par nicoxweb dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 04/09/2007, 22h46
  5. [SQL] Problème d'addition dans requete SQL
    Par cheers94wow dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 10/05/2006, 15h05

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