Aller au contenu

Sujets conseillés

Posté (modifié)

Bonjour, je suis débutant en la matière. Je dois sur mon site et sa base de donné installer ce script:

<?php

// La table s'appelle news, les variables utilisées sont :
//datepubli : bigint(20)  --> Date de publication de la news (timestamp crée avec la fonction time(); ).
//titre : varchar  --> Titre de la news
//description : varchar  --> Description de la news
//id : tinyint(3)  --> id de la news pour le lien

function gen_RSS() {

// En-tête du flux RSS version 2.0
$xml = '<?xml version="1.0" encoding="UTF-8"?><rss version="2.0">';
$xml .= '<channel><title>Francefootball.org</title>
<link>http://www.francefootball.org</link>';
$xml .= '<description>description de votre site</description><language>fr-fr</language>
<copyright>Copyright 2005 monsite.com</copyright>';

// Ajout de la date actuelle de publication (suivant la DTD RSS)
$xml .= '<lastBuildDate>'.date("D, d M Y H:i:s").' GMT</lastBuildDate>';

// En-tête suite et fin
$xml .= '<docs>http://www.stervinou.com/projets/rss/</docs>
<category>Catégorie de votre site</category><managingEditor>managingEditor_AT_monsite.com</managingEditor><webMaster>adresse_AT_mail.com</webMaster>';
$xml .= '<ttl>60</ttl>
<image><title>Francefootball.org</title><url>http://www.monsite.com/logo.gif</url><link>http://www.francefootball.org</link></image>';

// paramêtres de connection à votre base de donnée
mysql_connect($localhost,$francefootball_org,$motdepasse);
mysql_select_db($francefootball_org_1);

// Sélection des 10 premières news triées de la plus récente à la plus ancienne
$Result = mysql_query("SELECT * FROM news ORDER BY datepubli DESC LIMIT 0,10");

// Creation des items : titre + lien + description + date de publication
while($val=mysql_fetch_array($Result)) {
$xml .= '<item>';
$xml .= '<title>'.$val["titre"].'</title>';
$xml .= '<link>http://www.francefootball.org/modules/wfsection/article.php?articleid='.$val["id"].'</link>';
$xml .= '<description>'.$val["description"].'</description>';
$xml .= '<pubDate>'.date("D, d M Y H:i:s",$val["datepubli"]).' GMT</pubDate>';
$xml .= '</item>';
}

// Déconnexion
mysql_close();

// Fin du flux
$xml .="</channel></rss>";

// Ecriture du flux dans un fichier xml
$fp = fopen("rss.xml", 'w+');
     fputs($fp, $xml);
fclose($fp);

}
?>

Donc je n'arrive a rien, si quelqu'un pouvait mexpliquer pas a pas, la demarche a suivre, c'est super important svp... Je sais que les débutant sont parfois enervant car ils peuvent pas vous aider sur vos problemes mais ce serai tellement sympa qu'on mexplique pas a pas ce que je dois faire...

Notamment pour les trucs du haut avec Varchar et tout... :huh:

Merci bcp !!!

Modifié par marius120
Posté (modifié)

Salut,

Qu'est ce qui ne marche pas exactement ? A première vue, ton code me semble bon. Y a ptet la gestion des dates qu'est pas exacte sur deux points :

- fonction gmdate plutôt que date puisque tu es en GMT

- la notion de timestamp entre MySQL et PHP n'est pas forcément la même. Je préfère utiliser le type MySQL DATETIME et faire mes conversions en PHP. C'est plus lourd mais je "vois" mieux ce qu'il se passe. Le code :

sscanf($news[$i]["pubdate"],"%04d-%02d-%02d %02d:%02d:%02d",$annee,$mois,$jour,$heure,$minute,$seconde);
$ts=gmmktime($heure,$minute,$seconde,$mois,$jour,$annee);
$pubdate=gmdate("D, d M Y",$ts)." ".$heure.":".$minute.":".$seconde." GMT";
fputs($f,"<pubDate>".$pubdate."</pubDate>\n");

Et sinon, je mets "<![CDATA[" et "]]>" dans <description></description> afin de gérer du HTML.

En espérant t'avoir aidé...

Antoine

Modifié par AntoineViau
Posté

Bah ce qui ne va pas c'est que je ne sais pas du tout comment installer cela sur ma base mysql...

Je sais juste creer une table qui s'apelle news.

Le reste je ne sais pas comment faire.

Posté

il faut creer une base de données ou utiliser celle qui est founie par le fournisseur

Il faut creer un table news et les champs qui sont decrits au debut dans la table avec phpadmin par exemple.

Ensuite il faut mettre a jour la table avec php admin par exemple

puis lancer le fichier gen_rss.php il cree un fichier rss.xlm et c'est ce fichier que tu dois appeller dans ton lien RSS

exemple http://dupont.free.fr/rss.xlm a mettre dans rssreader par exemple

ce programme a pour origine code source mais tu peux aussi modifier la fin et mettre

echo ( $xml );

a la place de

$fp = fopen("rss.xml", 'w+');

fputs($fp, $xml);

fclose($fp);

et dans ce cas il faut mettre http://dupont.free.fr/gen_rss.php dans le programme rssreader par exemple

ce qui peut arriver aussi c'est que si tu as installé les programme dans un sous repertoire exemple /Rss que tu ne puisses pas ecrire dans le repertoire il faut essayer de mettre

$fp = fopen("../rss.xml", 'w+');

de toute facon il faut chercher le fichier rss.xml

bon courage

Andco

andco_AT_caramail.com

Posté

Donc en fait, pour la base MySQL il y a juste les 4 lignes a mettre?

Le reste dans le fichier nommé gen_RSS.php sur mon FTP , c'est ca?

Parce que ca fonctionne toujours pas....

Posté

creer la table dans mysql

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

CREATE TABLE `news` (

`id` tinyint(3) NOT NULL auto_increment,

`description` varchar(250) NOT NULL default '',

`titre` varchar(250) NOT NULL default '',

`datepubli` varchar(250) NOT NULL default '',

PRIMARY KEY (`id`)

) TYPE=MyISAM AUTO_INCREMENT=6 ;

tu peux faire un copier coller dans phpadmin dans l'onglet SQL tu executes et ca creer la table

ensuite

tu executes le scrip en php

Posté
ah j'oubliait il faut quand meme rentrer des infos dans les tables

Boncourage

<{POST_SNAPBACK}>

Excuse moi, je dois etre chiant comme mec, mais c'est quelle genre d'info à rentrer dans les tables? :blush:

Posté

il a quelque chose que je ne comprend pas ou j'ai pas tout suivi.

pourquoi veux tu mettre en place un flux Rss ?

Un flux Rss sert a diffuser le d'information aux gens qui auront rentré l'adresse de ton flux sur leur lecteur de flux.

Donc il faut bien que tu saisisses de l'info

Donc tu va en phpadmin et tu peux mettre a jour tes tables

exemple

datepubli le 12/04/2005 --> Date de publication de la news (timestamp crée avec la fonction time(); ).

titre resultat de la reunion du comite truc machin --> Titre de la news

description il aété decidé que ect . --> Description de la news

id : tinyint(3) --> id de la news pour le lien

et c'est tout ca que les gens abonnés a ton flux vont recuperer

tu peux eventuellement apres ajouter un lien vers un site etc...

Mais je crois qu'il faut te poser des questions en amont. Que veux tu faire d'un flux Rss ?

Amicalement

Andy

Posté

dans ce cas il faut modifier le programme gen_rss.php pour qu'il puisse aller chercher les infos dans la table qui alimente ton site ou il semble y avoir des resultats de foot a confition que ces infos soient bien dans une table Mysql.

il faut trouver l'equlivalent des données titres id ... mias il faut modifier le programme gen_rss.php car lui il ne sait lire que dans la table news.

Il y a un peu de programmation php a faire pour faire l'adaptation

Andy

Posté

Ah ok! Parce que moi je pensais que ce fichier, à condition de mettre bien l'URL de ou se trouve les articles, le faisait (automatisation)..

Ouais donc j'oublie ce projet... Déjà si j'arrive meme pas à installer ce genre de code, modifier du php et reperer les données dans les tables existantes c'est meme pas la peine.

Peut etre qu'un jour, une personne sortira un petit programme capable de le faire... J'attendrai !

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...