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 :

Construction d'un flux RSS à partir de la base : résultats partiels


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 35
    Points : 32
    Points
    32
    Par défaut Construction d'un flux RSS à partir de la base : résultats partiels
    Bonjour,

    Je viens de faire un flux rss cependant j'ai un probléme avec mes résultats lors de la requete. J'ai 18 réponses en base cependant que 9 reponses s'affichent

    VOila mon code si quelqu'un a une idée ca serait sympa.


    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
    $db = @mysql_connect("$dbhost", "$dblogi", "$dbpass") OR DIE("Désolé, la Base est Down !");
    @mysql_select_db("$dbbase",$db) OR DIE;
     
    $query = "SELECT * FROM projets where voir='0' ORDER BY date DESC";
    $result = mysql_query ($query) or die("La requette a échouée : ".mysql_error());
    $nb_msg = mysql_num_rows($result);
     
    // édition du début du fichier XML
    $xml = '<?xml version="1.0" encoding="iso-8859-1"?><rss version="2.0">';
    $xml .= '<channel>'; 
    $xml .= '<title>Liste des projets</title>';
    $xml .= '<link>http://www.monsite.fr</link>';
    $xml .= '<description>Réalisations</description>';
     
    // extraction des informations et ajout au contenu
    while ($msg_data = mysql_fetch_array($result)){
    	$titre = utf8_decode($msg_data[titre]);
    	$lien = $msg_data[url];
    	$texte = htmlentities($msg_data[description]);
     
    	$xml .= '<item>';
    	$xml .= '<title>'.$titre.'</title>';
    	$xml .= '<link>'.$lien.'</link>';
    	$xml .= '<description>'.$texte.'</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);

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Citation Envoyé par atchoumen
    Je viens de faire un flux rss cependant j'ai un probléme avec mes résultats lors de la requete. J'ai 18 réponses en base cependant que 9 reponses s'affichent
    Citation Envoyé par atchoumen
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query = "SELECT * FROM projets where voir='0' ORDER BY date DESC";
    Vous avez une condition ici, en serait-elle la cause ?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 35
    Points : 32
    Points
    32
    Par défaut
    Oupsss excuse moi il est vrai que je n'ai pas tous très bien expliqué.

    J'ai 34 résultats dans ma base. Ma condition voir='0' me permet de resortir seulement les résultats accessible aux internautes. Si je l'enleve j'ai bien 34 résultats mes idem 17 s'affichent seulement

    En gros ca divise toujours par deux mes résultats !

    J'avoue ne pas comprendre. Le code est pourtant simple.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    J'ai fait un simple essai (XML valide - testé avec DOM) et je n'ai rien trouvé d'anormal (mis à part le htmlentities qui est inadapté, le manque des quotes pour les clés du tableau et l'utf8_decode qui pourrait être inutile suivant les jeux de caractères utilisés). Votre code est au complet ? Vous n'avez qu'un seul appel à une des fonctions mysql_fetch_* dans celui-ci ?

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 35
    Points : 32
    Points
    32
    Par défaut
    Salut,

    Merci pour ta réponse. En ce qui concerne mon code oui il est complet je n'utilise que ca pour générer mon fichier xml et le remplir.

    Quand au utf8_decode si je ne le mes pas j'ai des losanges noir au lieu de certain caractere.
    Au niveau du htmlentities tu me conseillerais quoi a la place ?

    Sinon si tu as un tuto a me proposer pour créer mon flux rss je suis preneur.

    Merci pour ton aide

Discussions similaires

  1. Décodage de caractères à partir d'un flux RSS
    Par dafalri dans le forum Langage
    Réponses: 7
    Dernier message: 16/09/2008, 16h53
  2. [XML] Création d'un flux RSS à partir des données en base
    Par Misoss dans le forum Bibliothèques et frameworks
    Réponses: 14
    Dernier message: 01/07/2008, 17h03
  3. [SimpleXML] Génération d'un flux RSS à partir d'une base de données
    Par gpsevasion dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 12/09/2007, 19h08
  4. Flux RSS à partir d'une DB d'Access
    Par gregorius100 dans le forum Modélisation
    Réponses: 1
    Dernier message: 15/05/2007, 07h11
  5. [Librairies] Flux RSS en PHP4 à partir d'un code en PHP5 valide
    Par ffrag dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 09/05/2006, 14h16

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