| у пользователя в профиле выводятся его последние комментарии
если есть ответ на его комментарий то вывести напротив самого комментария есть ответ
static $massiv, $massiv2, $massiv3;
$user_id = intval($uid);
$user_name = htmlspecialchars(substr($name, 0, 25));
if (!is_array($massiv)) {
$result = $db->sql_query("SELECT id, cid, modul, UNIX_TIMESTAMP(date) as formatted, comment FROM ".$prefix."_comment WHERE uid='".$user_id."' ORDER BY id DESC");
while (list($id, $cid, $modul, $formatted, $comment) = $db->sql_fetchrow($result)) $massiv[] = array($id, $cid, $modul, $formatted, $comment);
}
if (!is_array($massiv3)) {
$result3 = $db->sql_query("SELECT a.id, a.parentid, Count(b.parentid) AS tmp FROM ".$prefix."_comment AS b INNER JOIN ".$prefix."_comment AS a ON (a.id=b.parentid) GROUP BY a.id, a.parentid");
while (list($cid, $parentid, $summ) = $db->sql_fetchrow($result3)) $massiv3[$cid] = array($parentid, $summ, $summ, 0, $cid);
if ($db->sql_numrows($result3) > 0) {
foreach ($massiv3 as $key => $val) {
$flag = $val[0];
while ($flag!=0) {
$massiv3[$flag][2] = $massiv3[$flag][2] + $val[1];
$massiv3[$flag][3] = $massiv3[$flag][3] + $val[1];
$flag = $massiv3[$flag][0];
}
}
}
}
if ($massiv) {
foreach ($massiv as $key => $val) {
$num = ($massiv3[$val[0]][2]) ? $massiv3[$val[0]][2] : 0;
echo "$val[0]-$val[1]-$val[4]($num)<br />\n";
}
}
|
подскажите пожалуйста как это сделать правильно
CREATE TABLE IF NOT EXISTS `cms_comment` (
`id` int(11) NOT NULL auto_increment,
`cid` int(11) NOT NULL default '0',
`modul` varchar(60) NOT NULL default '',
`date` datetime default NULL,
`uid` int(11) NOT NULL default '0',
`name` varchar(25) NOT NULL default '',
`host_name` varchar(60) default NULL,
`comment` text NOT NULL,
`status` int(1) NOT NULL,
`votes` int(10) NOT NULL,
`totalvotes` int(11) NOT NULL,
`parentid` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `cid` (`cid`),
KEY `uid` (`uid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=172 ;
--
-- Дамп данных таблицы `cms_comment`
--
INSERT INTO `cms_comment` (`id`, `cid`, `modul`, `date`, `uid`, `name`, `host_name`, `comment`, `status`, `votes`, `totalvotes`, `parentid`) VALUES
(1, 42981, 'news', '2011-03-30 18:13:41', 7, '', '109.173.110.229', 'ааааааааааааааа', 1, 1, 1, 0),
(11, 42981, 'news', '2011-03-30 18:15:00', 7, '', '109.173.110.229', 'проверка тест<br />\r\nааааа', 1, 1, 1, 0),
(21, 42981, 'news', '2011-03-30 18:15:10', 7, '', '109.173.110.229', 'еще еще ще', 1, -1, 1, 1),
(31, 42981, 'news', '2011-03-30 18:15:20', 7, '', '109.173.110.229', 'апапапапапа апапаппа апапапа', 1, -2, 2, 21),
(41, 42981, 'news', '2011-03-30 18:15:29', 7, '', '109.173.110.229', 'тут enne ne en ene en ene en', 1, 0, 2, 31),
(51, 42981, 'news', '2011-03-30 18:15:36', 7, '', '109.173.110.229', 'ttttttttttttttttttttttttttttt', 1, 2, 2, 41),
(61, 42981, 'news', '2011-03-30 20:06:37', 21, '', '178.140.131.205', 'проверка', 1, 1, 1, 0),
(101, 61, 'news', '2011-03-31 11:10:44', 7, '', '89.31.88.75', 'ответ на алмаза', 1, 0, 0, 0),
(91, 42981, 'news', '2011-03-31 11:10:24', 7, '', '89.31.88.75', 'ggggggggggggggggg', 1, 0, 0, 0),
(111, 42981, 'news', '2011-03-31 11:16:18', 7, '', '89.31.88.75', 'ответ алмазу', 1, 0, 0, 61),
(121, 42981, 'news', '2011-03-31 11:29:45', 21, '', '89.31.88.75', 'Еще один коммент', 1, 0, 0, 31),
(131, 42981, 'news', '2011-03-31 11:46:09', 7, '', '89.31.88.75', 'rere', 1, 0, 0, 121),
(141, 42981, 'news', '2011-03-31 11:47:46', 7, '', '89.31.88.75', 'полная жесть', 1, 0, 0, 131),
(151, 42981, 'news', '2011-03-31 11:49:34', 7, '', '89.31.88.75', 'ввввввввввввв', 1, 0, 0, 21),
(161, 42981, 'news', '2011-03-31 11:49:51', 7, '', '89.31.88.75', 'ответ на ответ', 1, 0, 0, 91),
(171, 42981, 'news', '2011-03-31 11:50:12', 7, '', '89.31.88.75', 'просто так', 1, 0, 0, 21);
|
| |