unknown column "motClef" in WHERE clause

WRInaute passionné
Bonjour,

Je ne comprend pas la chose suivante : j'ai deux requêtes apparemment identique, une fonctionne et pas l'autre.

Code:
// on récupère le tableau et on le filtre avec intval
$luAdmin = array_map( 'intval', $_POST['lu'] );

//on va chercher tous les id du tableau, afin de faire une boucle
$select="SELECT id FROM wikiLienBrise WHERE id IN (".implode(',', $luAdmin).") ";
$resultat = mysql_query("$select");
while 
($R = mysql_fetch_array($resultat)) 
{
$masquer="UPDATE  `wikiLienBrise` SET lu=1 WHERE id ='".$R['id']."'"; 
mysql_query("$masquer"); 
;}
mysql_free_result($resultat);


// REQUETE 2
$motClef = array_map( 'mysql_real_escape_string', $_POST['MotClef'] );
$select="SELECT id FROM articles WHERE motClef IN (".implode(',', $motClef).") ";
$resultat = mysql_query("$select") OR die(mysql_error());
while 
($R = mysql_fetch_array($resultat)) 
{
$masquer="UPDATE  `articles` SET nbrLiens=nbrLiens-1 WHERE id ='".$R['id']."'"; 
mysql_query("$masquer"); 
;}
mysql_free_result($resultat);

Donc ici, la première requête fait ce qu'elle a à faire

Par contre, la seconde ne fonctionne pas, elle me renvoit l'erreur du titre.

La différence entre les deux ? $_POST['lu'] est un tableau avec des chiffres, tandis que $_POST['MotClef'] est un tableau avec des lettres (des mots, sans espaces ni accents, éventuellement séparés par des traits d'union).

Merci d'avance pour votre aide.
 
WRInaute passionné
boutdepapier a dit:
WHERE motClef in ('".implode(',', $motClef)."') ?

(j'ai rajouté des quotes ^^)

Oui alors, j'ai essayé avec les quotes comme tu dis et ça m'affiche ça, justement pour la ligne de la requête:

Code:
Warning: implode() [function.implode]: Bad arguments.

affiche ta requete générée avant de l'executer, ca donne souvent le probleme

Je me souviens jamais comment faut faire :oops:
 
WRInaute passionné
Bon ça fonctionne, merci à vous tous (et bravo à boutdepapier qui a trouvé la solution :une reco :D ).

En fait quand j'ai essayé d'ajouter les quotes, ça a raté parce que juste avant j'avais fait un essai en en plaçant autour de $motClef, comme ci-dessous et je les avais laissé en testant.

Code:
WHERE motClef in ('".implode(',', '$motClef')."')


Encore merci :D
 
Haut