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 :

Récuperation de données pour une requête [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 16
    Par défaut Récuperation de données pour une requête
    Bonjour à tous, je viens vous voir désespéré ! Voilà maintenant 1 bonne journée que je penche sur un soucis avec mon site internet.
    Tout d'abord c'est un projet pour mon école. C'est un site de covoiturage.
    Voici mon problème :
    La personne cherche une destination grâce un formulaire de method = "post" et redirige sur la page résultat.php.
    La page résultat.php va afficher tout les voyages disponibles entrant dans les critères de recherches. Un bouton "S'INSCRIRE" est en bas de chaque proposition.
    Le problème se situe au niveau de ce bouton qui est de method=post. Je n'arrive pas à récupérer mes variables tel que l'id_voyage, le téléphone... qui sont pourtant sur la même page. J'ai l'impression que quand je clique sur le bouton s'inscrire, il recharge la page et supprime toutes les variables. J'ai essayé de les stocké dans des variables $_SESSION mais le problème est que quand je fais une requête, la variable $_SESSION prend le dernier id_voyage et non celui du voyage en question.
    Je ne sais pas si j'ai été clair
    En tout cas je vous remercie d'avance pour votre aide.. Je continue de mon coté en recherchant une solution
    Voici le code de la page
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    <?php
    session_start();
    include('connexionsql.php');
    ?>
    <!DOCTYPE HTML>
    <html>
    <head>
    	<meta charset="UTF-8">
    	<title>COVOIT'MALIN</title>		
    	<link rel="stylesheet" type="text/css" href="index.css" media="all"/>		
    </head>
    <body>
    <?php
    if(isset($_SESSION['mail']))	{
    	if(isset($_POST['depart'], $_POST['arrive'], $_POST['date_depart'], $_POST['heure1'], $_POST['heure2'])){
    		$req = $bdd->prepare('SELECT id_voyage, depart, arrive, date_depart, prix, pseudo, mail, telephone, place_disponible FROM Voyage, Personne WHERE depart = ? AND arrive = ? AND date_depart = ? AND heure1 >= ?  AND heure2 <= ? AND Personne.mail = Voyage.id_conducteur AND Voyage.place_disponible > 0');
    		$req->execute(array(
    			$_POST['depart'], 
    			$_POST['arrive'],
    			$_POST['date_depart'],
    			$_POST['heure1'],
    			$_POST['heure2']
    		));
    		while($donnees = $req->fetch()){
    			echo $donnees['pseudo'];
    			echo $donnees['mail'];
    			echo $donnees['telephone'];
    			echo $donnees['prix'];
    			echo $donnees['depart'];
    			echo $donnees['arrive'];
    			echo $donnees['date_depart'];
    			echo $donnees['heure1'];
    			echo $donnees['heure2'];
    			echo $donnees['id_voyage'];
    			echo $donnees['place_disponible'];
    /* Ici J'essaie de stocké par exemple id_voyage dans $_SESSION mais si j'ai plusieurs voyage il prend le dernier en copte */
    			$_SESSION['id_voyage'] = $donnees['id_voyage'];
    ?>
    /* Ici je crée ce fameux bouton qui me pose problème */
    	<form method="post">
    		<input type="submit" name="test" value="s'inscrire a ce voyage"/></form>
    <?php
    		}
    	}
    }
    if(isset($_POST['test'])){
    	$req = $bdd->prepare('SELECT id_voyage FROM Voyage WHERE id_voyage = ?');
    	$req->execute(array($_SESSION['id_voyage']));
    	while($donnees = $req->fetch()) {
    		if($donnees['id_voyage'] == $_SESSION['id_voyage']){
    			echo $donnees['id_voyage'];	
    		}
    	}
    	$req->closeCursor();
    }
    ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu n'as pas besoin de session PHP.
    Par contre tu n'as rien mis dans le formulaire d'inscription c'est normal qu'il ne renvoit rien, utilise un champ "hidden" pour mettre l'id.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 16
    Par défaut
    J'essaie ça de suite,
    Merci,

    Je vous tiens au courant si ça marche.

    Au début, mon idée première était juste de faire un bouton qui permettait de faire un UPDATE sur la base SQL.

    Donc ce la donnerai :

    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
     
     
    <form method="POST">
    <input type="hidden" name="id_voyage" value="<?php$_POST['id_voyage']?>"/>
    <input type="submit" name="test" value="s'inscrire au voyage"/></form>
    <?php
        if(isset($_POST['test']
        {
          /* requête test (bidon) */
           $req = $bdd->prepare('SELECT id_voyage FROM Voyage WHERE id_voyage = ?');
           $req->execute(array($_POST['id_voyage']));
     
           while($donnees = $req->fetch())
           {
               echo $donnees['id_voyage'];
           }
           $req->closeCursor();
        }

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 16
    Par défaut
    Il n'a pas l'air d'aimer le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="id_voyage" value="<?php$_POST['id_voyage']?>"/>
    php dans le value. J'ai essayé avec concaténation mais rien a y faire.

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php$_POST['id_voyage']?>
    C'est comme ça que tu affiches des valeurs en PHP toi ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 16
    Par défaut
    Excuse moi, mais de toute façon ma syntaxe doit être fausse, j'ai longuement rechercher sur Internet.
    Mais je ne veux pas qu'elle s'affiche, j'aimerai les stockés dans les input de type hidden pour ensuite si l'utilisateur clique sur "S'inscrire au voyage" je puisse les récupérer pour les utiliser dans une requête SQL

  7. #7
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Ça devrait aller mieux comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="id_voyage" value="<?php echo $_POST['id_voyage'] ?>"/>
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 16
    Par défaut
    Rhaaa J'ai déjà essayé rien n'y fait ! C'est assez frustrant si je résous ce problème la partie php est finis !

  9. #9
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Mais je ne veux pas qu'elle s'affiche, j'aimerai les stockés dans les input de type hidden
    Tu confonds deux choses bien distinctes : ce qui est affiché sur la page et ce qui est affiché dans le code de la page.
    Pour pouvoir obtenir un input hidden qui ne sera pas affiché sur la page, il est nécessaire d'afficher dans le code de la page la valeur souhaitée pour cet input, donc PHP doit afficher cette valeur, bien qu'elle ne sera pas visible, d'où la réponse de CinePhil.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  10. #10
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 16
    Par défaut
    Aaahhh Excusez mon ignorance sur ce sujet. Je suis encore novice. Donc si j'ai bien compris, je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     value="<?php echo $_POST['id_voyage'] ?>"
    et ensuite je peux lancer une requête sql du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $req = $bdd->prepare('SELECT départ, arrive FROM voyage WHERE id_voyage = ?');
    $req->execute(array($_POST['id_voyage']));
    while($donnees = $req->fetch())
    {
    ....
    }
    $req->closeCursor();
    ?

  11. #11
    Membre très actif
    Homme Profil pro
    Déveleoppeur Web/Mobile
    Inscrit en
    Avril 2013
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Déveleoppeur Web/Mobile
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 330
    Par défaut
    Un champs input de nom "id_voyage" ayant pour valeur la valeur du champs "id_voyage", je n'ai pas suivi toute la discussion mais cela ne semble pas être une bonne façon de faire ..

  12. #12
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 16
    Par défaut
    ça y est MERCI à vous tous ! grâce à vos conseils j'ai enfin finis la partie PHP de mon site houRa !

    Mais pour le fun j'ai recuperer le module Google Map V3 API. L'utilisateur peut rentrer une adresse de départ et une d'arrivé. J'ai crée un bouton en bas "proposez trajet". J'aimerai récupérer le départ, l'arrivée et le kilométrage de se formulaire google. Si il y en a que cela intéresse, voici le code :
    Code html : 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
    <BODY text-align="center" BGCOLOR="FFFFFF" TEXT="#000000" leftmargin="0" rightmargin="0" topmargin="0" bottommargin="0" marginheight="0" marginwidth="0" onLoad="initialize();" onUnload="GUnload()">
        <form id="monFormulaire" method="post" action="#" onSubmit="setDirections(this.from.value, this.to.value, 'fr'); return false">
          <table width="496" border="0" class="iti">
            <tr valign="top">
              <td align="right" width="60"><strong>Départ :</strong></td><td align="left" width="400"><input type="text" id="fromAddress" name="from" size="50"></td>
              <td align="right" rowspan="3" width="50" valign="middle"><input name="gogogo" type="submit" value="Itinéraire" /><br><A href="javascript:window.print()"><img src="printer.png" width="32" height="32" border="0" alt="Imprimer l'itinéraire" title="Imprimer l'itinéraire"></A></td>
            </tr>
            <tr><td align="right"><strong>Arrivée :</strong></td><td align="left"><input type="text" id="toAddress" name="to" size="50"></td></tr>
            <tr><td align="right"><strong>Kms :</strong></td><td><input type="text" id="km" value="" size="9" disabled >&nbsp;</td></tr>
    	    <tr><td colspan="3">
    		</td></tr>
          </table>
          <table width="500" border="0" class="directions" cellspacing="1" cellpadding="0">
            <tr><th width="196">Itinéraire détaillé</th><th width="296" class="print">Carte</th></tr>
            <tr><td><div id="directions"></td><td><div id="map_canvas" class="print"></div></td></tr>
          </table>
        </form>
      </BODY>

    Je n'ai pas mis le Java dans ce post. il me semble inutile.
    Alors j'ai essayé de récupérer donc le départ, l'arrivée pour commencer mais il a pas envie, un petit coup de pouce ?

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

Discussions similaires

  1. Requête Affichage Des Dernières Données pour une Dernière Date
    Par Dr_No dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 22/10/2009, 18h48
  2. Créer un tableau pour afficher les données d'une requête.
    Par BILANGA dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 13/10/2009, 12h04
  3. Réponses: 0
    Dernier message: 01/04/2009, 10h12
  4. Réponses: 4
    Dernier message: 22/05/2007, 14h42
  5. Réponses: 3
    Dernier message: 18/06/2005, 00h31

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