Доброго времени суток!Очередной раз нуждаюсь в Вашей помощи,Форумчане! Соответственно php: PHP: <?php include ("bd_chat.php"); include ("bd.php"); isset($_GET['last_id']) || die(); mysql_query("SET NAMES 'utf8'"); $id = (int) $_GET['last_id']; if (empty($id)) { $sql = "SELECT `c`.*, `u`.`name`, `u`.`age` FROM `chat` as `c`, `users` as `u` WHERE `c`.`user_id` = `u`.`id` ORDER BY `c`.`idchat` DESC LIMIT 10"; } else { $sql = "SELECT `c`.*, `u`.`name`, `u`.`age` FROM `chat` as `c`, `users` as `u` WHERE `c`.`user_id` = `u`.`id` AND `c`.`idchat` > {$id} ORDER BY `c`.`idchat` DESC LIMIT 10"; } $res = mysql_query($sql); $res || die(mysql_error()); $result = array(); while ($row = mysql_fetch_assoc($res)) { $result[] = $row; } echo json_encode($result); ?> И квери: [js]var id = 0 var chatbox function get() { $.ajax({ type:'GET', url:'ajaxchat.php', data:{last_id:id}, success:function(data){ var obj = jQuery.parseJSON(data) var text = '' for (var i = 0; i < obj.length; i++) { text += '<div class="table_massage">' text += '<span>' + obj.name + '</span>' text += '<span>/' + obj.age + '</span> ' text += '<em>' + obj.massage + '</em>' text += '</div>' id = id < obj.idchat ? obj.idchat : id } $(chatbox).html($(chatbox).html()+text) } }) } <!-- сообщения обновляются каждые 30 секунд --> chatbox = $('#chatbox') var timer = setInterval(get, 30000) get()[/js] Всё то,что перед Вами предстало-является чатом на странице сайта.И всё бы хорошо,да вот только после того как отправляешь сообщение,то по прошествии 30 секунд оно начинает дублироваться ниже всех ранее выведенных сообщений.И так каждые 30 секунд до бесконечности.Добавляет пользователь ещё сообщение и теперь уже оба начинаю дублироваться снузу остальных каждые 30 сек. Помогите разобраться,почему выполняется цикл!?
надо бы извлекать данные с текущего момента времени минус 30 секунд. а вообще такой чат, это конечно очень смешно
А как это решит проблему?Он же всё равно будет продолжать вытаскивать данные... Почему смешно!? Что не так-помогите реализовать!?
он будет вытаскивать только актуальные данные. ну тут вообще-то сокетами пытаются пользоваться. тут же есть в соседней теме, парень который делал, но там что-то не работает. я как-то не спец по чатам, но когда делал то смотрел: http://vimeo.com/20936525