[Résolu] Forum du site meta-morphos: classement par date

15 sujets de 1 à 15 (sur un total de 15)

  • papiosaur

      #6167

      Bonjour à tous,

      Je cherche un programmeur en HTML.

      Je voudrais réaliser un classement des posts dans le tableau du site par ordre du plus récent au plus ancien.

      Merci beaucoup !!!

      voici le script:

      function MM_forumP()

      {

      global $NPDS_Prefix,$cookie,$user;

      $maxcount = « 8 »;

      $mbid = sql_fetch_row(sql_query(« SELECT uid FROM « .$NPDS_Prefix. »users WHERE uname = ‘$cookie[1]' »));

      $MM_forumP .= ‘

      .’

      .’

      .’

      .’

      .’

      .’

      .’

      .’

      ‘;

      $result = sql_query(« SELECT distinct topic_id FROM « .$NPDS_Prefix. »posts WHERE forum_id > 0 ORDER BY post_id DESC LIMIT $maxcount »);

      $count = sql_num_rows($result);

      if ($count > 0)

      if ($count > $maxcount) $count = $maxcount;

      $ibid = 0;

      $forum_limit = 0;

      while ($forum_limit < $count) { list($topic_id) = sql_fetch_row($result); list($post_id, $forum_id, $poster_id, $time) = sql_fetch_row(sql_query(« SELECT post_id, forum_id, poster_id, post_time FROM « .$NPDS_Prefix. »posts WHERE topic_id = $topic_id ORDER BY post_id DESC LIMIT 1 »)); $forum_limit++; if ($topic_id!=0) list($topic_title) = sql_fetch_row(sql_query(« SELECT topic_title, forum_id FROM « .$NPDS_Prefix. »forumtopics WHERE topic_id=$topic_id »)); if ($forum_id!=0) list($forum_name,$forum_type,$forum_pass) = sql_fetch_row(sql_query(« SELECT forum_name, forum_type, forum_pass FROM « .$NPDS_Prefix. »forums WHERE forum_id = $forum_id »)); if (($forum_type == « 5 ») or ($forum_type == « 7 »)) { $ok_affich = false; $tab_groupe = valid_group($user); $ok_affich = groupe_forum($forum_pass, $tab_groupe); } else { $ok_affich = true; } if ($ok_affich) { if ($poster_id != 0) list($uname) = sql_fetch_row(sql_query(« SELECT uname FROM « .$NPDS_Prefix. »users WHERE uid = $poster_id »)); if ($forum_limit % 2) { $MM_forumP .= ‘

      ‘;

      } else {

      $MM_forumP .= ‘

      ‘;

      }

      $sqlR = « SELECT rid FROM « .$NPDS_Prefix. »forum_read WHERE topicid = ‘$topic_id’ AND uid = ‘$mbid[0]’ AND status != ‘0’ »;

      if ($ibid = theme_image(« forum/icons/hot_red_folder.gif »))

      {

      $imgtmpHR = $ibid;

      }

      else

      {

      $imgtmpHR = « images/forum/icons/hot_red_folder.gif »;

      }

      if ($ibid = theme_image(« forum/icons/hot_folder.gif »))

      {

      $imgtmpH = $ibid;

      }

      else

      {

      $imgtmpH = « images/forum/icons/hot_folder.gif »;

      }

      if ($ibid = theme_image(« forum/icons/red_folder.gif »))

      {

      $imgtmpR = $ibid;

      }

      else

      {

      $imgtmpR = « images/forum/icons/red_folder.gif »;

      }

      if ($ibid = theme_image(« forum/icons/folder.gif »))

      {

      $imgtmpF = $ibid;

      }

      else

      {

      $imgtmpF = « images/forum/icons/folder.gif »;

      }

      if ($ibid = theme_image(« forum/icons/lock.gif »))

      {

      $imgtmpL = $ibid;

      }

      else

      {

      $imgtmpL= »images/forum/icons/lock.gif »;

      }

      $TableRep = sql_query(« SELECT * FROM « .$NPDS_Prefix. »posts WHERE topic_id = ‘$topic_id' »);

      $replys = sql_num_rows($TableRep)-1;

      $hot_threshold = 10;//Nbres sujets chauds

      if ($replys >= $hot_threshold)

      {

      if (sql_num_rows(sql_query($sqlR))==0)

      $image = $imgtmpHR;

      else

      $image = $imgtmpH;

      }

      else

      {

      if (sql_num_rows(sql_query($sqlR))==0)

      $image = $imgtmpR;

      else

      $image = $imgtmpF;

      }

      if ($myrow[topic_status]!=0)

      $image = $imgtmpL;

      $MM_forumP .= ‘

      .’

      .’

      .’

      .’

      .’

      ‘;

      }

      }

      $MM_forumP .= ‘

      .’

      ‘.aff_langue(‘[french]Etats[/french][english]State[/english]’).’ ‘ .aff_langue(‘[french]Forums[/french][english]Forums[/english]’).’ ‘.aff_langue(‘[french]Sujets[/french][english]Topic[/english]’).’ ‘.aff_langue(‘[french]Réponse(s)[/french][english]Replie[/english]’).’ ‘.aff_langue(‘[french]Derniers Auteurs[/french][english]Last author[/english]’).’ ‘.aff_langue(‘[french]Dates[/french][english]Date[/english]’).’
      ‘.$forum_name.’ ‘.$topic_title.’ ‘.$replys.’ ‘.$uname.’ ‘.$time.’

      ‘;

      return ($MM_forumP);

      }

      Modération de BatteMan : Sujet déplacé dans le forum « Développement ».

      www.amigang-store.com

      Pixel

        #102045

        slt,

        attends, je pose le cerveau. Ton script, c’est du javascript j’ai du mal avec la chaleur cette aprés midi

        :-D

        papiosaur

          #102046

          autant pour moi :-(

          www.amigang-store.com

          slobman

            #102047

            Hip !!

            Ca ressemble plus à du PHP, en fait, non ?

            Sinon, ce qu’il faut, c’est surtout modifier la requête SQL pour changer le ORDER BY.

            A la place du « ORDER BY post_id desc », tu mets un « ORDER BY post_time desc », et ça devrait marcher.

            !! qiH

            papiosaur

              #102048

              je me suis un peu emballé, je pensais que ça fonctionné mais il n’en ai rien :-(

              www.amigang-store.com

              slobman

                #102049

                Hip !!

                Hum… Et ça dit quoi ?

                !! qiH

                papiosaur

                  #102050

                  rien du tout, c’est ça qui est bizarre ;)

                  www.amigang-store.com

                  Amilord

                    #102051

                    hum tel quel, sans modif le script fonctionne ?


                    @slobman

                    apparement si il est ORDER BY post_id DESC, a priori le numero de post le plus récent est déjà le premier affiché si post_id est en auto incremente non ? ;-)

                    papiosaur

                      #102052

                      bonjour Amilord,

                      oui, j’ai fait un copié-collé du script qui fonctionne ;)

                      www.amigang-store.com

                      slobman

                        #102053

                        Hip !!

                        De ce que je comprends, le script fonctionne, mais ne retourne pas ce qui est souhaité…

                        J’aimerais bien avoir accès à ta base pour voir ce qu’elle donne cette requête sql.

                        A l’heure actuelle, qu’est-ce qui est affiché ?


                        @Amilord
                        : le truc, c’est qu’on ne peut l’affirmer sans avoir la définition complète de ce champ post_id… Même si on peut en effet penser qu’il est en auto-incrémenté… Mais Si c’était vraiment le cas, ça marcherait tel quel.

                        !! qiH

                        papiosaur

                          #102054

                          j’ai trouvé ça dans la base de données:

                          #


                          #

                          # Structure de la table ‘forum_attachments’

                          #

                          DROP TABLE IF EXISTS forum_attachments;

                          CREATE TABLE forum_attachments (

                          att_id int(11) NOT NULL auto_increment,

                          post_id int(11) DEFAULT ‘0’ NOT NULL,

                          topic_id int(11) DEFAULT ‘0’ NOT NULL,

                          forum_id int(11) DEFAULT ‘0’ NOT NULL,

                          unixdate int(11) DEFAULT ‘0’ NOT NULL,

                          att_name varchar(255) NOT NULL,

                          att_type varchar(64) NOT NULL,

                          att_size int(11) DEFAULT ‘0’ NOT NULL,

                          att_path varchar(255) NOT NULL,

                          inline char(1) NOT NULL,

                          apli varchar(10) NOT NULL,

                          compteur int(11) DEFAULT ‘0’ NOT NULL,

                          visible tinyint(1) DEFAULT ‘0’ NOT NULL,

                          KEY att_id (att_id),

                          KEY post_id (post_id),

                          KEY topic_id (topic_id),

                          KEY apli (apli),

                          KEY visible (visible),

                          KEY forum_id (forum_id)

                          );

                          #

                          # Contenu de la table ‘forum_attachments’

                          #

                          #


                          #


                          #

                          # Structure de la table ‘forum_read’

                          #

                          DROP TABLE IF EXISTS forum_read;

                          CREATE TABLE forum_read (

                          rid int(11) NOT NULL auto_increment,

                          forum_id int(10) DEFAULT ‘0’ NOT NULL,

                          topicid int(3) DEFAULT ‘0’ NOT NULL,

                          uid int(11) DEFAULT ‘0’ NOT NULL,

                          last_read int(15) DEFAULT ‘0’ NOT NULL,

                          status tinyint(1) DEFAULT ‘1’ NOT NULL,

                          PRIMARY KEY (rid),

                          KEY topicid (topicid),

                          KEY forum_id (forum_id),

                          KEY uid (uid),

                          KEY forum_read_mcl (forum_id, uid, topicid, status)

                          );

                          #


                          #

                          # Structure de la table ‘forums’

                          #

                          DROP TABLE IF EXISTS forums;

                          CREATE TABLE forums (

                          forum_id int(10) NOT NULL auto_increment,

                          forum_name varchar(150),

                          forum_desc text,

                          forum_access int(10) DEFAULT ‘1’,

                          forum_moderator text,

                          cat_id int(10),

                          forum_type int(10) DEFAULT ‘0’,

                          forum_pass varchar(60),

                          arbre tinyint(1) unsigned DEFAULT ‘0’ NOT NULL,

                          attachement tinyint(1) unsigned DEFAULT ‘0’ NOT NULL,

                          forum_index int(2) unsigned DEFAULT ‘0’ NOT NULL,

                          PRIMARY KEY (forum_id)

                          );

                          #


                          #

                          # Structure de la table ‘forumtopics’

                          #

                          DROP TABLE IF EXISTS forumtopics;

                          CREATE TABLE forumtopics (

                          topic_id int(10) NOT NULL auto_increment,

                          topic_title varchar(100),

                          topic_poster int(10),

                          topic_time datetime,

                          topic_views int(10) DEFAULT ‘0’ NOT NULL,

                          forum_id int(10),

                          topic_status int(10) DEFAULT ‘0’ NOT NULL,

                          topic_notify int(2) DEFAULT ‘0’,

                          current_poster int(10),

                          topic_first tinyint(1) DEFAULT ‘1’ NOT NULL,

                          PRIMARY KEY (topic_id),

                          KEY forum_id (forum_id),

                          KEY topic_first (topic_first, topic_time)

                          );

                          En espérant que ça puisse t’aider ;)

                          www.amigang-store.com

                          slobman

                            #102055

                            Hip !!

                            Et la définition de la table posts ?

                            !! qiH

                            papiosaur

                              #102056

                              c’est ça ?

                              #


                              #

                              # Structure de la table ‘posts’

                              #

                              DROP TABLE IF EXISTS posts;

                              CREATE TABLE posts (

                              post_id int(10) NOT NULL auto_increment,

                              post_idH int(10) DEFAULT ‘0’ NOT NULL,

                              image varchar(100) NOT NULL,

                              topic_id int(10) DEFAULT ‘0’ NOT NULL,

                              forum_id int(10) DEFAULT ‘0’ NOT NULL,

                              poster_id int(10),

                              post_text text,

                              post_time varchar(20),

                              poster_ip varchar(16),

                              poster_dns text,

                              post_aff tinyint(1) unsigned DEFAULT ‘1’ NOT NULL,

                              PRIMARY KEY (post_id),

                              KEY forum_id (forum_id),

                              KEY topic_id (topic_id),

                              KEY post_aff (post_aff)

                              );

                              www.amigang-store.com

                              frost

                                #102057

                                Il vaut mieux voir la colonne post_id comme une clé technique et se servir de celle qui contient explicitement la date du post.. Enfin je dis ça mais c’est un peu comme prendre un épluche légume pour couper son steak.

                                papiosaur

                                  #102058

                                  Normalement le problème va être résolu par Bechris d’ici demain soir.

                                  Je vous remercie tous de votre aide !!!

                                  A+

                                  www.amigang-store.com

                                15 sujets de 1 à 15 (sur un total de 15)

                                • Vous devez être connecté pour répondre à ce sujet.

                                Forums AmigaOS, MorphOS et AROS Développement [Résolu] Forum du site meta-morphos: classement par date

                                Amiga Impact