Explode et recherche sql

Répondre
KiwiSlice
le 12/01/2005 à 15:57
KiwiSlice
Bonjour,

voilà je récupère une donné d'un inputbox ( disons "php facile" ).

La je fait un explode pour avoir mot[0] = php et mot[1] = facile

et la je veut chercher dans ma bd avec like %mot[0]% ou like %mot[1]% etc... donc je doit le faire dans une boucle j'imagine.

Mais je ne voit pas comment faire!
KiwiSlice - The fruity taste of kiwi
LA GLOBULE
le 12/01/2005 à 16:03
LA GLOBULE
Ben un truc de ce genre :

<?php
$like = '';
$nb = count ($mot);
for ($i=0; $i<$nb; $i++) {
if ($i == $nb-1) $like .= 'champs LIKE %'.$mot[$i].'%';
else $like .= 'champs LIKE %'.$mot[$i].'% OR ';
}
?>


Et tu as ton "LIKE".
KiwiSlice
le 12/01/2005 à 16:07
KiwiSlice
Ouais mais dans ce cas j'ai un autre problème :(

C'est que si je cherche disons "php facile" et qu'il cherche tout ce qui contient php et tout ce qui contient facile il va me donner "php facile" à 2 reprises :(

C'est compliquer mon affaire désolé :p
KiwiSlice - The fruity taste of kiwi
LA GLOBULE
le 12/01/2005 à 16:14
LA GLOBULE
Tu es sur de çà ? C'est bien les memes éléments ? (perso j'ai un doute mais pourquoi pas).

Ben dans ce cas, fais un SELECT DISTINCT.
solo
le 12/01/2005 à 17:19
solo
Tu peux passer également via la fonction REGEXP de mysql qui t'évite de faire une boucle.Il suffit de faire un implode avec le caractère "|" après avoir fait ton explode. Tu obtiens une chaine que tu passes en arguments à la fonction :D
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours