Aller au contenu

Recherches partielles


Sujets conseillés

Posté (modifié)

J'ais un probleme tout bete...

Mon bouquin m'indique que pour faire une recherche partielle il suffit de rajouter de % dans la requete.

Par exempl mettre ver% me donneras tout ce qui commence par ver et % % me donneras tout ce qui contient un espace.

Seulement lorsque je le fait ca ne marche pas...

$Recherche1 = $_POST['Recherche'];

$Recherche = "%".$Recherche1."%";

$Table = $_POST['Table'];

$position = 0;

echo $Recherche;

$Requete= "SELECT * FROM $Table WHERE Nom='$Recherche'";

$resultat=ExecRequete($Requete, $connexion);

De plus meme lorsque je n'utilise pas le rajout de % et que je tape en recherche: a% pour avoir toutes les entrées commencant par a, ca ne marche pas non plus...

En gros, je jette mon bouquin par la fenetre ou ca viens de moi ??

Modifié par furious Gontran
Posté

Salut Furious Gontran,

Pour utiliser les wildcars tels que % il faut combiner cela avec 'like'...

Par exemple, si j'ai une table 'posts', avec un champ 'message' je peux écrire:

Select * from posts where message like '%Dan%';

pour retrouver tous les messages qui parlent de moi ;)

Dan

Posté

Bonjour,

3 petites choses :

1/ Pour les variables, au lieu de :

$Recherche1 = $_POST['Recherche'];
$Recherche = "%".$Recherche1."%";
$Table = $_POST['Table'];
$position = 0;
echo $Recherche;

$Requete= "SELECT * FROM $Table WHERE Nom='$Recherche'";
$resultat=ExecRequete($Requete, $connexion);

tu aurais pu écrire :

$position = 0;
echo $_POST['Recherche'];

$Requete= "SELECT * FROM $_POST['Table'] WHERE Nom='$_POST['Recherche']'";
$resultat=ExecRequete($Requete, $connexion);

Tu aurais gagné en clareté, et en rapidité. Si la variable du script se limite à 1 ou 2 affectations, ne passes pas par une variable intermédiaire ;)

2/ Lorsque tu poses une question, penses à mettre aussi les fonctions que tu utilises. Là, je vois "ExecRequete". Bon. C'est un mauvais exemple, mais bien souvent, ca dépend aussi de la fonction développée par la personne.

3/

Les recherches sur Google sont assez étonnantes, pour

les messages de Dan ;) Il est connu du monde entier :lol:

4/ Pour le bouquin, tu peux le garder encore quelques temps :whistling:

Posté
Tu peux toujours utiliser les expressions régulières pour ta recherche. Il est possible que ce soit plus gourmand.

exact

j'ai fait un bench il y a peu de temps, le contexte n'est pas vraiment le même, les résultats parlent d'eux même :)

Posté (modifié)

Oui ça dépend des besoins.

Je ne sais pas si le bench est tres parlant. Quel etait la taille du champ dans lequel tu cherchais ? Avec les expressions régulières, on peut faire des recherche plus poussée.

Modifié par petit-ourson

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...