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 occasionnel
Ben tout est dans le titre ta table 'articles' ne contient pas de colonne appelée 'motClef' (!! case sensitive !!)
 
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
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Haut