| |
|
|
| | Вот такой вопрос:
У меня есть файл в котором хранятся все сообщения в чате... Надо что бы только что зашедший пользователь видел сообщения которые писались с момента когда он зашёл и позже (то есть что бы сообщения написаные до его прихода он не видел)... на ум приходит только сверять дату сообщения с датой захода пользователя, но может есть более нормальный способ? Использую SAJAX, PHP и MySQL (ну MySQL там играет минимальную роль, показывает кто в ОНЛАЙНЕ и дату захода пользователя...) | |
| |
|
|
| |
|
|
| |
для: DEM
(04.11.2006 в 01:56)
| | | так и делай | |
| |
|
|
| |
|
|
| |
для: DEM
(04.11.2006 в 01:56)
| | | Так и поступают обычно, например, на этом форуме реализована такая же схема - отображаются новые сообщения с момента последнего обращения пользователя к страницам сайта. | |
| |
|
|
| |
|
|
| |
для: DEM
(04.11.2006 в 01:56)
| | | Хм... вот теперь стал вопрос как имено так сделать :(
<?php
$file = file("wall.html");
$oa = mysql_fetch_array(mysql_query("SELECT * FROM online WHERE login='".$_SESSION['login']."'"));
for($cht=0;$cht<=count($file)-1;$cht++)
{
$exp[$cht] = explode("|", $file[$cht]);
if($exp[$cht]['1']>=$oa['time_zahod'])
{
$lines = $file[$cht];
}
}
?>
|
Но что-то не получается :( Файл имеет вид
НИК|ДАТА|СООБЩЕНИЕ | |
| |
|
|
| |
|
|
| |
для: DEM
(04.11.2006 в 13:10)
| | | Дата какой формат имеет? UNIXSPAMP? | |
| |
|
|
| |
|
|
| |
для: cheops
(04.11.2006 в 13:21)
| | | Дата заносится так:
date("h:i:s")
Поле в котором оно хранится (в Мускуле), типа time | |
| |
|
|
| |
|
|
| |
для: DEM
(04.11.2006 в 13:26)
| | |
<?php
function refresh()
{
$file = file("wall.html");
$oa = mysql_fetch_array(mysql_query("SELECT * FROM online WHERE login='".$_SESSION['login']."'"));
for($cht=0;$cht<=count($file)-1;$cht++)
{
$exp[$cht] = explode("|", $file[$cht]);
if($exp[$cht]['1']>=$oa['time_zahod'])
{
$lines = $file[$cht];
}
}
return join("\n", array_slice($lines, -200));
}
?>
|
Так не работает... а если напистаь просто:
<?php
function refresh()
{
$lines = file("wall.html");
return join("\n", array_slice($lines, -200));
}
?>
|
То он выводит полностью весь файл :( | |
| |
|
|
| |
|
|
| |
для: DEM
(05.11.2006 в 14:13)
| | | if($exp[$cht]['1']>=$oa['time_zahod'])
{
$lines = $file[$cht];
}
$lines тут у вас не массив, а строка получается ... а чтобы добавить строку в массив используйте
$lines[] = $file[$cht]; | |
| |
|
|
| |
|
|
| |
для: kasmanaft
(05.11.2006 в 20:15)
| | | Большое-прибольшое спасибо! Наконец-то заработало!!! Несколько дней долбался не получалось. а потом просто обозначил $lineas массивом и сделал как ты сказал... фу-у-ух... | |
| |
|
|