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 :

Problème comparaison $_POST


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2014
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2014
    Messages : 123
    Par défaut Problème comparaison $_POST
    Bonjour a tous,

    Dans le cadre d'un projet que je dois rendre bientôt, je rencontre actuellement un soucis.
    Je souhaite comparer une valeur $_POST avec une chaine de caractére. Je précise : dans une premiére page, j'ai une liste optgroup avec a l'intérieur des hôtels et des restaurants. Je désire que lorsque l'utilisateur choisit un des ceux la, sur la page suivante un formulaire affiche les valeurs de l'hôtel ou du restaurant choisi afin de les modifier.
    Les champs sont : Nom, Adresse, Note et Avis. Je vous montre ce que j'ai fait (qui ne marche pas pour une raison que je ne connais pas) et si vous pouvez m'aider cela serait parfait !

    Page 1 ou l'utilisateur choisi dans la liste optgroup :
    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
     
    <form class="#" method="post" action="FormulaireModif2.php">
    		<select name="Hebergements">
    			<option value="">---Choisir un hotel/camping/restaurant---</option>
    			<optgroup label="Hotels">
    		    <?php
    			    $requete = "SELECT nom_hotel FROM `hotels`";
    				$resultats = mysql_query($requete);
    				while($auteur = mysql_fetch_array($resultats))
    				{
    				echo '<option value="'.$auteur['nom_hotel'].'">'.$auteur['nom_hotel'].'</option>';
    				}
    			echo '</optgroup>';
    			echo '<optgroup label="Restaurants">';
    			$resu2=mysql_query("SELECT nom_resto FROM restaurants");
    			while ($resto = mysql_fetch_array($resu2))
    			{
    				echo '<option value="', $resto['nom_resto'], '">', $resto['nom_resto'], '</option>';
    			}
    		    ?>
    		    <a href="FormulaireModif2.php"><input type="submit"></a>
    			</optgroup>
    	    </select>
    	</form>
    Et page 2 ou l'affichage de la base s'effectue et ou il peut les modifier :
    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
     
    <?php
    	if (isset($_POST['Hebergements']) == "Saint James") 
    	{
    			$requete = "SELECT * FROM `hotels` WHERE `nom_hotel` = 'Saint James'";
    			$resultat = mysqli_query($requete);
    			$dataresultat1=mysqli_fetch_assoc($resultat);
    	}
    	?>
    		<form class="formajout" method="post" action="Modif.php">
    			<input type="text" name="nom" placeholder="nom" value="<?php echo $_POST['Hebergements'];?> "><br>
    			<input type="text" name="adresse" placeholder="adresse" value="<?php echo $dataresultat1["adresse_hotel"];?>"><br>
    			<input type="text" name="note" placeholder="note" value="<?php echo $dataresultat1["note_hotel"];?>"><br>
    			<input type="text" name="avis" placeholder="avis" value="<?php echo $dataresultat1["avis_hotel"];?>"><br>
    	        <input type="submit">        
    		</form>
    Dans la seconde page, seul le nom de l'hôtel ou du restaurant s'affiche. Pas les autres champs et je ne sais pas pourquoi.

    Merci d'avance !

  2. #2
    Membre Expert
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Billets dans le blog
    1
    Par défaut
    Yop!

    A ma connaissance, isset() retourne true ou false, donc comparer le résultat de isset() à une chaîne de caractères n'a pas beaucoup de sens.

  3. #3
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2014
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2014
    Messages : 123
    Par défaut
    En effet, j'avais oublié de l'enlever mais même sans cela, ça ne marche toujours pas.

  4. #4
    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
    Contrôle ce que contient $dataresultat1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump($dataresultat1);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2014
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2014
    Messages : 123
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Contrôle ce que contient $dataresultat1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump($dataresultat1);
    NULL... Je ne comprends vraiment pas puisque sur les autres pages les informations de la page s'affichent.

  6. #6
    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
    NULL signifie a priori que ta requête n'a fourni aucun résultat.
    Tu as contrôlé dans PHPMyadmin ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2014
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2014
    Messages : 123
    Par défaut
    Citation Envoyé par sabotage Voir le message
    NULL signifie a priori que ta requête n'a fourni aucun résultat.
    Tu as contrôlé dans PHPMyadmin ?
    Oui :
    Nom : Capture d’écran 2014-12-31 à 15.34.54.png
