Page 1 sur 1

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

Posté : 26 oct. 2006, 22:34
par energie13
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

Posté : 26 oct. 2006, 22:38
par Ajoloca
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.

LIMIT, 5

Posté : 26 oct. 2006, 22:54
par energie13
Merci de m'avoir répondu
Je viens de faire le test en enlevant cet argument
LIMIT, 5
Pb de syntaxe ?

J'ai trouvé

Posté : 26 oct. 2006, 22:58
par energie13
Merci de ton aide le pb venait de la virgule apres LIMIT j'aurais du commencé par la
Merci encore bonne soirée

Posté : 26 oct. 2006, 22:59
par Ajoloca
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());