Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   PHP (http://www.flasher.ru/forum/forumdisplay.php?f=20)
-   -   Cортировать сообшения... (http://www.flasher.ru/forum/showthread.php?t=54139)

silgd 28.01.2004 22:26

Cортировать сообшения...
 
Hey guys!

ести Tree-Structure форум, как мне можно сортировать сообшения
наприм:
есть сообшение недельной давности, само сабой оно находится не в начале форума а по середине, когда кто то ответил на ето сообшение оно сразу становится первим в списке вместе со своими ответами(reply)

* что то похожее как в етом форуме
Please Help!

juggy 29.01.2004 00:15

[list=1][*]Структуру таблицы[*]Код форума[*]Немного мозгов[*]Немного мыслей[*]Всё в этот топик немедленно![/list=1]

silgd 29.01.2004 00:35

MySQL Table:
------------------
parent
poster
title
body
postedDate
postedTime
postid (auto_increment)
forumId
------------------

Tree function:
PHP код:

# TREE
function get_tree($parent_id 0$prefix "") {
    global 
$out;
    
$query "SELECT * FROM madforum_posts WHERE forumId = '$_GET[forumId]' AND parent = '$parent_id' ORDER BY postid DESC, postedDate DESC";
    
$result mysql_query($query);
    while (
$row mysql_fetch_array($result)) {
    
$out .=  "<tr class=\"msgtd\"><td>".$prefix."<img src=\"img/bulet.gif\"> <a href=javascript:showComm("$row['postid'] .")>".$row['title']."</a> <font class=\"poster\">".$row['poster']."</font></td><td align=left><font class=\"poster\">".$row['postedDate']." ".$row['postedTime']."</font></td></tr><tr><td id=CommTD_"$row['postid'] ." style=display:none;padding-right:15px; colspan=2 class=\"msgtd\"><img src=../images/dot.gif width=1 height=10><br><hr size=1 width=100% color=#cccccc>".preg_replace('/\n/i''<br />'$row['body'])."<hr size=1 width=100% color=#cccccc><img src=../images/dot.gif width=1 height=10><br></td></tr>";
    
get_tree($row['postid'], $prefix."<img src=../images/dot.gif width=15 height=1>");
    }
return 
$out;


Forum Index Page:
PHP код:

# INCLUDE REQUIRED FUNCTIONS
include("lib/db_fns.php");
include(
"lib/header.php");
include(
"lib/footer.php");
include(
"lib/tree_fns.php");

# MySQL QUERY
$ResultForumName mysql_query("SELECT forumTitle FROM madforum_forums WHERE forumId = '$_GET[forumId]'");
$RowForumName mysql_fetch_array($ResultForumName);

# MAIN PROGRAMM CALCULATION
header_frm("My Forum: ".$RowForumName[forumTitle]);
echo 
"<b>".$RowForumName[forumTitle]."</b><p>";
echo 
"<table cellpadding=\"1\" cellspacing=\"0\" width=\"100%\" align=\"right\" border=\"0\">";
echo 
get_tree();
echo 
"</table>";
footer(); 

Дальше выходит вот так:

1
|
+ - 2
| |
| + - 3
| + - 4
|
+ - 5
....

silgd 29.01.2004 00:48

Код:

MySQL Table:
------------------
CREATE TABLE `madforum_posts` (
  `parent` int(11) NOT NULL default '0',
  `poster` varchar(20) NOT NULL default '',
  `title` varchar(58) NOT NULL default '',
  `body` longtext,
  `postedDate` varchar(10) default NULL,
  `postedTime` varchar(5) default NULL,
  `postid` int(10) unsigned NOT NULL auto_increment,
  `forumId` int(10) default NULL,
  PRIMARY KEY  (`postid`)
) TYPE=MyISAM AUTO_INCREMENT=9 ;
------------------


advocat 29.01.2004 12:41

я только одного не пойму, что мешает написать тебе нормальный клас, и не делать тучу запросов к БД, а обрабатывать массивы ? Соответственно и проблем меньне, да и нетолько такую задачу решить можно ...


Часовой пояс GMT +4, время: 02:57.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.