Explode et recherche sql
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
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".
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
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.
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
Ecrire un message
Votre message vient d'être créé avec succès.
BB-Code
Pour insérer une URL clickable
Pour insérer une adresse E-mail
Pour annoter
Pour écrire du code
Pour faire un lien vers une fonction PHP
Pour écrire du texte préformaté
Pour écrire du texte en gras
Pour écrire du texte en italique
Pour écrire du texte souligné
Pour écrire du texte barré
Pour écrire un titre principal
Pour écrire un titre secondaire
Pour écrire une liste
Smiley
:bond:
:boxe:
:bsmile:
:bump:
:clap:
:coeur:
:cool:
:cry:
:eek:
:evil:
:fleur:
:fou2:
:fou:
:grin:
:grrr:
:hammer:
:hippy:
:hum:
:idee2:
:idee:
:kdo:
:king:
:ko:
:lol:
:love2:
:love:
:mad:
:maitre:
:noel:
:oops:
:raa:
:razz:
:roll:
:sad:
:skull:
:smile:
:timide:
:trink:
:vice:
:vomi:
:wink:
:zzz: