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] Comment rechercher une donnée selon un critère !


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 48
    Points : 31
    Points
    31
    Par défaut [SQL] Comment rechercher une donnée selon un critère !
    Bonjour tout le monde ,

    Voilà j'ai besoin de votre aide pour résoudre un de mes problémes !

    J'ai crée un site web (fictif => projet de cours) et je dois faire un formulaire de recherche => Pièce jointe 13161 qui permettre a l'utilisateur de chercher des hotels par leur localisation mais je ne sais pas comment faire... Je ne connais pas le code qui permettera d'interroger la base de donnée par rapport a un ou plusieur critéres (ex: 54000 aucun hotel ; 57000 hotel YuL - hotel PrOkI). Je ne pense pas que sa soit une simple requête SELECT !

    merci de bien vouloir m'aider !

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    si c'est possible par requete select et meme c'est comme ça qu'il faut procéder !

    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $requete="select * from hotels where localisation='".$localisation."' order by nom asc";
    $exe=mysql_query($requete);
    while($liste_hotel=mysql_fetch_array($exe,MYSQL_ASSOC)){
    echo $liste_hotel[nom].'<br>';
    }
    Ensuite tu peux meme rajouter d'autres conditions comme la région (au lieu du département) en ajoutant des clauses where genre where localisation='".$localisation."' and region='".$region."' ; etc...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 48
    Points : 31
    Points
    31
    Par défaut
    Merci raidman pour ta rapidité

    Voici mon code :

    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
    <?
     
    //Connexion au serveur MySQL
     
    $db=mysql_connect("localhost","root","") or die ("Erreur de connexion".mysql_error());
     
    //Ouverture de la base projet
     
    mysql_select_db("projet",$db) or die ("Erreur de connexion à la base projet");
     
    $requete="select * from GITE where NoGite='".$NoGite."'";
     
     $sql=mysql_query($requete) or die ("Erreur requete sql !"); 
     
     while($liste_gite=mysql_fetch_array($sql,MYSQL_ASSOC))
     { 
     echo $liste_gite[NoGite].'<br>'; 
     }
    //Fermeture de la connexion à MySQL
     
    mysql_close();
     
    ?>
    ce ne sont pas des hotels mais des gîtes , lol désolé !
    Sa ne marche pas , j'ai un messa

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 48
    Points : 31
    Points
    31
    Par défaut
    Désolé , j'ai envoyer ma réponse trop rapidement !

    Je voulais donc dire j'ai un message d'érreur qui me dis que la requête n'est pas bonne .

    MERCI

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 48
    Points : 31
    Points
    31
    Par défaut
    Voici par la même occasion mon formulaire ( formulaire de recherche.html)
    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
     <form method="POST" action="recherche.php">
        <p><h1>Rechercher un G&icirc;te</h1></p>
        <br />
        <br />
     
             Rechercher par :<br />
     
                 Ville:
                 <input type="text" name="NoGite" value=""/> (exemples: Nancy , Cannes etc...)
                 <br />
     
        <br />
        <input type="submit"value="Rechercher"/>
        <input type="submit"value="Retour"/>
     
      </body>
    merci

  6. #6
    Membre confirmé Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Points : 625
    Points
    625
    Par défaut
    Salut,

    si tu as phpMyAdmin d'installé sur ton serveur, il serait plus facile pour toi de tester ta requête directement dessus.
    Comme ça tu verrais directement que si quelque chose bug, ça ne vient pas de ton code php

    Peux-tu donner plus d'infos sur l'erreur qu'il te renvoi ?

  7. #7
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Tape ta requete sous ton interface PHPMyAdmin.

    Souvent les problèmes viennent des quotes.

    Mais ici, a quoi est égal ton $NoGite ??

    Essaye peut-etre :

    where NoGite like ou = \"{$_POST[ton_champs]}\"

    ou where NoGite like ou = \"{$_GET['ton_champs]}\"

  8. #8
    Membre confirmé Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Points : 625
    Points
    625
    Par défaut
    ne fait ce que kpn59 a dit que pour tes tests, après il est vitale pour ton appli de protéger tes variables de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $taVarNonProtegee=$_POST[ton_champs]
    $taVarProtegee=mysql_real_escape_string($taVarNonProtégée);

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 48
    Points : 31
    Points
    31
    Par défaut
    Tu crois que je dois proteger mes variables , sa restera un site fictif (projet de cours)

    NoGite correspond au numéro de gite , je pensais faire une recherche par numéro de gîte .

    Voila l'érreur que m'indique mon navigateur :
    Notice: Undefined variable: NoGite in c:\program Files\easyphp1-8\www\projet gdv\recherche.php on line 19
    Erreur requete sql !

  10. #10
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Oui bien sur , pour ta phase de test

    Ton erreur vient donc de ta requête mais pour la tester, fait un echo $requete;

    Copie et Colle dans ton interface PHPMyAdmin.

    Sinon je ne vois pas comment tu pourrais trouver la solution

    Bon courage.

  11. #11
    Membre confirmé Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Points : 625
    Points
    625
    Par défaut
    tu as oublié de dire que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $NoGite=$_POST['NoGite'];
    et pour la protection des var, qui te donnerait ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $NoGite=mysql_real_escape_string($_POST['NoGite']);
    Je pense que ton prof ne peut pas rester insensible à un élève qui cherche à faire mieux que le besoin initial.
    Tu peux lui faire un pti paragraphe sur l'injection de requêtes SQL et les dangers que ça encourt pour le site et la base de données.

    Maintenant ce n'est pas obligatoire, mais si ça peut te faire gagner 1 point ou 2, pourquoi pas

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 48
    Points : 31
    Points
    31
    Par défaut
    MERCI beaucoup sa marche

    Ah , je suis content !

    Effectivement , tu as raison , vaut mieux être rigoureux dés le début.. En tout cas merci pour ta rapidité pour la qualité de la réponse

    A bientôt.

  13. #13
    Membre confirmé Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Points : 625
    Points
    625
    Par défaut
    De rien et bon courage pour ton exposé

    pense à la balise

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

Discussions similaires

  1. [XL-2010] Recherche de donnés selon un critère dans un autre classeur
    Par AFcrv dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/10/2014, 16h06
  2. codage vba pour rechercher une valeur selon 2 critères
    Par sims92.66 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/10/2011, 21h29
  3. Comment rechercher une donnée dans un base ?
    Par tibofo dans le forum Administration
    Réponses: 7
    Dernier message: 25/03/2009, 23h02
  4. Réponses: 1
    Dernier message: 30/07/2007, 19h37

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