[Script]Afficher les 7 derniers posts d'un fo

JooS Messages postés 2705 Statut Membre -  
Smoking bird Messages postés 911 Statut Membre -
Bonsoir, je suis en train de créer un script a fin d'afficher les derniers postes d'un forum phpBB, j'ai chercher des scripts prêts mais il y en a pas, donc j'ai décider de le faire seul...

alors, je me suis assez débrouillé coté php, mais je suis bloqué dans le sql, je sais que je dois faire une requête, mais comment préciser que je veut les 7 derniers postes du forum??

et dites moi si c'est a peut prés ça...

SELECT * 
FROM `phpbb_posts` 
...Précision sur la demande des 7 derniers messages...


Merci...
Configuration: Windows Vista
Safari 525.19

5 réponses

  1. JooS Messages postés 2705 Statut Membre 228
     
    up...

    personne...
    0
  2. Smoking bird Messages postés 911 Statut Membre 58
     
    select * from phpbb_posts order by id desc limit 7


    order by indique à partir de quelle donnée on va ordonner tes résultats, ça peut être numérique ou alphabétique

    desc signifie descendant et asc signifie ascendant

    limit est un paramètre indiquant le nombre d'enregistrements que tu veux, en l'occurence, 7
    0
    1. JooS Messages postés 2705 Statut Membre 228
       
      re, l'étoile * veut dire tout le champ, non?!, parcontre moi je veut afficher que les titres des topics et en tant que liens,

      desc, mais c'est en suivant quoi, le temp??

      donc ça donnerai ça

      $reponse = mysql_query("SELECT <le titre???> FROM phpbb_posts order by id desc LIMIT 0, 7");



      merci...
      0
  3. Smoking bird Messages postés 911 Statut Membre 58
     
    re, l'étoile * veut dire tout le champ, non?!, parcontre moi je veut afficher que les titres des topics et en tant que liens

    l'étoile signifie en effet tous les champs, bien entendu on recommande fortement d'éviter de l'utiliser^^ mais je ne connais pas la construction de ta table^^

    desc, mais c'est en suivant quoi, le temp??

    Non, c'est en suivant la colonne spécifiée dans le order by, là c'est order by id, donc chronologiquement, mais pas en fonction des dates précises, juste en fonction de l'ordre d'enregistrement^^

    donc ça donnerai ça

    $reponse = mysql_query("SELECT nom,id FROM phpbb_posts order by id desc LIMIT 0, 30");

    là tu récupère les 30 derniers enregistrements^^
    0
    1. JooS Messages postés 2705 Statut Membre 228
       
      oupps désolé, je l'ai modifier en retard ^^

      ben je suis en train d'essayer en localhost, alors regarde tout le script, et dit moi si il manque quelque chose car ça marche toujours pas...

      <?php
      mysql_connect("localhost", "root", "");
      mysql_select_db("phpbb");
       
      $reponse = mysql_query("SELECT * FROM phpbb_posts order by id desc LIMIT 0, 7");
       
      while ($donnees = mysql_fetch_array($reponse) )
      {
          echo $donnees['*'];
       
      mysql_close();
      ?>
      



      je pense que a la place de l'étoile * je dois mettre post_subject
      mais je crois que ceci n'afficherai que du texte ???!!!!

      si je changé order by id par order by post_time, est ce que c'est juste???

      Merci...
      0
  4. Smoking bird Messages postés 911 Statut Membre 58
     
    while ($donnees = mysql_fetch_array($reponse) )
    {
        echo $donnees['*'];//on ne fait JAMAIS de $donnees['*'], c'est une erreur monumentale, et d'ailleurs elle est même bloquée, parce qu'il s'agit d'une faille de sécurité. De plus, ton navigateur ne saurait pas où et quoi afficher, ni comment. Tu dois dire quel champ précis tu affiches:
        echo $donnees['id'];//affichera donc l'id
    }//n'oublis pas de fermer tes while
    mysql_close();/ /fermer la connexion sql dans un while fait que tu n'auras qu'un seul résultat, puis plus rien venant de ta bdd où que ce soit après
    0
    1. JooS Messages postés 2705 Statut Membre 228
       
      ben toujours rien, je te remercie quand même, je dois me reposer un peu, peut être que c'est ça le problème ^^

      alors a demain...

      bonne nuit...
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. JooS Messages postés 2705 Statut Membre 228
     
    Bonsoir, ^^, je viens de trouver et de rédiger un script assez simpa qui permet d'afficher les dernier posts, mais...ce derniers ne s'intègre pas a mes pages web, qui veut dire que rien ne s'affiche comme ici, pour qu'il fonctionne il faut que je l'intègre dans une page vierge comme ceci...

    pourquoi, et que dois je faire pour qu'il s'integre dans mes pages web????

    <?php
    define('IN_PHPBB', TRUE);
    
    $phpbb_root_path = 'Forum/';
    $phpEx = substr(strrchr(__FILE__, '.'), 1);
    include($phpbb_root_path . 'common.' . $phpEx);
    
    
    // Start session management
    $user->session_begin();
    $user->setup(''); 
    
    $sql = 'SELECT p.*, t.*, u.user_id, u.username FROM ' . POSTS_TABLE . ' p JOIN ' . TOPICS_TABLE . ' t JOIN ' . USERS_TABLE . ' u 
          ON p.topic_id = t.topic_id 
          AND  u.user_id = p.poster_id 
          ORDER BY p.post_id DESC LIMIT 12';
    $result = $db->sql_query($sql);
    while ($row = $db->sql_fetchrow($result))
    {      
    echo 'Sujet: <a href="'.append_sid($phpbb_root_path . 'viewtopic.php?t=' . $row['topic_id']).'" target="_blank"  >' . $row['topic_title'] . "</a><br />";
    
    }
    
    ?>


    merci...
    0
    1. Smoking bird Messages postés 911 Statut Membre 58
       
      tu peux être plus précis? tu as fait des essais? que se passe-t-il?
      0
      1. JooS Messages postés 2705 Statut Membre 228 > Smoking bird Messages postés 911 Statut Membre
         
        ben les essais sont dans les deux liens que j'ai donné, le script fonctionne seulement quand il est en page vierge, quand je l'insère dans une autre page qui comporte mon design ex index, alors il rien ne s'affiche....
        0
      2. Smoking bird Messages postés 911 Statut Membre 58 > JooS Messages postés 2705 Statut Membre
         
        file nous le code intégral de ta page pleine^^
        0