qawsed1
11.01.2013 - 18:25
Всем привет.
Я тут написал элементарнейший чат, проще некуда.
В БД таблица с сообщениями:
`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
11.01.2013 - 18:31
Цитата |
Вопрос №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
11.01.2013 - 18:38
> ajax'ом дёргать
скрипт вывода сообщений из БД
А можно конкретней?
Я даже не знаю что это)
Игорь_Vasinsky
11.01.2013 - 18:48
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 ) {
xmlhttp = new XMLHttpRequest();
} else {
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
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.