Bonjour,
j'ai une requête qui recherche les identifiants d'auteurs enregistrés dans ma base de données, en les plaçant dans une chaîne qui débute par array(
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
$resauteur2='array('; // ouvre la chaîne
			$auteur='SELECT * FROM utilisateurs WHERE auteur>0 ';
			$sqlauteur=mysql_query ($auteur) or die ('Erreur SQL !'.$auteur.'<br />'.mysql_error());
			while($dataauteur = mysql_fetch_array($sqlauteur))
			{
				$resauteur2=$resauteur2 . $dataauteur['auteur'].','; // écrit une virgule après chaque item
			}
			$l=strlen($resauteur2)-1;
			$resauteur2=substr($resauteur2,0,$l).')'; // enlève la dernière virgule et ferme la parenthèse
Si je fais un écho echo $resauteur2; j'obtiens le bon résultat, à savoir : array(23,18,21,65,12,2,104,78,134,136,6,59,5,79,14,216,60,133,51,115)

Je veux maintenant utiliser ce résultat pour rechercher dans ma base de données tous les articles qui ne sont pas attribués à ces auteurs-là:
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
$selaut='SELECT * FROM article_auteur WHERE identifiant_article="'.$id_article.'"';
	$sqlaut=mysql_query ($selaut) or die ('Erreur SQL !'.$selaut.'<br />'.mysql_error());
	while($dataaut = mysql_fetch_array($sqlaut))
	{
if(! in_array($dataaut['identifiant_auteur'],$resauteur2))
							 {echo $resultat;}
						}
ça ne fonctionne pas alors que, si j'écris le même code en remplaçant ma variable $resauteur2 par sa valeur, ça marche :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
$resauteur2b=array(23,18,21,65,12,2,104,78,134,136,6,59,5,79,14,216,60,133,51,115);
$selaut='SELECT * FROM article_auteur WHERE identifiant_article="'.$id_article.'"';
	$sqlaut=mysql_query ($selaut) or die ('Erreur SQL !'.$selaut.'<br />'.mysql_error());
	while($dataaut = mysql_fetch_array($sqlaut))
	{
if(! in_array($dataaut['identifiant_auteur'],$resauteur2))
							 {echo $resultat;}
						}
Je n'arrive pas à comprendre. Je serais heureuse si quelqu'un pouvait m'aider.