[PHP] Faire une recherche parmi une BdD
bobenausaure
Messages postés
241
Statut
Membre
-
bobenausaure Messages postés 241 Statut Membre -
bobenausaure Messages postés 241 Statut Membre -
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 ?
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:
- [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 saisir une url - Guide
- Easy php - Télécharger - Divers Web & Internet
5 réponses
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 :)
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 ??
$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.
}
}
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...
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