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 :

Sauvegarde via variable de session lors d'un select. [MySQL]


Sujet :

PHP & Base de données

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Sauvegarde via variable de session lors d'un select.
    Bonjour à tous.

    J'essaye de vous expliquer en détail mon problème.

    Je construis pour un projet en cours un site de commande en php.

    Lors de l'affichage des articles disponibles, je fais une boucle à l'aide d'un mysql_fetch_array, afin d'afficher 4 listes déroulantes, chacune précédée du nom de l'article récupéré de la DB. Les 4 listes contiennent simplement 20 numeros, (1...20) correspondant à la quantité d'articles désirée (listes affichées avec un <SELECT> et un for).


    Mon principal problème est que je n'arrive absolument pas à récupérer les quantités choisies par le client.

    Je vous donne mon code, qui je pense est donc faux : )


    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
    <div style="margin-left:40px">mysql_connect ("localhost","root","");  
    mysql_select_db ("base_controle_plats_cuisines"); // Connection à la DB
     
    $retour2 = mysql_query("SELECT * FROM ingredients");
    while ($donnees2 = mysql_fetch_array($retour2)) //  On affiche une liste exhaustive des ingrédients contenus dans la table via une boucle.
    {
    	?>Quantité souhaitée de <?php echo $donnees2['nom']."";
    ?> <SELECT NAME ="q_ingredients_"<?php echo $donnees2['id'];?>"> <?php
    	?><?php for ($i=1;$i<=20;$i++) { ?> <OPTION VALUE="<?php echo $i ;?>"> <?php echo $i ;?>  </OPTION>  <?php } // On affiche une fenêtre de selection de la commande (nature de l'ingrédient, quantité souhaitée).
    	?></SELECT><br/><br/> 
     
     
    if (isset ($_POST['q_ingredients_'.$donnees2['id']]) and (mysql_num_rows($retour2)!=0))
    {
    	$_SESSION['q_ingredients_'.$donnees2['id']] = $_POST['q_ingredients_'.$donnees2['id']];
    }
    }</div>

    Malheuresement, la variable $_POST['q_ingredients_'.$donnees2['id']] est sytématiquement vide. J'ai certainement mal fait quelque chose mais ça fait trop longtemps que je retourne le problème dans tous les sens sans trouver. J'ai simplement besoin de récupérer les quantités choisies par le client, afin de les insérer dans une autre table qui archive les commandes.


    Merci d'avance pour votre aide ! Si quelque chose n'était pas clair je ferai mon possible pour être plus précis.


    [EDIT]

    Je précise que je tente de passer ces variables vers une autre page.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <FORM action="resume.php" method="post"> 
    <INPUT TYPE = "submit" value="valider la commande" > <!-- Bouton de la validation de la commande !-->
     
     
    </FORM>
    Et sur la page resume.php, impossible d'obtenir quoi que ce soit.

  2. #2
    Membre éclairé
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Points : 790
    Points
    790
    Par défaut
    Salut,
    essaie de faire un print_r($_POST) en haut de la page resume.php, histoire de voir ce que tu as passé en POST à cette page. Si le tableau contient quelque chose mais que tu bloques toujours, poste le contenu ici.

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Comme je le craignais (cela dit j'avais fait quelques tests qui le confirmait), la variable $_POST est vide.

  4. #4
    Membre éclairé
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Points : 790
    Points
    790
    Par défaut
    Dans ce cas vérifie dans la source de la page (ctrl + U sur firefox) que tes champs (input, select, ...) sont bien contenus dans la balise HTML <form>.

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Re,


    alors effectivement, ma balise <FORM> n'englobait pas le <SELECT> -.-



    Le print_r me donne ça :

    Array ( [q_ingredients_] => X )


    où X est la quantité choisie par l'utilisateur pour la première liste déroulante.

  6. #6
    Membre éclairé
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Points : 790
    Points
    790
    Par défaut
    Ca signifie donc que ta ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <SELECT NAME ="q_ingredients_"<?php echo $donnees2['id'];?>">
    ne te génère pas ce que tu attends comme nom de variable. Donc ton $donnees2 ne doit pas contenir ce que tu attends.

    Place error_reporting(E_ALL); au début de tes scripts PHP pour le dev, ça t'affichera toutes les erreurs PHP, notamment les notices.

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Eh bien en fait, "q_ingredients_"<?php echo $donnees2['id'];?>" contient bien le nom de l'article, ça ça marche, à priori donc, $donnees2['id'] contient ce qu'il faut.

    C'est le contenu du select (la quantité de 1 à 20, donc) que je n'arrive pas à récupérer. Je vais essayer de regarder les erreurs PHP.

  8. #8
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 27
    Points : 34
    Points
    34
    Par défaut
    Il faut en fait transformer la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <SELECT NAME ="q_ingredients_"<?php echo $donnees2['id'];?>"
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <SELECT NAME ="q_ingredients_<?php echo $donnees2['id'];?>"
    et la l'id sera concatene avec q_ingredients_

    En fait tu fermais le name de ton select avant d'afficher l'id provenant de ta base.

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Ah ! J'ai en effet un début d'amélioration, je te remercie je vais creuser dans cette voie, je reviens à vous si je demeure bloqué : p

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

Discussions similaires

  1. Sauvegarder une variable en session
    Par daydream123 dans le forum Struts 2
    Réponses: 2
    Dernier message: 28/03/2013, 19h10
  2. Sauvegarder des variables des sessions dans des fichiers
    Par Hypnocrate dans le forum Langage
    Réponses: 4
    Dernier message: 19/11/2007, 12h37
  3. Réponses: 6
    Dernier message: 15/11/2007, 13h52
  4. transfert de tableau via variable de session
    Par sbitsch dans le forum Langage
    Réponses: 2
    Dernier message: 26/06/2007, 15h54
  5. [Session]Sauvegarde des variables de sessions en base
    Par sheura dans le forum Servlets/JSP
    Réponses: 15
    Dernier message: 03/01/2006, 10h19

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