Bonjour,

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

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
// 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.