[PHP] Faire une recherche parmi une BdD
Fermé
bobenausaure
Messages postés
228
Date d'inscription
samedi 17 février 2007
Statut
Membre
Dernière intervention
27 janvier 2013
-
22 mai 2008 à 10:59
bobenausaure Messages postés 228 Date d'inscription samedi 17 février 2007 Statut Membre Dernière intervention 27 janvier 2013 - 22 mai 2008 à 16:08
bobenausaure Messages postés 228 Date d'inscription samedi 17 février 2007 Statut Membre Dernière intervention 27 janvier 2013 - 22 mai 2008 à 16:08
A voir également:
- [PHP] Faire une recherche parmi une BdD
- Comment faire une recherche à partir d'une photo - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Je recherche une chanson - Guide
- Rechercher ou entrer l'adresse mm - recherche google - Guide
- Easy php - Télécharger - Divers Web & Internet
5 réponses
LiLou LiLa
Messages postés
330
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
10 mars 2009
12
22 mai 2008 à 11:15
22 mai 2008 à 11:15
une zone de texte pour recuperer le nom dans un formulaire
ex : <form method="post" action="recherche.php">
//recherche.php c'est ta page ou tu vas afficher les resultats de ta recherche
saisissez le nom recherché :
<input type="text" name="nom">
<input button="submit" value="enregistrer">
</form>
puis dans recherche.php
//tu recupere la valeur que t'as saisi :
$ref=$_POST['nom']; //'nom' vient du nom de <input type="text" name="nom">
puis requete :)
req="select prenom,tel,blabla from tatable where nom="'$ref'";"
et t'execute et ainsi de suite
après tu peux l'amelioré en faisant une liste deorulante pour choisir ton nom, comme ça c'est obligé qu il y ait des resultats et pas d'erreur :)
ex : <form method="post" action="recherche.php">
//recherche.php c'est ta page ou tu vas afficher les resultats de ta recherche
saisissez le nom recherché :
<input type="text" name="nom">
<input button="submit" value="enregistrer">
</form>
puis dans recherche.php
//tu recupere la valeur que t'as saisi :
$ref=$_POST['nom']; //'nom' vient du nom de <input type="text" name="nom">
puis requete :)
req="select prenom,tel,blabla from tatable where nom="'$ref'";"
et t'execute et ainsi de suite
après tu peux l'amelioré en faisant une liste deorulante pour choisir ton nom, comme ça c'est obligé qu il y ait des resultats et pas d'erreur :)
bobenausaure
Messages postés
228
Date d'inscription
samedi 17 février 2007
Statut
Membre
Dernière intervention
27 janvier 2013
16
22 mai 2008 à 11:29
22 mai 2008 à 11:29
Oui merci beaucoup, je viens de faire la requête etc comme vous l'avez fait.
J'ai pour le moment vérifier que l'utilisateur a bien saisi un nom.
Voici mon code pour le moment (si ça peut servir à quelqu'un d'autre...):
$nom = $_POST['nom'];
$requete = "SELECT * FROM EMPLOYE,SERVICE WHERE EMPLOYE.NumServ = SERVICE.NumServ AND NomEmp = '$nom'";
$resultat = mysql_query($requete);
if ($nom == "")
{
echo "Veuillez saisir un nom.";
}
Comment faire maintenant pour afficher une erreur si le nom saisi ne se trouve pas dans la BdD ??
J'ai pour le moment vérifier que l'utilisateur a bien saisi un nom.
Voici mon code pour le moment (si ça peut servir à quelqu'un d'autre...):
$nom = $_POST['nom'];
$requete = "SELECT * FROM EMPLOYE,SERVICE WHERE EMPLOYE.NumServ = SERVICE.NumServ AND NomEmp = '$nom'";
$resultat = mysql_query($requete);
if ($nom == "")
{
echo "Veuillez saisir un nom.";
}
Comment faire maintenant pour afficher une erreur si le nom saisi ne se trouve pas dans la BdD ??
macgawel
Messages postés
664
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
1 novembre 2008
89
22 mai 2008 à 14:28
22 mai 2008 à 14:28
$nom = $_POST['nom']; $requete = "SELECT * FROM EMPLOYE,SERVICE WHERE EMPLOYE.NumServ = SERVICE.NumServ AND NomEmp = '$nom'"; $resultat = mysql_query($requete); if ($nom == "") { echo "Veuillez saisir un nom.";
1. Teste le contenu de nom avant de passer ta requête. Ca t'évite de perdre du temps pour rien...
2. Pense à sécuriser ta variable (injection SQL, etc.) Même si c'est pour un intranet, on ne sait jamais.
3. Là, tu pars du principe que ta requête renvoie UN ET UN SEUL résultat.
Une possibilité :
$nb_resultats = mysql_num_rows($requete); if ($nb_resultats == 0) { // Message "Aucun résultat trouvé" } else { // Pour chaque résultat renvoyé par la requête while ($resultat = mysql_query($requete)) { // Afficher les coordonnées. } }
bobenausaure
Messages postés
228
Date d'inscription
samedi 17 février 2007
Statut
Membre
Dernière intervention
27 janvier 2013
16
22 mai 2008 à 13:53
22 mai 2008 à 13:53
Personne ne peut m'aider ?
bobenausaure
Messages postés
228
Date d'inscription
samedi 17 février 2007
Statut
Membre
Dernière intervention
27 janvier 2013
16
22 mai 2008 à 14:52
22 mai 2008 à 14:52
merci, mais je n'ai pas très bien compris...
Ca m'affiche des erreurs avec le "mysql_num_rows", comme quoi il est pas défini...
Ca m'affiche des erreurs avec le "mysql_num_rows", comme quoi il est pas défini...
macgawel
Messages postés
664
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
1 novembre 2008
89
22 mai 2008 à 15:05
22 mai 2008 à 15:05
https://www.php.net/
Tu y trouveras les explications des différentes commandes php.
https://openclassrooms.com/fr/
Un bon site avec des tutoriaux.
mysql_num_rows ne sert qu'à compter le nombre de colonnes renvoyées par une requête. Mais il faut l'avoir exécutée avant, avec mysql_query.
Et pour exploiter les résultats, il faut encore utiliser un mysql_fetch_* (au choix, suivant ce que tu veux en faire...)
Tu y trouveras les explications des différentes commandes php.
https://openclassrooms.com/fr/
Un bon site avec des tutoriaux.
mysql_num_rows ne sert qu'à compter le nombre de colonnes renvoyées par une requête. Mais il faut l'avoir exécutée avant, avec mysql_query.
Et pour exploiter les résultats, il faut encore utiliser un mysql_fetch_* (au choix, suivant ce que tu veux en faire...)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bobenausaure
Messages postés
228
Date d'inscription
samedi 17 février 2007
Statut
Membre
Dernière intervention
27 janvier 2013
16
22 mai 2008 à 16:08
22 mai 2008 à 16:08
voilà, il ne me manques plus qu'a afficher un message lorsque l'utilisateur saisit un nom qui n'existe pas dans la BdD.
Mais je ne vois pas non plus comment faire...
En tout cas, merci macgawel !!
Mais je ne vois pas non plus comment faire...
En tout cas, merci macgawel !!