Recherche et affichage BDD via PHP
Résolu
ahlam
-
thunder413 Messages postés 167 Date d'inscription Statut Membre Dernière intervention -
thunder413 Messages postés 167 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai débuté PHP il y a quelques semaines et je tente désormais dans une page d'admin d'effectuer une recherche dans un tableaux et ceci en rentrant le nom d'un utilisateur le résultat sera l'affichage de tout les autre champ de cette table associer a cet utilisateur, et d'avoir ensuite la possibilité de supprimer l'enregistrement de la table.
mais avec le code que j'ai fait l'affichage donne l'ensemble des utilisateurs et toutes les informations associer!! càd la table elle méme ,le filtrage ne s'effectue pas!!
voila donc pour le petit formulaire de recherche :
<?php
echo'<form method="POST" action="PPP.php"> ';
echo 'rechercher:<input type="text" name="de"/><a href="PPP.php"><input type="submit" value="ok"/ ></a>';
echo '</form> '?>
ensuite il y'a la 2eme page qui donne reçois le mot clé entré dans le formulaire et la requéte comme ceci:
<?php
$nom=$_POST['de'];
// on se connecte à MySQL
include 'connexion.php';
// on crée la requête SQL
$requete= "SELECT * FROM TB_enseignent WHERE Nom LIKE '".$nom."%'";
$resultat= mysql_query($requete) or die(mysql_error());
while($ligne=mysql_fetch_array($resultat)){
echo "Nom: ".$ligne['Nom']." prenom: ".$ligne['Prenom']." Adresse: ".$ligne['Adresse']."<br>" ;
}
mysql_close();
?>
c'est quoi le probléme??
mercii
J'ai débuté PHP il y a quelques semaines et je tente désormais dans une page d'admin d'effectuer une recherche dans un tableaux et ceci en rentrant le nom d'un utilisateur le résultat sera l'affichage de tout les autre champ de cette table associer a cet utilisateur, et d'avoir ensuite la possibilité de supprimer l'enregistrement de la table.
mais avec le code que j'ai fait l'affichage donne l'ensemble des utilisateurs et toutes les informations associer!! càd la table elle méme ,le filtrage ne s'effectue pas!!
voila donc pour le petit formulaire de recherche :
<?php
echo'<form method="POST" action="PPP.php"> ';
echo 'rechercher:<input type="text" name="de"/><a href="PPP.php"><input type="submit" value="ok"/ ></a>';
echo '</form> '?>
ensuite il y'a la 2eme page qui donne reçois le mot clé entré dans le formulaire et la requéte comme ceci:
<?php
$nom=$_POST['de'];
// on se connecte à MySQL
include 'connexion.php';
// on crée la requête SQL
$requete= "SELECT * FROM TB_enseignent WHERE Nom LIKE '".$nom."%'";
$resultat= mysql_query($requete) or die(mysql_error());
while($ligne=mysql_fetch_array($resultat)){
echo "Nom: ".$ligne['Nom']." prenom: ".$ligne['Prenom']." Adresse: ".$ligne['Adresse']."<br>" ;
}
mysql_close();
?>
c'est quoi le probléme??
mercii
A voir également:
- Recherche et affichage BDD via PHP
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Affichage double ecran - Guide
- Rechercher ou entrer l'adresse mm - recherche google - Guide
- Windows 11 affichage classique - Guide
- Recherche photo - Guide
2 réponses
salut,
LIKE '".$nom."%'"; c'est ca le problème like n'est pas exacte puisque si tu tape "php" il reconnaitra "php4" et "php6" etc donc pour être exacte tu fait
WHERE nom='$nom'
ici soit le nom concorde soit nom
et aussi t'a pas besoin de faire une boucle puisque ici le il s'agit d'un seul résultat donc
$ligne=mysql_fetch_array($resultat);//suffit largement
echo ligne['Nom'];
LIKE '".$nom."%'"; c'est ca le problème like n'est pas exacte puisque si tu tape "php" il reconnaitra "php4" et "php6" etc donc pour être exacte tu fait
WHERE nom='$nom'
ici soit le nom concorde soit nom
et aussi t'a pas besoin de faire une boucle puisque ici le il s'agit d'un seul résultat donc
$ligne=mysql_fetch_array($resultat);//suffit largement
echo ligne['Nom'];
d abord je rectifie ce que j'ai dit tentot vaut mieux utiliser LIKE '%'.$nom.'%' que le égale vu que c'est une recherche donc désolé pour ce malentendu ensuite il est vrais que t'a besoin de la boucle donc je me rachetée avec ce ptit bout de code :)
Pour ta deuxième question j'ai pas bien compris ce que tu veut dire par filtre si tu peut expliquer un peu plus ?
<form method="POST" action="PPP.php"> rechercher:<input type="text" name="de"/><input type="submit" value="ok"/ > </form> <?php //récupération des données et mise en minuscule pour éviter le problème de casse $nom = strtolower($_POST['de']); //même dans ta requête sql compare en utilisant les minuscule si t'est pas sur que l'insertion s'est fait en minuscule $requete= "SELECT * FROM TB_enseignent WHERE LOWER(Nom) LIKE '%".$nom."%'"; $resultat= mysql_query($requete) or die(mysql_error()); //préfère toujours l'utilisation de mysql_fetch_assoc ou mysql_fetch_row plutot que mysql_fetch_array // car celle-ci combine les deux précédente donc elle utilise des ressource inutilement while($ligne=mysql_fetch_assoc($resultat)){ echo "Nom: ".$ligne['Nom']." prenom: ".$ligne['Prenom']." Adresse: ".$ligne['Adresse']."<br>" ; } ?>
Pour ta deuxième question j'ai pas bien compris ce que tu veut dire par filtre si tu peut expliquer un peu plus ?
sachant aussi qui n me sera présenté qu'une seul variable par le 1er formulaire ($nom)
en bref:
le 1er formulaire ::rechercher:|$nom|
le 2eme:effectuer le filtrage par apport au prénom et au nom en se basant sur $nom::
grand merci pour ton aide !!! jattend ta reponse !!