Всем привет. Пытаюсь сделать чат, но возникла проблема.
в javascript есть функция load
function Load() {
var lastMsgId = 0;
if(!loadInProgress)
{
loadInProgress = true;
$.post("serverside.php",
{act: "load", LID: lastMsgId},
function(result)
{
lastMsgId = result.lastid;
for (var i in result.text) {
$('#chatwindow').prepend('<div class="messages" id="newmessage"><div class="message_time">'+result.time[i]+'</div><span class="message_name">'+result.name[i]+':</span><span class="message_text">'+result.text[i]+'</span></div>');
$('#newmessage').hide().animate({
opacity: "show",
height: "show"
},550);
$('#newmessage').removeAttr('id');
}
},
"json");
loadInProgress = false;
}
}
она вызывается каждые две секунды setInterval("Load();", 2000);
на серверной стороне есть тоже функция load для загрузки сообщений
function Load()
{
$last_message_id = intval($_POST['lastMsgId']); // возвращает целое значение переменной
$q = mysql_query("SELECT * FROM messages WHERE ( id > $last_message_id ) ORDER BY id DESC");
if( mysql_num_rows($q) > 0 )
{
while( $row = mysql_fetch_array($q) )
{
$messages[] = $row;
}
$last_message_id = $messages[0]['id'];
$messages = array_reverse($messages);
foreach( $messages as $msg )
{
$json['id'][] = $msg['id'];
$json['name'][] = $msg['name'];
$json['text'][] = stripslashes($msg['text']);
$json['time'][] = $msg['time'];
}
$json['lastid'] = $last_message_id;
echo json_encode($json);
unset($json);
}
}
Вопрос такой: в чат снова и снова загружается сообщение в id = 1, хотя в запросе mysql мы выбираем выбрать сообщения с id больше 1
Помогите устранить ошибку.
Примечание:
Ошибся немного в написании вопроса
вот тут $last_message_id = intval($_POST['lastMsgId']); я хотел написать $last_message_id = intval($_POST['LID']);
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.