IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

creer une page RSS


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 29
    Par défaut creer une page RSS
    salut tous le monde j'ai un site sous forme du bibliothèque des music tout les information enregistrer dans mySQL je veux faire un flux RSS pour afficher tous les chanteur, album recement ajouté

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2012
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2012
    Messages : 131
    Par défaut
    Bonjour,
    rien de plus simple
    le format rss est un format xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?xml version="1.0" encoding="iso-8859-1"?>
    <rss version="2.0">
        <channel>
            <title>Mon site</title>
            <description>Ceci est un exemple de flux RSS 2.0</description>
            <lastBuildDate>Sat, 07 Sep 2002 00:00:01 GMT</lastBuildDate>
            <link>http://www.example.org</link>
            <item>
                <title>Actualité N°1</title>
                <description>Ceci est ma première actualité</description>
                <pubDate>Sat, 07 Sep 2002 00:00:01 GMT</pubDate>
                <link>http://www.example.org/actu1</link>
            </item>
        </channel>
    </rss>
    le bloc item ci desous represente une ligne de table music, donc tu fait une boucle et tu met autant d'items que de lignes de donnees

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 29
    Par défaut
    merci pour ton reponse mais comment je peu l'utuliser est ce que je doit integrer dans une page php pour que je peux connecté a une base de donnée explique moi plus stp

  4. #4
    Membre Expert
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 494
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 494
    Par défaut
    Salut,

    en faisant une rapide recherche google avec 3 mots-cles,
    tu trouveras ton bonheur

    developpez php rss
    1) ghostdogpr.developpez.com/articles/rss/
    2) lgmorand.developpez.com/dotnet/integration-rss/
    3) baptiste-wicht.developpez.com/tutoriels/php/rss/
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 29
    Par défaut
    salut j'ai beaucoup chercher jusqu'aux j'ai trouvé ce code il ça marche très bien comme je veux mais j'ai trouvé un problème c'est que je veux selectionné deux table en même temps

    1ere table : albums
    id
    album_name
    artist_id

    2eme table : artists
    id
    artist_name

    dans ce code j’utilise la table albums et je souhaite intergrer le "artist_name"


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
     
    <?php
    /* **********************************
     * PARTIE 1 : BASE MYSQL
     * **********************************
     */
    	// Préparation de la connexion
    	$mysql_host = 'localhost';
    	$mysql_usr  = 'root';
    	$mysql_pwd  = '';
    	$mysql_db   = 'inshad';
     
    	$conn = mysql_connect($mysql_host, $mysql_usr, $mysql_pwd) or die(mysql_error());
    	mysql_select_db($mysql_db, $conn) or die(mysql_error());
     
    	// Préparation de la requête
    	$req_derniersfilms = "SELECT id, album_name, artist_id FROM albums ORDER BY id DESC  LIMIT 0,10;";
     
    	// Exécution de la requête
    	$derniersfilms = mysql_query($req_derniersfilms) or die($req_derniersfilms."<br />\n".mysql_error());
     
    	// On place maintenant la réponse de la requête dans un tableau PHP :
    	$array_films = array();
     
    	if (mysql_num_rows($derniersfilms) > 0) // il y a au moins un film
    	{
    		while ($f = mysql_fetch_array($derniersfilms))
    		{
    			$array_films[$f['id']]['album_name'] = $f['album_name'];
    			$array_films[$f['id']]['artist_id'] = $f['artist_id'];
    			$array_films[$f['id']]['id'] = $f['id'];
    //			$array_films[$f['id']]['name'] = $f['name'];
    //			$array_films[$f['id']]['url'] = $f['url'];
    		};
    	};
    	// fin de la partie 1
     
    /* **********************************
     * PARTIE 2 : FORMATAGE DU DOCUMENT
     * **********************************
     */
     
    	// détection du type de flux demandé
    	$feed = (isset($_GET['feed'])) ? strtoupper($_GET['feed']) : '';
    	if (($feed != 'RSS') && ($feed != 'ATOM')) { $feed = 'RSS'; } // simple précaution ...
     
    	// maintenant, selon le type de flux demandé, on prépare un flux de formatage différent :
    	$rss = ''; // on initialise la variable
     
    	if ($feed == 'RSS')
    	{
    		// On écrit le prologue du flux RSS 2.0 :
    		$rss .= '<?xml version="1.0" encoding="windows-1256"?>'."\n";
    		$rss .= '<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">'."\n";
     
    		// le channel est l'entête du flux ... on y renseigne :
    		$rss .= '	<channel>'."\n";
    		// le titre du site (attention aux caractères spéciaux ...)
    		$rss .= '		<title>PHP-Astux : le site de NewsletTux !</title>'."\n";
    		// l'URL (adresse) du site
    		$rss .= '		<link>http://www.php-astux.info</link>'."\n";
    		// la description du site (attention aux caractères spéciaux ...)
    		$rss .= '		<description>PHP-Astux propose des articles pour création Web ainsi que NewsletTux, outil de mailing list en PHP MySQL</description>'."\n";
    		// la langue du flux
    		$rss .= '		<language>fr</language>'."\n";
    		// la date de publication (qui m'a posé pas mal de problèmes)
    		$rss .= '		<pubDate>'.date('D, d M Y H:i:s O').'</pubDate>'."\n";
    		// la date de construction du flux
    		$rss .= '		<lastBuildDate>'.gmdate('D, d M Y H:i:s').' GMT</lastBuildDate>'."\n";
    		// 2 lignes pour l'auteur du document
    		$rss .= '		<managingEditor>no-reply@php-astux.info (PHP-Astux)</managingEditor>'."\n";
    		$rss .= '		<webMaster>no-reply@php-astux.info (PHP-Astux)</webMaster>'."\n";
    		$rss .= '		<ttl>5</ttl>'."\n";
    		// cette ligne est très importante, elle DOIT être l'URL de la page du flux
    		$rss .= '		<atom:link href="http://www.le_site.tld/flux_rss?feed=RSS" rel="self" type="application/rss+xml" />'."\n";
     
    		// maintenant, il ne reste plus qu'à insérer les données !
    		foreach($array_films as $film_id => $film)
    		{
    			// chaque film sera encadré d'un bloc item
    			$rss .= '		<item>'."\n";
    			// titre du film (ou du bloc d'info) : je choisis de mettre [Genre] Titre
    			$rss .= '			<title>'.htmlspecialchars(html_entity_decode($film['album_name'])).'</title>'."\n";
    			// lien direct vers ce bloc
    			$rss .= '			<link>http://www.a7la-nachid.net/inshad/album/'.$film['id'].'/'.$film['album_name'].'</link>'."\n";
    			// je choisis d'y mettre le synopsis, puis, à la fin, le nom de l'acteur principal
    			$rss .= '			<description>'.htmlspecialchars($film['album_name'], ENT_NOQUOTES).' </description>'."\n";
    			// la date de sortie du film, encodée selon une RFC
    			// le lien vers la fiche du film
    			$rss .= '			<guid>http://www.a7la-nachid.net/inshad/album/'.$film['id'].'/'.$film['album_name'].'</guid>'."\n";
    			$rss .= '		</item>'."\n";
    		};
     
    		// et maintenant, on ferme le contenu du flux RSS ...
    		$rss .= '	</channel>'."\n";
    		$rss .= '</rss>'."\n";
    	};
     
    	if ($feed == 'ATOM')
    	{
    		// pour le format ATOM, les commentaires sont sensiblement équivalents.
    		// Seuls changent certaines balises et certains formats (de date notamment).
     
    		// On écrit le prologue du flux ATOM 1.0 :
    		$rss .= '<?xml version="1.0" encoding="ISO-8859-15"?>'."\n";
    		$rss .= '<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">'."\n";
     
    		// pas de channel en ATOM...
     
    		// le titre du site (attention aux caractères spéciaux ...)
    		$rss .= '	<title>PHP-Astux : le site de NewsletTux !</title>'."\n";
    		// la description du site (attention aux caractères spéciaux ...)
    		$rss .= '	<subtitle>PHP-Astux propose des articles pour création Web ainsi que NewsletTux, outil de mailing list en PHP MySQL</subtitle>'."\n";
    		// cette ligne est très importante, elle DOIT être l'URL de la page du flux
    		$rss .= '	<link rel="self" href="http://www.le_site.tld/flux_rss?feed=ATOM" type="application/atom+xml" />'."\n";
     
    		// la date de publication (qui m'a posé pas mal de problèmes)
    		$rss .= '	<updated>'.date('Y-m-d\TH:i:s\Z').'</updated>'."\n";
    		// pour l'auteur du document
    		$rss .= '	<author>'."\n";
    		$rss .= '		<name>Matthieu</name>'."\n";
    		$rss .= '		<email>no-reply@php-astux.info</email>'."\n";
    		$rss .= '	</author>'."\n";
    		// l'URL du site
    		$rss .= '	<id>http://www.le_site.tld</id>'."\n";
     
     
    		// maintenant, il ne reste plus qu'à insérer les données !
    		foreach($array_films as $film_id => $film)
    		{
    			// chaque film sera encadré d'un bloc entry
    			$rss .= '		<entry>'."\n";
    			// titre du film (ou du bloc d'info) : je choisis de mettre [Genre] Titre
    			$rss .= '			<title>'.htmlspecialchars(html_entity_decode($film['album_name']), ENT_NOQUOTES).' </title>'."\n";
    			// lien direct vers ce bloc
    			$rss .= '			<link href="http://www.a7la-nachid.net/inshad/album/'.$film['id'].'/'.$film['album_name'].'" />'."\n";
    			// ID de ce bloc : il doit être unique
    			$rss .= '			<id>http://www.a7la-nachid.net/inshad/album/'.$film['id'].'/'.$film['album_name'].'</id>'."\n";
    			// la date de sortie du film, encodée selon une RFC
    			$rss .= '			<updated>'.date('Y-m-d\TH:i:s\Z', $film['album_name']).'</updated>'."\n";
    			// résumé du bloc (accessibilité ...)
    			$rss .= '			<summary>'.htmlspecialchars($film['album_name'], ENT_NOQUOTES).'</summary>'."\n";
    			// ce bloc permet de mettre de la mise en forme dans le flux (XHTML Strict seulement !!!)
    			$rss .= '			<content type="xhtml">'."\n";
    			$rss .= '				<div xmlns="http://www.w3.org/1999/xhtml">'.$film['album_name'].'</div>'."\n";
    			$rss .= '			</content>'."\n";
    			$rss .= '		</entry>'."\n";
    		};
    		// et maintenant, on ferme le contenu du flux RSS ...
    		$rss .= '</feed>'."\n";
    	};
    	// fin partie 2
     
    /* **************************************
     * PARTIE 3.1 : PRESENTATION DU FLUX RSS
     * **************************************
     */
     
    	$fp = fopen("rss.xml", 'w+');
    	fputs($fp, $rss);
    	fclose($fp);
     
    	// fin partie 3.1
     
    /* **************************************
     * PARTIE 3.2 : PRESENTATION DU FLUX RSS
     * **************************************
     */
     
    	// On envoie les headers XML / no cache
    	header('Content-Type: text/xml');
    	header('Expires: '.gmdate('D, d M Y H:i:s').' GMT');
    	header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    	header('Pragma: public');
     
    	// maintenant qu'on a indiqué au navigateur qu'on lui envoyait du XML,
    	// on envoie le flux
    	echo $rss;
     
    	// fin partie 3.2
     
    	mysql_close();
    ?>
     
    	<link rel="alternate" type="application/rss+xml" href="rss.xml" />
    	<link rel="alternate" type="application/rss+xml" href="flux_rss?feed=ATOM" />
    	<link rel="alternate" type="application/rss+xml" href="flux_rss?feed=RSS" />

  6. #6
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    dans ce code j’utilise la table albums et je souhaite intergrer le "artist_name"
    Ce n'est pas si compliqué que ça, il suffit de faire une jointure (de tables) entre ces 2 tables "album" et "artits".
    Tout le principe de base d'une BDD repose la dessus (sa conception qui va avec).

    Exemple :
    requête SQL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $req_derniersfilms = "SELECT al.id, al.album_name, ar.artist_id, ar.artist_name
    FROM albums AS al
    JOIN artists AS ar ON al.artist_id = ar.id
    ORDER BY al.id DESC
    LIMIT 0,10";
    J'ai rajouté des alias aux tables, histoire de simplifier l'écriture de la requête (al pour album et ar pour artiste).

    Puis dans la boucle while on pourra exploiter le nom des artistes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $array_films[$f['id']]['id'] = $f['id']; // Cette ligne ne sert à rien (doublon)
    $array_films[$f['id']]['album_name'] = $f['album_name'];
    $array_films[$f['id']]['artist_id'] = $f['artist_id'];
    $array_films[$f['id']]['artist_name'] = $f['artist_name'];
    //$array_films[$f['id']]['url'] = $f['url'];
    Cette 1ère ligne ne sert à rien, on peu la supprimer, car la valeur clé du tableau $array_films c'est déjà la valeur de $f['id'] (se sont les mêmes).
    Du coup, dans les parties qui génère le flux RSS et ATOM, il suffit d'exploiter $film_id (et non plus $film['id']).

    J'ai laissé ci-dessus en commentaire le champ "url" car je ne sais pas de quelle table il vient.

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 29
    Par défaut
    merci mon ami tous fonctionne très bien ^_^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Creer une page personnalisée
    Par Flamby38 dans le forum SharePoint
    Réponses: 5
    Dernier message: 01/06/2007, 20h25
  2. Comment créer une page HTML à partir du code behind ?
    Par totoche9 dans le forum ASP.NET
    Réponses: 6
    Dernier message: 01/08/2006, 13h52
  3. creer une page avec timer pour 2 URLS
    Par anubisme dans le forum Langage
    Réponses: 4
    Dernier message: 21/04/2006, 11h03
  4. [Système] Creer une page d'attente....
    Par Paulux1 dans le forum Langage
    Réponses: 2
    Dernier message: 02/03/2006, 16h56
  5. [servlet][jsp] Creer une page de login
    Par Beuj dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 19/03/2004, 17h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo