Пмогите решить проблемы вывода сообщений чата

HelpFinder

Новичок
Пмогите решить проблемы вывода сообщений чата

Написал программу - чат простейший. Что видимо непредусмотрел. Всё очень просто. Нижний фрейм добавляет в базе текст при отправке данных формы. В базе этот текст появляется - проверено. Мне надо чтобы скрипт находящийся в другом фрейме выводил каждую новую запись после её появления. Как мне это лучше сделать? чтобы было всё красиво, плавно. Вот что сделал я. Но не работает обновление экрана.
PHP:
	$rez_max_id=$db->Query("select max(id) as maximum from room");
	if($rez_max_id->Count()){
		$phrase_id=$rez_max_id->FetchAssoc();
		$max_id=$phrase_id["maximum"];
	}else{
		$max_id=0;
	}
	$db->Close();
                set_time_limit(0);
	while(1){
		$db=new CDB();  // класс для работы с базой данных. работает проверено.
		$messages=$db->Query("select * from room where id>".$max_id);
		if($messages->Count()){
			while($msg=$messages->FetchAssoc()){
				echo $msg["who"].":".$msg["text"]."<br>";
				$max_id=$msg["id"];
			}
		}
		$db->Close();
		flush();
		usleep(50000);
	}
Точнее работать то работает - всё считывает, но на экране пусто. зацикливает и на экран не отображает. Если я искуственно зная записи таблицы прерываю внешний цикл и начальное значение присваиваю индексу первой записи, то на экране разумеется появляются все сообщения которые вышли. А тут скрипт зацикливается и не работает. он считывает всё что надо, но на экране не отображает. Может надо сделать чтобы он не в цикле работал, а рапускался раз в сколько то секунд?
 

HelpFinder

Новичок
Да там нет шибки в алгоритме. я же отлаживал всё в Zend студио пошагово. Проблема в обновлении экрана. Цикл непрерывно обращается к базе данных и если там оказывается новая запись, то он выводит её на экран. дальше опять ждёт. так должно быть в идеале. так и есть но то что он выводит не видно.
 

HelpFinder

Новичок
Не подскажите как это сделать? Внутри самого php файла должна быть задана команда перезапуска самого себя, или же в фрейме откуда этот скрипт вызывается до лжен стоять Java Sctipt запускающий его раз в 5 секунд?
Если не сложно посоветуйте как сделать это?
 

Фанат

oncle terrible
Команда форума
самого php файла должна быть задана команда перезапуска
пора бы уже прочитать фак на танке.
и узнать из него, что пхп скрипты не ЗАПУСКАЮТСЯ. не запускают сами себя. ты ещё скажи, чтобы он и браузер в компьютере клиента открывал.
скрипт выполняется ТОЛЬКО ПО ЗАПРОСУ КЛИЕНТА

в фрейме откуда этот скрипт вызывается до лжен стоять Java Sctipt запускающий его раз в 5 секунд
 
Сверху