ЧАТ:: просмотр или есть новая строка или нету????

DEEX

Guest
ЧАТ:: просмотр или есть новая строка или нету????

Привет всем! я тут чат делаю c испольхзованием JavaScript. Так вот тема такая. Ест скрытый фрейм который из базы данных берет даные и средствами JavaScript передает дание на другой фрейм а он их уже отображает.
Пример. Вот что находиться в этом скрытом фрейме:

<script language="JavaScript">
function reload(){
window.location.href="index1.php";}
setTimeout("reload()", 10000);
<?php
include('data_baze.php');
$sql = "SELECT text from text";
$result = mysql_query($sql);

$stringss = mysql_numrows($result);
while($stringss > $x):
$path = mysql_result($result, $x, 'text');
print "parent.m1.document.write(\"$path<br>\");";
$x++;
endwhile;
print "";
?>
parent.m1.scroll(0,1000000);
</script>

Выходит так что в другом фрейме постояно добавляються новые данние. ВОПРОС! Как мне сделать чтоб скрипт проверял что новые сообщения не добавлялись значит ничего не надо отправлять в фрейм. А если какоето сообщение и появилось то только его и отправить на фрейм а не все сообщения.
 

Popoff

popoff.donetsk.ua
PHP:
if(добавлено_ли_сообщение())
  отправить_на_фрейм();
else
  не_отправлять_на_фрейм();
 

DEEX

Guest
и куда мне его вставить???? от куда знать скрипту было сообщение добавлено или нет. может это сообщение старое.
 

php_testik

Guest
Originally posted by DEEX
и куда мне его вставить???? от куда знать скрипту было сообщение добавлено или нет. может это сообщение старое.
При добвление сообшения в б.д. в отдельное поле запиши кол-во микросекунд примерно так

$tim4=explode(".", microtime()); $tim5=explode(" ", $tim4[1]);

результат $tim="$tim5[1]$tim5[0]";

после чего добавь в скрытый фрейм

if(!$lastmsg){
$tim10=explode(".", microtime()); $tim8=explode(" ", $tim10[1]);
$tim9a=$tim8[1]-1;
$tim9b=$tim8[0];
$tim9c="$tim9a$tim9b";
$tim9="$tim8[1]$tim8[0]";
$write_test=0;
}
else{
$tim10=explode(".", microtime()); $tim8=explode(" ", $tim10[1]); $tim9="$tim8[1]$tim8[0]";
$write_test=$tim9;
}

<script language="Javascript">
<!--
function refresh() {
window.location='text.php?lastmsg=<?=$tim9?>';
}
setTimeout('refresh()',10000);
//-->
</script>


и сделай запрос в б.д. что бы выбирало сообщения которые добавленны после $lastmsg
 

php_testik

Guest
Originally posted by DEEX
как постоить правильно этот запрос???
у меня сделано так

$result_1 = @mysql_query("SELECT * FROM $msg_DB$room where tim > $lastmsg order by tim ASC");
$rows_1 = @mysql_num_rows($result_1);


может не совсем правельно ! или может можно быстрее, но этот вариант работает на все 100!
А вообще для каждого чата свой запрос!
Поэтому если взялся сам писать то должен всё сам продумать!!!
 

DEEX

Guest
да я уже сделал... спасибо.... а еще вопросик.... лучше делать конект через функцию mysql_connect или mysql_pconnect.
 

php_testik

Guest
Originally posted by DEEX
да я уже сделал... спасибо.... а еще вопросик.... лучше делать конект через функцию mysql_connect или mysql_pconnect.
Хороший вопрос! все говорят по разному, я сделал через Пконнекн!

-~{}~ 02.02.05 12:12:

Originally posted by DEEX
да я уже сделал... спасибо.... а еще вопросик.... лучше делать конект через функцию mysql_connect или mysql_pconnect.
а вообще как всё заработало?!
 

DEEX

Guest
я сделал немного по дуругому:

<script language="JavaScript">
<?php
include('data_baze.php');
$sql = "SELECT * FROM text";
$result = mysql_query($sql);
$strings1 = mysql_numrows($result);
if($lastmsg){
$sql = "SELECT * FROM text LIMIT $lastmsg, $strings1";
$result = mysql_query($sql);
$strings = mysql_numrows($result);
while($strings > $x):
$text = mysql_result($result, $x, 'text');
print "parent.m1.document.write(\"$text<br>\");";
$x++;
endwhile;
}?>
parent.m1.scroll(0,1000000);
</script>
<script language="Javascript">
<!--
function refresh() {window.location='1_1.php?lastmsg=<? echo $strings1?>';}
setTimeout('refresh()',5000);
//-->
</script>

Просто я думаю если через пконект.. то соединение будет постояным и сервачину не будет грузить а так может и больше нагрузка будет....
 

php_testik

Guest
вместо ?lastmsg=<? echo $strings1?>';}
используй
?lastmsg=<?=$strings1?>';}

проще писать :)

Всё возможно! тут я не советчик!
 

Frol

Новичок
php_testik
впредь, пожалуйста, думай перед тем, как советывать.
 

DEEX

Guest
Frol
а ты как мне лучше посоветуешь делать конект через mysql_connect или mysql_pconnect
 
Сверху