[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Чат
qawsed1
Всем привет.
Я тут написал элементарнейший чат, проще некуда.

В БД таблица с сообщениями:
`id` int(11) NOT NULL auto_increment,
`author` int(11) NOT NULL,
`time` int(11) NOT NULL,
`text` text NOT NULL,

И вывод на страницу:
$q = "SELECT * FROM `chat` ORDER BY `time` DESC LIMIT 100";
$db = mysql_query($q);
while($ins = mysql_fetch_array($db)) {
...
}

Вопрос №1: как сделать так, чтобы данные обновлялись автоматически не перезагружая страницу?

Вопрос №2: информация о дате написания сообщения хранится в формате time(). Можно ли сделать так, что при выводе недавних сообщений, если оно написано сегодня, вчера и позавчера, то выводить не date("d.m.Y H:i", $ins['time']) а просто словом "Сегодня в H:i" или "Вчера ...", "Позавчера ..."?

Пробовал вот такую конструкцию, но она корректна не всегда:
if(date("Ymd", $ins['time']) == date("Ymd", time())) echo 'Сегодня в '.date("H:i", $ins['time']);
if(date("Ymd", $ins['time']) - (int) 1 == date("Ymd", time())) echo 'Вчера в '.date("H:i", $ins['time']);
if(date("Ymd", $ins['time']) - (int) 2 == date("Ymd", time())) echo 'Вчера в '.date("H:i", $ins['time']);
Игорь_Vasinsky
Цитата
Вопрос №1: как сделать так, чтобы данные обновлялись автоматически не перезагружая страницу?

ajax'ом дёргать скрипт вывода сообщений из БД

Цитата
Вопрос №2: информация о дате написания сообщения хранится в формате time(). Можно ли сделать так, что при выводе недавних сообщений, если оно написано сегодня, вчера и позавчера, то выводить не date("d.m.Y H:i", $ins['time']) а просто словом "Сегодня в H:i" или "Вчера ...", "Позавчера ..."?


да,
проверяй дату с текущей (т.е. если разница меньше суток в секундах)
отнимай сутки, 2е суток - в секундах

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
qawsed1
> ajax'ом дёргать скрипт вывода сообщений из БД

А можно конкретней? smile.gif Я даже не знаю что это)
Игорь_Vasinsky
messages.php - выборка сообщений из БД с лимитом и порядком сортировки


Поставишь в head
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>


<script type="text/javascript">
function ajaxcl () {
var xmlhttp;
if ( window.XMLHttpRequest ) {
// IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {
// IE6, IE5
xmlhttp = new ActiveXObject ( "Microsoft.XMLHTTP" );
}
// обрабатываем ответ
xmlhttp.onreadystatechange = function () {
// если запрос к скрипту удачный
if ( xmlhttp.readyState == 4 ) {

document.getElementById("messages").innerHTML=xmlhttp.responseText;

}
}

// отправляем запрос
xmlhttp.open ( "GET", "messages.php?rand="+Math.random(), true );
xmlhttp.send ();
setTimeout('ajaxcl();', 1000);
}
$(document).ready(ajaxcl());
</
script>


Цитата
  setTimeout('ajaxcl();', 1000);

скорость обновления списка сообщений

сообщения будут отображаться в div id="messages"

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.