problème requête mysql

atomikado
WRInaute discret
WRInaute discret
 
Messages: 154
Inscription: 22 Sep 2003

problème requête mysql

Message le Jeu Mar 13, 2008 16:23

bonjour,

j'ai un problème concernant une requête mysql :
soit un tableau : $tab = array ( 'bonjour' , 'merci' , 'au revoir' ) ;

je voudrais dans une requête mysql récupérer tous les enregistrements ne comportant ni 'bonjour' , ni 'merci' , ni 'au revoir'
je pourrais faire un NOT LIKE '%bonjour%' AND NOT LIKE '%merci%' ... mais mon tableau comporte en fait beaucoup d'éléments !

Comment faire ?

Merci :)


webmasterlamogere
WRInaute passionné
WRInaute passionné
 
Messages: 1874
Inscription: 17 Déc 2006

Message le Jeu Mar 13, 2008 16:41

tu peux utiliser implode avec un WHERE NOT IN
ca doit donner :
Code: Tout sélectionner
'NOT IN (' . implode(',', $tableau) . ')'

tu peux aussi faire avant :
Code: Tout sélectionner
function protege_chaine($string) {
   return '\'' . mysql_real_escape_string($string) . '\'';
}

$tableau = array_map('protege_chaine', $tableau_nom_protege);


plopz0r
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 17
Inscription: 21 Avr 2007

Message le Jeu Mar 13, 2008 20:17

Tu as aussi une autre possibilité avec la fonction FIELD et toujours en utilisant implode

ça devrait donner une clause du genre :

Code: Tout sélectionner
"...WHERE FIELD (tonchamp," . implode(',',$tableau) . ") = 0..."


Attention par contre à mettre des apostrophes de part et d'autre de chacun de tes mots dans ton tableau !

Code: Tout sélectionner
$array[] = '\'mot\'';


Par contre n'ayant jamais utilisé cette fonction je n'ai aucune idée de la rapidité avec laquelle elle s'exécute.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités