С Новым годом! Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 05.12.2014
Сообщений: 22

Отображение содержимого mysql в режиме реального времени

26.12.2014, 14:31. Показов 3585. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Есть php:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<html>
    <head>
        <title>Action</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="stylesheet" href="css/style.css">
        <link rel="shortcut icon" href="favicon.ico">
    </head>
    <body>
    <center>
        <div class="allpage">
            <div class="shapka">
                <span>Action</span>
            </div>
            <div class="page">
                <div class="news">
                </div>
                <div class="action">
                    <div class="primesta">
                        prizmesta
                    </div>
                    <div class="panelupravl">
                        
                    </div>
                    <div class="logs">
                        <?php
                        $bis=mysql_query("select * from table");
                        while ($row = mysql_fetch_assoc($bis))
                        {
                            echo $row['iduser']." ".$row['idids']."<br>";
                        }
                        ?>
                    </div>
                </div>
                <div class="wis">
                </div>
                <div class="FAQ">
                </div>
                <div class="paters">
                </div>
            </div>
            <div class="footer">
            </div>
        </div>
    </center>
    </body>
в нем в div'е "logs" отображается содержимое таблицы, но оно отображается только при загрузке, либо перезагрузке. Как сделать отображение в режиме реального времени? То есть периодически в таблицу будут добавляться строки, и необходимо в режиме реального времени отображать содержимое таблицы в этот div.
Я понял, что для реализации этого необходим AJAX, но что и куда вставлять понять не могу.
Заранее спасибо за помощь.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.12.2014, 14:31
Ответы с готовыми решениями:

Генерирование MD5 в режиме реального времени
Есть HTML форма, в которой вводятся параметры, передаваемый из переменных php - эта часть работает. но проблема в том. что при загрузке...

Не обрабатывается скрипт в режиме реального времени
Привет! У меня есть страничка http://hobbylife-market.ru/kabinet/korzina - если добавить туда товары и изменять количество, то стоимость...

Выполнение jquery в режиме реального времени
Есть скрипт который определяет ширину и и сходя из этого подгоняет мин и макс. кол-во элементов в слайдере. Вот как выглядит JQUERY: ...

7
z-z
170 / 169 / 56
Регистрация: 22.06.2011
Сообщений: 980
26.12.2014, 17:20
Ral, создай отдельный файл, например get_logs.php и помести туда пхп-код, который добывает из базы данных информацию, но не надо пробегаться циклом и делать echo. Вместо этого нужно преобразовать массив в JSON формат, для этого в php есть функция json_encode(), а затем вернуть эту строку с помощью echo. Приблизительно будет так

get_logs.php:
PHP
1
2
3
4
// тут видимо нужно еще подключиться к базе данных
$bis=mysql_query("select * from table");
$response = json_encode($bis);
echo $bis;

а в клиентскую часть добавить скрипт, который через определенный интервал будет стучаться к серверу и брать оттуда данные:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function getLogs(){
    // раз мы в разделе jQuery, предполагаю, что он подключен
    $.ajax({
        url: "get_logs.php", // обратите внимание, это имя нашего php файла, который отдает данные
        success: function(msg){
            // msg тут будет доступен в виде строки, 
            // которую нужно обратно преобразовать в объект с помощью функции JSON.parse()
            var resp = JSON.parse(msg);
            // дальше с этим объектом можно работать так, как хочется
            // в том числе составить HTML код с вставками из объекта 
            // и потом содержимое вставить туда, куда нужно
 
 
            setTimeout(getLogs, 5000); // через 5 сек. снова вызовем функцию
    });
}
 
window.onload = function(){ setTimeout(getLogs, 5000); /* 5000 - 5 sec */ };
ПС. Видимо это не совсем то, что вам нужно. Ибо выводить запись сразу же, как она сохранилась в базу, немного сложнее и обычным клиентским Javascript не делается, если я не ошибаюсь))

Данный скрипт будет обновлять данные раз в пять секунд, время естественно можно менять.
0
26.12.2014, 18:18

Не по теме:

z-z, у метода $.ajax(), который вы и приводите в примере, есть параметр dataType - формат данных, ожидаемый в ответе с сервера. Так вот, чтоб не делать лишних телодвижений, мы указываем dataType: 'json' и на выходе получаем объект:

JavaScript
1
2
3
4
5
6
7
$.ajax({
    /* прочие параметры */,
    dataType: 'json',
    success: function(msg){
        // msg - уже объект
    }
});

0
0 / 0 / 0
Регистрация: 05.12.2014
Сообщений: 22
26.12.2014, 18:53  [ТС]
Спасибо! Только я не понял, как вывод сам делать в div logs? как их связать?
0
z-z
170 / 169 / 56
Регистрация: 22.06.2011
Сообщений: 980
26.12.2014, 21:49

Не по теме:

Lazy_Den, спасибо, не знал =)



Ral, зависит от того, что вам возвращает сервер.
Предположим, что возвращается такой объект:

JavaScript
1
2
3
4
5
6
{
    '0': 'Vasya',
    '1': 'Petya',
    '2': 'Aleksandr',
    '3': 'z-z'
}
Я не смог понять, что Вы получаете, поэтому привел самый простой пример. На самом деле все зависит от вас. Вы можете сформировать на сервере какой угодно объект и отдать его клиенту, а потом обрабатывать со стороны клиента. Так вот это добро можно, например, выводить так(опишу то, что внутри success, все остальное не буду описывать):


JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var str = ""; // создаем пустую строку
 
// далее пробегаемся по объекту-ответу от сервера и для каждой пары дополняем строку
 
for(var i in msg) str += i + " " msg[i] + "<br>"; 
 
// затем вставляем эту строку  куда хотим
// например, как в вашем примере, в блок с классом .logs
 
 
$('.logs').html(str);
 
// тут нужно обратить внимание на две вещи
 
// 1. содержимое полностью перезаписывается
// если нужно дополнять, а не перезаписывать, то меняем 
// $('.logs').html(str); на $('.logs').html($('.logs').html() + str);
 
// 2. надо, естественно, правильно указать блок, в который вставляем содержимое.
// если блоков с классом logs на странице несколько, то будет вставляться во все блоки =)
0
0 / 0 / 0
Регистрация: 05.12.2014
Сообщений: 22
26.12.2014, 21:51  [ТС]
забыл уточнить, там важно, что бы объекты появлялись в последовательности занесения в бд. То есть первый занесенный объект будет в самом низу списка, а последний вверху
0
z-z
170 / 169 / 56
Регистрация: 22.06.2011
Сообщений: 980
26.12.2014, 23:12
Ral, по моему легче отсортировать на сервере в правильном порядке и так выдать клиенту
0
0 / 0 / 0
Регистрация: 05.12.2014
Сообщений: 22
31.01.2015, 21:29  [ТС]
Дополз до следующего:
JS-скрипт, делающий запрос на php, который в свою очередь берет информацию из бд:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$(document).ready(function ()
            {
                window.setInterval(function () {
                    var idstavk = "<?php echo $idstavk; ?>";
                    var screen_name = "<?php echo $screen_name; ?>";
                    var first_name = "<?php echo $first_name; ?>";
                    var last_name = "<?php echo $last_name; ?>";
                    var photo_big = "<?php echo $photo_big; ?>";
                    $.ajax({
                        url: "action_interval.php",
                        type: "POST",
                        data: {idstavk: idstavk, screen_name: screen_name, first_name: first_name, last_name: last_name, photo_big: photo_big},
                        success: function (data) {
                            if (data == 1)
                            {
 
                            }
                            else
                            {
                                $(".chat_pyst").remove();
                                $("ul").prepend(data);
                            }
                        }
                    });
                }, 500);
            });
Сам php-скрипт берущий информацию из бд:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
include "bd.php";
$idstavk=$_POST['idstavk'];
$screen_name=$_POST['screen_name'];
$first_name=$_POST['first_name'];
$last_name=$_POST['last_name'];
$photo_big=$_POST['photo_big'];
$result=mysql_query("SELECT * FROM log_stavok WHERE idstavk>'".$idstavk."' ORDER BY idstavk desc",$db);
$mq=mysql_num_rows($result);
if ($mq > "0"){
    $arr=mysql_fetch_assoc($result);
    do
    {
        echo "<li><img class='outp' src='" . $arr['photo_big'] . "'/> <a href=http://vk.com/" . $arr['screen_name'] . " class='link'>" . $arr['first_name'] . " " . $arr['last_name'] . "</a></li>";
    }
    while($arr=mysql_fetch_assoc($result));
}
else
{
    echo 1;
}
Работать-работает, но почему-то цикл зацикливается и выдает каждый раз заново все содержимое бд, хотя мне надо только новые строки. Подскажите, пожалуйста, где ошибка?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.01.2015, 21:29
Помогаю со студенческими работами здесь

Отображение введенного текста в режиме реального времени
Нужно сделать, чтобы введенный в textarea текст, сразу же отображался в соответствующем поле. Как это осуществить? Поля ввода...

Обновление статус бара в режиме реального времени
Есть переменная $hpproc отвечающая за ширину статус бара. &lt;div class=&quot;progress progress-striped active&quot;&gt; &lt;div...

Извлечение значения input на js в режиме реального времени
Доброго времени суток, форумчане. Возникла одна проблема - необходимо при изменении значения &lt;input type=&quot;range&quot;&gt; ...

Меняющийся в режиме реального времени индикатор загрузки
Здравствуйте! Возникла проблема с индикатором. Есть некий код к примеру //соединение с бд и тд.... $widthhp=$param; echo&quot; ...

Как не показать реального содержимого?
подскажите, как такое сделать! а своей html страничке в ссылке сделал выносной файл &lt;a href=&lt;?php include 'r.php'...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru