ЮЛ
Юлия Лобынцева

В цикле выводится только первая запись

function setCurrentBlock($BlockName)
{
$query = mysql_query("SELECT `username`, `tplusr`, `message`, `tplmsg`, `block` FROM `guestMVC`") or die(mysql_error());
$blck = preg_match_all("/(?:\{$BlockName\})([\D]+)(?:\{\/$BlockName\})/u", $this->html, $blk);
foreach($blk[1] as $ss=>$qq)
while($sql = mysql_fetch_assoc($query))
{
$this->html = str_replace($blk[0], $blk[1], $this->html);
$bb = str_replace($sql['tplusr'], $sql['username'], $qq);
$qqq = str_replace($sql['tplmsg'], $sql['message'], $bb);
$this->html = str_replace($qq, $qqq, $this->html);
}
/*
$qq(строка) -
Имя человека: {USERNAME}
Его комментарий:
{USERCOMMENT}

$qqq(строка) -
Имя человека: Анна
Его комментарий:
Отличненько было!! !

Имя человека: Михаил
Его комментарий:
Проверка 2! Сообщение!

....
....
*/
Выводится только первая запись.
Имя человека: Анна
Его комментарий:
Отличненько было!!!

Как понять два раза fetch?

Даже если это сработает, в чем я сомневаюсь, это издевательство. Еще идеи есть, что бы оптимизировать как-то. Сейчас попробую Ваш вариант.

К сожалению, ничего не дало. Так же один первый комментарий.

Не совсем понимаю куда вы клоните....

Что assoc возвращает ассоциативный массив я знаю. Но почему причем здесь это?
Если у меня есть строка $qqq
Имя человека: Анна
Его комментарий:
Отличненько было!! !

Имя человека: Михаил
Его комментарий:
Проверка 2! Сообщение!

Имя человека: Александр
Его комментарий:
Привет всем! Првоерка

Имя человека: {Сан Саныч}
Его комментарий:
{ПРИВЕТ ВСЕМ ОТ САН САНЫЧА!! }
И есть строка $qq -
Имя человека: {USERNAME}
Его комментарий:
{USERCOMMENT}

Имя человека: {USERNAME}
Его комментарий:
{USERCOMMENT}

Имя человека: {USERNAME}
Его комментарий:
{USERCOMMENT}

Имя человека: {USERNAME}
Его комментарий:
{USERCOMMENT}

Я просто делаю замену строки 1 на строку 2.

Наведите, пожалуйста, на ошибку.

ЛД
Людмила Дроздова

а ты без while попробуй два раза дернуть fetch - может, он второй раз уже и не отрабатывает

как-как

$sql = mysql_fetch_assoc($query))
$this->html = str_replace($blk[0], $blk[1], $this->html);
$bb = str_replace($sql['tplusr'], $sql['username'], $qq);
$qqq = str_replace($sql['tplmsg'], $sql['message'], $bb);
$this->html = str_replace($qq, $qqq, $this->html);

$sql = mysql_fetch_assoc($query))
$this->html = str_replace($blk[0], $blk[1], $this->html);
$bb = str_replace($sql['tplusr'], $sql['username'], $qq);
$qqq = str_replace($sql['tplmsg'], $sql['message'], $bb);
$this->html = str_replace($qq, $qqq, $this->html);

это не издевательство.
это проверка того, что у тебя fetch во второй раз срабатывает. потому что если не сработает - ты сразу знаешь, куда копать

ну, теперь тебе всего лишь надо выяснить, как работает mysql_fetch_assoc.
вдруг он все записи вынимает за раз, а?

ох.
набираем в гугле: mysql_fetch_assoc
первая ссылка:
http://php.net/manual/en/function.mysql-fetch-assoc.php

Похожие вопросы
Кто может накрутить мне 250 лайков на первую запись!?
Выводится только одна запись
Вордпресс выводит сто тыщ раз одну и ту же запись!
Програмисты плиз. Вордпресс выводит сто тыщ раз одну и ту же запись! как сделать чтобы по 5 выводило?
Вордпресс по циклу выводит дофигищу раз один и тот же пост - в чем может быть проблема?
Цикл For в JavaScript.не выводит результат.
С++ Пoчему цикл if просит назвать издательство, даже если num не равно 1? и почему запись "неверное число" не выводится?
Что написать чтобы цикл выводил несколько раз одно и то же число в браузер
Как сделать цикл с выводом переменной в TextBox с задержкой?
сделайте пожалуйста программу чтоб выводила числа от 1 до 10 через цикл for