marius120 Posté 10 Avril 2005 Posté 10 Avril 2005 (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 lienfunction 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éemysql_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 publicationwhile($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éconnexionmysql_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... Merci bcp !!! Modifié 10 Avril 2005 par marius120
AntoineViau Posté 11 Avril 2005 Posté 11 Avril 2005 (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é 11 Avril 2005 par AntoineViau
marius120 Posté 11 Avril 2005 Auteur Posté 11 Avril 2005 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.
soude Posté 11 Avril 2005 Posté 11 Avril 2005 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
marius120 Posté 11 Avril 2005 Auteur Posté 11 Avril 2005 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....
soude Posté 11 Avril 2005 Posté 11 Avril 2005 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
soude Posté 11 Avril 2005 Posté 11 Avril 2005 ah j'oubliait il faut quand meme rentrer des infos dans les tables Boncourage
marius120 Posté 12 Avril 2005 Auteur Posté 12 Avril 2005 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?
soude Posté 12 Avril 2005 Posté 12 Avril 2005 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
marius120 Posté 12 Avril 2005 Auteur Posté 12 Avril 2005 C'est à dire que je voulais, que les infos de mon site, venant du modules: http://www.francefootball.org/modules/wfsection ... ...Soient automatisé a partir de la base news que j'aurai mis dans ma base Mysql. Pour que je n'ai pas besoin de taper les infos et les titres à la main. Ainsi je proposerai a mes visiteurs mon fichier xml...
soude Posté 12 Avril 2005 Posté 12 Avril 2005 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
marius120 Posté 12 Avril 2005 Auteur Posté 12 Avril 2005 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 !
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant