так вот, нашел урок в инете там очень простой код:
<?php
$result = mysql_query("SELECT * FROM comments WHERE parent_id=0");
while($row = mysql_fetch_assoc($result)){
getComment ($row);
}?>
и сама фукнция
function getComment ($row) {
echo "<li class=\"coment\">";
echo "<div class=\"author\">".$row['author']."</div>";
echo "<div class=\"text\">".$row['text']."</div>";
echo "<a href=\"#comment_from\" class=\"reaply\" id=\"".$row['comment_id']."\">Ответить</a>";
$res = mysql_query("SELECT * FROM comments where parent_id=".$row['comment_id']);
if (mysql_num_rows($res) > 0) {
echo "<ul>";
while ($res1 = mysql_fetch_assoc($res)){
getComment ($res1);
}
echo "</ul>";
}
echo "</li>";
}
код впринципе лёгкий ни чего сложного
---------------------------------------------------------------------------------------------------- ------------------------------------
но у меня комментарии с парсингом(с движка ирбиса), и такую фишку не могу чёто прокрутить), что делаю:
$cont = getTpl('main/comments/rows');
$cont1 = getTpl('main/comments/rowsp');
function getComment($row,$cont){
$row['date'] = $row['date'];
$row['text'] = createBBtags($row['text']);
$row['id'] = (int)$row['id'];
global $rows;
$rows .= parseTpl($cont, $row);
static $GET;
$result1 = mysqlQuery("SELECT *
FROM `". IRB_DBPREFIX ."guest`
WHERE `model` = '".$GET['news']."' AND `parent_id` = '".$row['id']."'
ORDER BY `id` DESC");
if (mysql_num_rows($result1) > 0) {
while ($rez = mysql_fetch_assoc($result1)){
getComment($rez,$cont1);
}
}
}
while($row = htmlChars(mysql_fetch_assoc($res)))
{
getComment($row,$cont);
}
так вот, цикл с рекурсией - getComment($rez,$cont1); не отрабатывается, выводятся только 1ый шаблон - комментарии $rows .= parseTpl($cont, $row); .. в $cont1 - хранится 1в1 шаблон, там просто отступ будет, чтоб отличать что это ответ на выше пост)
+ в функции приходится обьявлять переменные глобальными + статик, чтобы было без ошибок(( (не знаю правильно ли я так сделал, и безопасно ли обьявлять их глобальными?)
помогите что нужно сделать(
Спустя 21 минута, 36 секунд (16.11.2011 - 19:24) zeromind написал(а):
сделал пока без рекурсии и вообще без функции, только цикл:
комменты выводятся всё отлично, сдвигаются вправо те которые нужно.. но сдвиг 1 раз происходит, т.е. 2 уровня получается, сам пост+ только 1 ответ на него(на этот же ответ уже не получится ответить, смещения не будет, тут мне кажится ресурсия полюбому нужна)

while($row = htmlChars(mysql_fetch_assoc($res)))
{
$row['date'] = $row['date'];
$row['text'] = createBBtags($row['text']);
$row['id'] = (int)$row['id'];
$rows .= parseTpl($cont, $row);
$result1 = mysqlQuery("SELECT *
FROM `". IRB_DBPREFIX ."guest`
WHERE `model` = '".$GET['news']."' AND `parent_id` = '".$row['id']."'
ORDER BY `id` DESC");
if (mysql_num_rows($result1) > 0) {
while ($rez = mysql_fetch_assoc($result1)){
$rez['date'] = $rez['date'];
$rez['text'] = createBBtags($rez['text']);
$rez['id'] = (int)$rez['id'];
$rows .= parseTpl($cont1, $rez);
}
}
}
комменты выводятся всё отлично, сдвигаются вправо те которые нужно.. но сдвиг 1 раз происходит, т.е. 2 уровня получается, сам пост+ только 1 ответ на него(на этот же ответ уже не получится ответить, смещения не будет, тут мне кажится ресурсия полюбому нужна)

Спустя 3 часа, 21 секунда (16.11.2011 - 22:25) Dezigo написал(а):
Это не программирование- это гавно код.
Вы не понемаете как использовать
- функции
- шаблоны
- вы не разделяете логику от контроллера и view.
Вы не понемаете как использовать
- функции
- шаблоны
- вы не разделяете логику от контроллера и view.
Спустя 13 минут, 6 секунд (16.11.2011 - 22:38) PandoraBox2007 написал(а):
Dezigo
походу вы еще работаете на ASP.NET xDDD, чувствую НекроСофтный закос
походу вы еще работаете на ASP.NET xDDD, чувствую НекроСофтный закос
Спустя 13 часов, 56 минут, 26 секунд (17.11.2011 - 12:34) zeromind написал(а):
Цитата (Dezigo @ 16.11.2011 - 22:25) |
Это не программирование- это гавно код. Вы не понемаете как использовать - функции - шаблоны - вы не разделяете логику от контроллера и view. |
с шаблонами у меня действительно трабла, логику от вида я и пытаюсь разделить, иначе бы юзал вариант урока автора...
на самом деле я так и сделал, тупо скопирывал урок, получилось в шаблоне всего ставка 3 строки php кода с циклом..
я не понимаю как работает parseTpl, в частности его повторения, видимости и тд.. думаю вообще стоит присмотрется к СМАРТИ шаблонизации..
в итоге пока получилось такое:
