Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/05/2007, 12h03   #1
Candidat au titre de Membre du Club
 
Inscription : mai 2007
Messages : 48
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : mai 2007
Messages : 48
Points : 10
Points : 10
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 !
Il_TiRaNNo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2007, 12h11   #2
Membre Expert
 
Inscription : octobre 2002
Messages : 1 141
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2002
Messages : 1 141
Points : 1 204
Points : 1 204
Envoyer un message via MSN à Raideman
si c'est possible par requete select et meme c'est comme ça qu'il faut procéder !

Exemple
Code :
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...
Raideman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2007, 14h12   #3
Candidat au titre de Membre du Club
 
Inscription : mai 2007
Messages : 48
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : mai 2007
Messages : 48
Points : 10
Points : 10
Merci raidman pour ta rapidité

Voici mon code :

Code :
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
Il_TiRaNNo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2007, 14h13   #4
Candidat au titre de Membre du Club
 
Inscription : mai 2007
Messages : 48
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : mai 2007
Messages : 48
Points : 10
Points : 10
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
Il_TiRaNNo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2007, 14h18   #5
Candidat au titre de Membre du Club
 
Inscription : mai 2007
Messages : 48
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : mai 2007
Messages : 48
Points : 10
Points : 10
Voici par la même occasion mon formulaire ( formulaire de recherche.html)
Code HTML :
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
Il_TiRaNNo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2007, 14h18   #6
Membre expérimenté
 
Avatar de dj-julio
 
Inscription : décembre 2005
Messages : 742
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Finistère (Bretagne)

Informations forums :
Inscription : décembre 2005
Messages : 742
Points : 576
Points : 576
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 ?
__________________
Mon Site/Cv.
dj-julio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2007, 14h24   #7
Invité régulier
 
Inscription : mai 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 10
Points : 7
Points : 7
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]}\"
kpn59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2007, 14h27   #8
Membre expérimenté
 
Avatar de dj-julio
 
Inscription : décembre 2005
Messages : 742
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Finistère (Bretagne)

Informations forums :
Inscription : décembre 2005
Messages : 742
Points : 576
Points : 576
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 :
1
2
3
 
$taVarNonProtegee=$_POST[ton_champs]
$taVarProtegee=mysql_real_escape_string($taVarNonProtégée);
__________________
Mon Site/Cv.
dj-julio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2007, 14h41   #9
Candidat au titre de Membre du Club
 
Inscription : mai 2007
Messages : 48
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : mai 2007
Messages : 48
Points : 10
Points : 10
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 :
Citation:
Notice: Undefined variable: NoGite in c:\program Files\easyphp1-8\www\projet gdv\recherche.php on line 19
Erreur requete sql !
Il_TiRaNNo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2007, 14h46   #10
Invité régulier
 
Inscription : mai 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 10
Points : 7
Points : 7
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.
kpn59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2007, 14h46   #11
Membre expérimenté
 
Avatar de dj-julio
 
Inscription : décembre 2005
Messages : 742
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Finistère (Bretagne)

Informations forums :
Inscription : décembre 2005
Messages : 742
Points : 576
Points : 576
tu as oublié de dire que
Code :
$NoGite=$_POST['NoGite'];
et pour la protection des var, qui te donnerait ça :
Code :
$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
__________________
Mon Site/Cv.
dj-julio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2007, 14h57   #12
Candidat au titre de Membre du Club
 
Inscription : mai 2007
Messages : 48
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : mai 2007
Messages : 48
Points : 10
Points : 10
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.
Il_TiRaNNo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2007, 14h59   #13
Membre expérimenté
 
Avatar de dj-julio
 
Inscription : décembre 2005
Messages : 742
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Finistère (Bretagne)

Informations forums :
Inscription : décembre 2005
Messages : 742
Points : 576
Points : 576
De rien et bon courage pour ton exposé

pense à la balise
__________________
Mon Site/Cv.
dj-julio est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h55.


 
 
 
 
Partenaires

Hébergement Web