[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
Bonjour,

J'ai une base de données regroupant les employés d'une entreprise, et je souhaite faire une page de recherche sur mon site.
Cette recherche consiste à entrer le nom d'une personne, rechercher parmi la BdD et afficher cette personne avec tous les détails (Nom Prénom Téléphone Fonction etc...).

Comment faire ?
A voir également:

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
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 :)
0
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
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 ??
0
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
$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.
   }
}
0
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
Personne ne peut m'aider ?
0
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
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...
0
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
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...)
0

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
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 !!
0