Warning: mysql_fetch_array(): supplied argument is not a val

Eléphant du PHP | 59 Messages

26 oct. 2006, 22:34

Bonsoir,
Je me suis amusé à effectuer le tuto pour générer un fichier xml a partir d'une base mysql

Vous trouverez ci dessous le code utilisé :
<?php

// édition du début du fichier XML
$xml = '<?xml version="1.0" encoding="iso-8859-1"?><rss version="2.0">';
$xml .= '<channel>'; 
$xml .= '<title>Flus RSS Micro Label</title>';
$xml .= '<link>http://www.microlabel.fr</link>';
$xml .= '<description>Canal RSS Infos Entrprise MICRO LABEL</description>';

$host = "localhost";
$user = "root";
$pwd = "";
$base = "test";
// connexion a la base
@mysql_connect($host,$user,$pwd) or die("Connexion impossible");
@mysql_select_db($base) or die("Echec de selection de la base");

// selection des 5 dernieres news
$res=mysql_query("SELECT * FROM rss ORDER BY date DESC LIMIT, 5");

// extraction des informations et ajout au contenu
while($tab=mysql_fetch_array($res)){   
	//$id=$tab[id];
	$titre=$tab[titre];
	$lien=$tab[lien];
	$description=$tab[description];
	$date=$tab[date];
	$date2=date("D, d M Y H:i:s", strtotime($date));

	$xml .= '<item>';
	$xml .= '<title>'.$titre.'</title>';
	$xml .= '<link>'.$lien.'</link>';
	$xml .= '<pubDate>'.$date2.' GMT</pubDate>'; 
	$xml .= '<description>'.$description.'</description>';
	$xml .= '</item>';	
}

// édition de la fin du fichier XML
$xml .= '</channel>';
$xml .= '</rss>';

// écriture dans le fichier
$fp = fopen("flux.xml", 'w+');
fputs($fp, $xml);
fclose($fp);
@mysql_close();

?>
Je me retrouve avec le message d'erreur suivant :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\rss\test.php on line 22
export de la base :
-- phpMyAdmin SQL Dump
-- version 2.8.1
-- http://www.phpmyadmin.net
--
-- Serveur: localhost
-- Généré le : Jeudi 26 Octobre 2006 à 22:30
-- Version du serveur: 5.0.22
-- Version de PHP: 5.1.4
--
-- Base de données: `test`
--

-- --------------------------------------------------------

--
-- Structure de la table `rss`
--

CREATE TABLE `rss` (
`titre` varchar(220) NOT NULL,
`lien` varchar(220) NOT NULL,
`description` varchar(200) NOT NULL,
`date` timestamp NOT NULL default CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Contenu de la table `rss`
--

INSERT INTO `rss` VALUES ('RSS TITRE TEST', 'http://www.microlabel.fr', 'description test je veux voir si ca marche', '2006-10-26 22:00:31');
Si quelqu'un avait la gentillesse de se pencher sur ce pb.
Je vous remercie par avance.

Excellente soirée

ViPHP
ViPHP | 1961 Messages

26 oct. 2006, 22:38

Bonsoir,

Es-tu sur de ce code
$res=mysql_query("SELECT * FROM rss ORDER BY date DESC LIMIT, 5"); 
As-tu testé le retour de cette instruction ?
Je prévois un die avec SYNTAX ERROR, donc $res est null, d'où ton message d'erreur.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 59 Messages

26 oct. 2006, 22:54

Merci de m'avoir répondu
Je viens de faire le test en enlevant cet argument
LIMIT, 5
Pb de syntaxe ?

Eléphant du PHP | 59 Messages

26 oct. 2006, 22:58

Merci de ton aide le pb venait de la virgule apres LIMIT j'aurais du commencé par la
Merci encore bonne soirée

ViPHP
ViPHP | 1961 Messages

26 oct. 2006, 22:59

Re,

En ayant enlevé ta condition, ça fonctionne ?

De toutes manières c'est plus correct de l'écrire comme ça
$res=mysql_query("SELECT * FROM rss ORDER BY date DESC LIMIT 5") or die ('ERR SQL : ' . mysql_error());
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein