Page 1 sur 1

Rien ne va plus! > Simple récupération de donnée pourtant

Posté : 13 févr. 2006, 17:05
par Sineljogy
Je suis entrain de pêter un câble sur un p'tit code que j'ai fait ! Si vous trouvez l'erreur, aidez-moi SVP !!
<?
// --- CONNEXION A LA BDD
$db = mysql_connect('localhost','intranet','MONPASSWORD');
$mysql_db="intranet";
mysql_select_db($mysql_db,$db);
// -----------------------------------

$requete ="SELECT * FROM news ORDER BY id DESC";
$envoi=mysql_query($requete);
while($infos=mysql_fetch_array($envoi))
{
	$id=$infos['id'];
	$titre=$infos['titre'];
	$message_court=$infos['message_court'];
	$message_long=$infos['message_long'];
	$date=$infos['date'];
	$auteur=$infos['auteur'];

	echo "$id | $titre | $message_court | $message_long | $date | $auteur";
}

?>
Et après, je me tape l'erreur suivante :

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Web\Apache2\htdocs\intranet\news.php on line 10

Posté : 13 févr. 2006, 17:11
par Hubert Roksor
Visiblement il y a une erreur lors de l'exécution de ta requête. Essaie mysql_error() pour savoir laquelle.

PS: utilise mysql_fetch_assoc() plutôt que mysql_fetch_array()
PPS: je te recommande vivement d'utiliser toujours le même nom pour la variable qui représente le résultat d'une requête, ça minimise les risques d'erreurs

Extrait corrigé
$requete = 'SELECT *
            FROM news
            ORDER BY id DESC';
$resultat = mysql_query($requete);

if (!$resultat)
{
   trigger_error('Erreur dans la requête: ' . mysql_error(), E_ERROR);
}

while ($infos = mysql_fetch_assoc($resultat))

Posté : 13 févr. 2006, 17:13
par Mouki
Fais un :
if ( $envoi)
avant de fr le while...

Posté : 13 févr. 2006, 17:13
par Sineljogy
J'ai essayé avec while ($infos = mysql_fetch_assoc($envoi)) ça ne marche pas.

Mais là j'ai terminé le boulot... Je continue demain, je vous redis ! ;)

Merci déjà pour ça !

Posté : 13 févr. 2006, 17:16
par Hubert Roksor
Mmh, si tu lis le manuel PHP (et il faut toujours lire le manuel PHP quand on ne connait pas une fonction par cœur) tu verras qu'il n'y a pas de grosse différence entre mysql_fetch_array() et mysql_fetch_assoc() si ce n'est que le deuxième correspond exactement à ton usage alors que le premier fait des trucs en plus qui ne servent à rien.

Posté : 14 févr. 2006, 09:07
par Sineljogy
C'est bon j'ai fait une connerie.... Comme ça le matin à froid, c'est tout de suite logique...

En gros, j'ai créé un utilisateur dans ma BDD qui n'avait aucun droit... c'est malin et j'étais pourtant sûr du contraire... :?

Bon ben merci à vous et à la prochaine !