За последние 24 часа нас посетили 17395 программистов и 978 роботов. Сейчас ищут 433 программиста ...

База выдает несколько ответов и глохнет

Тема в разделе "PostgreSQL", создана пользователем BAPBAP, 29 мар 2023.

  1. BAPBAP

    BAPBAP Новичок

    С нами с:
    29 мар 2023
    Сообщения:
    12
    Симпатии:
    0
    Собственно САБЖ.
    Скрипт вызывает и отображает последнюю запись из таблицы базы данных , работает несколько секунд и вырубается. Сломал голову почему.
    вот сам скрипт

    INDEX.PHP
    Код (Text):
    1. <?php
    2.  
    3.   $cn = pg_connect("host=localhost port=5432 dbname=db2 user=postgres password=888888");
    4.   if($cn)
    5. {
    6.     echo "База данных - подключена";
    7. }
    8.   $query = "SELECT * FROM patient1 ORDER BY idpatient DESC LIMIT 1";
    9.   $rs = pg_query($cn, $query) or die("XYU: $query\n");
    10.  
    11.  
    12.   $username = date('Y-m-d H:i:s:ms', time());
    13.   $user_panel = file_get_contents("index1.tpl");
    14.   $user_panel = str_replace("{username}", $username, $user_panel);
    15.   echo $user_panel;
    16.  
    17.  
    18. ?>
    19. <?php
    20. while ($row = pg_fetch_array($rs)) {
    21. ?>
    22.     <tr>
    23.     <td><?=$row[0]?></td>
    24.     <td><?=$row[1]?></td>
    25.     <td><?=$row[2]?></td>
    26.     <td><?=$row[3]?></td>
    27.     <td><?=$row[4]?></td>
    28.     <td><?=$row[5]?></td>
    29.     <td><?=$row[6]?></td>
    30.     <td><?=$row[7]?></td>
    31.     <td><?=$row[8]?></td>
    32.  
    33.  
    34.     </tr>
    35. <?php
    36. }
    37.  
    38.  
    39. ?>
    PAGE.HTML
    Код (Text):
    1. <!DOCTYPE html>
    2. <html lang="en">
    3.   <head>
    4.     <title>Центральная станция ALFA</title>
    5.     <meta charset="utf-8">
    6.      <script type="text/javascript" src="https://code.jquery.com/jquery-3.1.0.js"></script>
    7.   </head>
    8.  
    9. <body>
    10.  
    11. <div id="result"></div>
    12. </body>
    13.  
    14.  
    15.  
    16. <script type="text/javascript">
    17. $(function() {
    18.     (function worker() {
    19.       $.ajax({
    20.         url: 'index1.php',
    21.         method: 'POST',
    22.         data: {'test':'yes'},
    23.         success: function(data) {
    24.           $('#result').html(data);
    25.         },
    26.         complete: function() {
    27.           setTimeout(worker, 1000);
    28.         }
    29.       });
    30.     })();
    31. });
    32. </script>
    33. </html>
    Помогите разобраться, я по сути только вхожу в тему PHP
     
  2. antoniii

    antoniii Новичок

    С нами с:
    16 мар 2022
    Сообщения:
    417
    Симпатии:
    71
    Что вырубается?
     
  3. don.bidon

    don.bidon Активный пользователь

    С нами с:
    28 мар 2021
    Сообщения:
    828
    Симпатии:
    129
    Очередной мастер формулировок (
     
  4. antoniii

    antoniii Новичок

    С нами с:
    16 мар 2022
    Сообщения:
    417
    Симпатии:
    71
    Сразу видно водитель :) (
    выдает несколько ответов и глохнет
    )
     
  5. BAPBAP

    BAPBAP Новичок

    С нами с:
    29 мар 2023
    Сообщения:
    12
    Симпатии:
    0
    Сорри)
    Заслуженное замечание.
    Запись в базу данных идет постоянная. Каждые 10 секунд.
    А вот результатов отображается максимум два и потом на экране активности нет, хотя БД продолжает аккумулировать данные.
     

    Вложения:

  6. antoniii

    antoniii Новичок

    С нами с:
    16 мар 2022
    Сообщения:
    417
    Симпатии:
    71
    Попробуй вместо $('#result').html(data);
    $('#result').append(data);
     
  7. BAPBAP

    BAPBAP Новичок

    С нами с:
    29 мар 2023
    Сообщения:
    12
    Симпатии:
    0
    Существенной разницы не случилось, данные из таблицы не отображаются в заданном интервале, а в таблицу они попадают каждые 10 секунд.
     
  8. antoniii

    antoniii Новичок

    С нами с:
    16 мар 2022
    Сообщения:
    417
    Симпатии:
    71
    А каковы отличия вывода?
     
  9. BAPBAP

    BAPBAP Новичок

    С нами с:
    29 мар 2023
    Сообщения:
    12
    Симпатии:
    0
    Данные из таблицы уже не отображаются на одном и том же месте, а выводятся в следующей строке.
     
  10. antoniii

    antoniii Новичок

    С нами с:
    16 мар 2022
    Сообщения:
    417
    Симпатии:
    71
    Отказаться от таймера временно не пробовал?
     
  11. BAPBAP

    BAPBAP Новичок

    С нами с:
    29 мар 2023
    Сообщения:
    12
    Симпатии:
    0
    Код (Text):
    1. <?php
    2.  
    3.   $cn = pg_pconnect("host=localhost port=5432 dbname=db2 user=postgres password=888888");
    4.   if($cn)
    5. {
    6.     echo "DB - CONNECTED";
    7.  
    8. }
    9.   $query = "SELECT * FROM patient1 ORDER BY puls DESC LIMIT 1";
    10.   $rs = pg_query($cn, $query) or die("XYU: $query\n");
    11.  
    12.  
    13.  
    14.  
    15. ?>
    16. <?php
    17. while ($row = pg_fetch_row($rs)) {
    18. ?>
    Таймер убрал.
    Я заметил, данные могут менять (а могут и нет), через рандомный период.
    Чищу таблицу, данные приходят. Но буквально обновляются 2-3 раза и экран становится статичным.
     
    #11 BAPBAP, 3 апр 2023
    Последнее редактирование: 3 апр 2023
  12. Aleksandr.B

    Aleksandr.B Новичок

    С нами с:
    2 фев 2023
    Сообщения:
    149
    Симпатии:
    39
    Адрес:
    Барнаул
    Возможно браузер или расширение браузера блокирует. Другой браузер без расширений или с отключением всех расширений скрипт ведет себя также?
    По скринам расширение google аналитики или к странице подключен js google аналитики.
     
  13. BAPBAP

    BAPBAP Новичок

    С нами с:
    29 мар 2023
    Сообщения:
    12
    Симпатии:
    0
    На сколько я понял не из кэша. Хотя JS из кэша.
     

    Вложения:

  14. Aleksandr.B

    Aleksandr.B Новичок

    С нами с:
    2 фев 2023
    Сообщения:
    149
    Симпатии:
    39
    Адрес:
    Барнаул
    После ошибки в консоли браузера запросы к серверу продолжаются?
     
  15. BAPBAP

    BAPBAP Новичок

    С нами с:
    29 мар 2023
    Сообщения:
    12
    Симпатии:
    0
    Да. И запросы идут и даже данные могут прилететь от БД, но в непонятный интервал
     
  16. antoniii

    antoniii Новичок

    С нами с:
    16 мар 2022
    Сообщения:
    417
    Симпатии:
    71
    Попробуй почитать про функцию ajax от jquery. В ней есть параметры, отвечающие за таймаут и кэширование, есть параметр async
     
  17. Aleksandr.B

    Aleksandr.B Новичок

    С нами с:
    2 фев 2023
    Сообщения:
    149
    Симпатии:
    39
    Адрес:
    Барнаул
    Отключено кэширование при запросах к серверу.
    Код (Javascript):
    1. $(function() {
    2.     (function worker(version) {
    3.       $.ajax({
    4.         url: 'index1.php?v=' + version,
    5.         method: 'POST',
    6.         data: {'test':'yes'},
    7.         cache:false,
    8.         success: function(data) {
    9.           $('#result').html(data);
    10.         },
    11.         complete: function() {
    12.           version++
    13.           setTimeout(worker.bind(null, version), 1000);
    14.         }
    15.       });
    16.     })(1);
    17. });
     
  18. antoniii

    antoniii Новичок

    С нами с:
    16 мар 2022
    Сообщения:
    417
    Симпатии:
    71
    А синхронность асинхронность учитываешь?
     
  19. BAPBAP

    BAPBAP Новичок

    С нами с:
    29 мар 2023
    Сообщения:
    12
    Симпатии:
    0
    Нет.
    o_O
     
  20. antoniii

    antoniii Новичок

    С нами с:
    16 мар 2022
    Сообщения:
    417
    Симпатии:
    71
    Этот параметр может повлиять на выполнение запроса и получение ответа. async:false, запросы будут синхронными
     
  21. BAPBAP

    BAPBAP Новичок

    С нами с:
    29 мар 2023
    Сообщения:
    12
    Симпатии:
    0
    Спасибо за наводку. Пошел гуглить)
     
  22. Aleksandr.B

    Aleksandr.B Новичок

    С нами с:
    2 фев 2023
    Сообщения:
    149
    Симпатии:
    39
    Адрес:
    Барнаул
    По скринам ответ какой-то странный, когда приходят данные. Сначала таблица закрывается затем закрывается div и дальше идут столбцы и ячейки таблицы.
     
    #22 Aleksandr.B, 3 апр 2023
    Последнее редактирование: 3 апр 2023
  23. BAPBAP

    BAPBAP Новичок

    С нами с:
    29 мар 2023
    Сообщения:
    12
    Симпатии:
    0
    Пробовал по всякому и внутри DIV.
    Разницы нет(
     
  24. Aleksandr.B

    Aleksandr.B Новичок

    С нами с:
    2 фев 2023
    Сообщения:
    149
    Симпатии:
    39
    Адрес:
    Барнаул
    Такой скрипт работает?
    PHP:
    1. <?php
    2.     $cn = pg_connect("host=localhost port=5432 dbname=db2 user=postgres password=888888");
    3.     if($cn)
    4.     {
    5.         echo "База данных - подключена";
    6.     }
    7.     $query = "SELECT * FROM patient1 ORDER BY idpatient DESC LIMIT 1";
    8.     $rs = pg_query($cn, $query) or die("XYU: $query\n");
    9.  
    10. ?>
    11. <table>
    12. <?php while ($row = pg_fetch_array($rs)) {?>
    13.     <tr>
    14.     <td><?=$row[0]?></td>
    15.     <td><?=$row[1]?></td>
    16.     <td><?=$row[2]?></td>
    17.     <td><?=$row[3]?></td>
    18.     <td><?=$row[4]?></td>
    19.     <td><?=$row[5]?></td>
    20.     <td><?=$row[6]?></td>
    21.     <td><?=$row[7]?></td>
    22.     <td><?=$row[8]?></td>
    23.     </tr>
    24. <?php
    25. }
    26. ?>
    27. </table>
     
  25. BAPBAP

    BAPBAP Новичок

    С нами с:
    29 мар 2023
    Сообщения:
    12
    Симпатии:
    0
    Увы так же не корректно. Данные не отображаются актуальные