Affichages : 110
Taille : 23,3 Ko

    Et j'utilise la même requete sur une autre page, et l'affichage s'effectue :
    Nom : Capture d’écran 2014-12-31 à 15.35.21.png
Affichages : 118
Taille : 181,4 Ko

    Et que je mette l'ID dans la requéte ou le nom, le résultat est le même...

  8. #8
    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
    C'est normal que tu utilsies mysqli dans un script et mysql dans l'autre ?

    Dans tous les cas, travaille avec les id et pas avec les noms.

    Tu peux nous montrer ton script corriger et avec le var_dump() ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2014
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2014
    Messages : 123
    Par défaut
    Alors voila le résultat en mettant uniquement des mysql :
    Nom : Capture d’écran 2014-12-31 à 16.18.03.png
Affichages : 113
Taille : 23,3 Ko

    Et en mettant des mysqli partout, dans les 2 pages, les resultats des requetes d'affichage dans la liste ne s'affichent pas.

    Sachant que le "Saint James" est issu du _POST['Hebergements'].

  10. #10
    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
    Heu ce n'est pas au petit bonheur la chance : tu veux utiliser mysql ou mysqli ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2014
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2014
    Messages : 123
    Par défaut
    Mysql de préférence.

  12. #12
    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
    Fait le et montre nous le code corrigé.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2014
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2014
    Messages : 123
    Par défaut
    Uniquement avec Mysql :
    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
    <form class="#" method="post" action="FormulaireModif2.php">
    		<select name="Hebergements">
    			<option value="">---Choisir un hotel/camping/restaurant---</option>
    			<optgroup label="Hotels">
    		    <?php
    			    $requete = "SELECT nom_hotel FROM `hotels`";
    				$resultats = mysql_query($requete);
    				while($auteur = mysql_fetch_array($resultats))
    				{
    				echo '<option value="'.$auteur['nom_hotel'].'">'.$auteur['nom_hotel'].'</option>';
    				}
    			echo '</optgroup>';
    			echo '<optgroup label="Restaurants">';
    			$resu2=mysql_query("SELECT nom_resto FROM restaurants");
    			while ($resto = mysql_fetch_array($resu2))
    			{
    				echo '<option value="', $resto['nom_resto'], '">', $resto['nom_resto'], '</option>';
    			}
    		    ?>
    		    <a href="FormulaireModif2.php"><input type="submit"></a>
    			</optgroup>
    	    </select>
    	</form>
    Page suivante :
    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
    if ($_POST['Hebergements'] == "Saint James") 
    	{
    			$sql='SELECT * FROM hotels WHERE id_hotel=1';
    				$req=mysql_query($connexion, $sql);
    				$dataresultat1=mysql_fetch_assoc($req);
    				var_dump($dataresultat1);
    	}
    	?>
    		<form class="formajout" method="post" action="Modif.php">
    			<input type="text" name="nom" placeholder="nom" value="<?php echo $_POST['Hebergements'];?> "><br>
    			<input type="text" name="adresse" placeholder="adresse" value="<?php echo $dataresultat1["adresse_hotel"];?>"><br>
    			<input type="text" name="note" placeholder="note" value="<?php echo $dataresultat1["note_hotel"];?>"><br>
    			<input type="text" name="avis" placeholder="avis" value="<?php echo $dataresultat1["avis_hotel"];?>"><br>
    	        <input type="submit">
    		</form>
    Resultat : NULL

  14. #14
    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
    Continue le debugage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var_dump($req);
    var_dump($dataresultat1);
    echo mysql_error();
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  15. #15
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2014
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2014
    Messages : 123
    Par défaut
    J'ai modifié la connexion a la BDD en la mettant dans un fichier apart et en enlevant le $connexion de la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req=mysql_query($connexion, $sql);
    Et cela marche a présent.

    Merci beaucoup de ton aide !

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

Discussions similaires

  1. [Dates] Problème comparaison de dates
    Par Davboc dans le forum Langage
    Réponses: 2
    Dernier message: 23/08/2006, 12h23
  2. Réponses: 21
    Dernier message: 04/05/2006, 11h09
  3. [Upload] Problème de _POST
    Par temperature dans le forum Langage
    Réponses: 8
    Dernier message: 26/04/2006, 11h08
  4. [Dates] problème Comparaison dates
    Par gwen-al dans le forum Langage
    Réponses: 4
    Dernier message: 06/01/2006, 11h24
  5. problème comparaison de date VB
    Par af_airone dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 20/10/2005, 11h18

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