Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 16.01.2020
Сообщений: 12

Перезагрузка страницы если были изменения в БД

21.10.2023, 09:31. Показов 1352. Ответов 3

Студворк — интернет-сервис помощи студентам
Добрый день, данный код выводит картинки из базы данных (из папки, имена файлов хранятся в базе) одну за другой с интервалом в 10 секунд. Но если я добавлю новую картинку в базу либо удаляю все, то скрипт не обновляет эти данные на странице. Я пробовал добавить location.reload(); после currentIndex = 0; но это не помогло. Посоветуйте пожалуйста как мне автоматически обновить страницу если были изменения в БД?

PHP
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
<?php
include("db.php");
$con =  mysqli_connect("$host", "$user", "$password", "$database");
if ($con == false){
    print("Ошибка: Невозможно подключиться к MySQL " . mysqli_connect_error());
}
else {
  if(isset($_GET['id'])){
  $id=$_GET['id'];
  $query = "SELECT * FROM tvreport WHERE tv='$id'";
$result = mysqli_query($con, $query);
$images = array(); 
while ($row = mysqli_fetch_assoc($result)) {
  $src="../img/";
    $images[] = $src . $row['SOP'];
}
?>
<script>
var images = <?php echo json_encode($images); ?>;
var currentIndex = 0; 
setInterval(function() {
    var img = document.getElementById('image');
    img.src = images[currentIndex];
    currentIndex++;
    if (currentIndex >= images.length) {
        currentIndex = 0;
    }
}, 10000); 
</script>
<img id="image" src="../img/no-image.jpg" >
<?php
  }}
  ?>
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.10.2023, 09:31
Ответы с готовыми решениями:

Сохранить файл, если были внесены изменения
Как сделать если в буфере были изменения тогда сохранить файл? Создана программа и она открывает, редактирует и сохраняет файлы, как...

Заполнение поля формы (таблицы), если были внесены изменения
Доброе утро! Подскажите пожалуйста, какой написать код чтобы, если открываешь форму для редактирования и начинаешь редактировать какую-либо...

После обновления страницы пропадает выведенная ссылка(изменения на странице, которые были на php)
Вот код страницы &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset=&quot;utf-8&quot;&gt; &lt;title&gt;Журнал по информацинной...

3
9 / 7 / 2
Регистрация: 16.10.2023
Сообщений: 25
21.10.2023, 12:53
Лучший ответ Сообщение было отмечено WWWPHP как решение

Решение

Здравствуйте. Я думаю, что проблема в том, что вы не проверяете, изменилась ли база данных, прежде чем обновлять изображение. Вы можете использовать функцию mysqli_affected_rows1 для проверки, сколько строк было изменено или добавлено в базу данных после вашего запроса. Если это число больше нуля, то это означает, что база данных была обновлена, и вам нужно перезагрузить страницу с помощью location.reload()2. Например, вы можете добавить следующий код после выполнения вашего запроса:

PHP
1
2
3
4
if (mysqli_affected_rows($con) > 0) {
  // База данных была обновлена, перезагрузить страницу
  location.reload();
}
Это должно помочь вам автоматически обновлять страницу, если были изменения в базе данных. Надеюсь, это ответило на ваш вопрос. ������
1
0 / 0 / 0
Регистрация: 16.01.2020
Сообщений: 12
21.10.2023, 15:21  [ТС]
Спасибо большое. Очень помогли!.

Добавлено через 48 минут
PHP
1
2
3
4
if (mysqli_affected_rows($con) > 0) {
  // База данных была обновлена, перезагрузить страницу
  location.reload();
}
Я добавил этот код и поначалу все работало, но после обновления страницы и очистки кэша страница показывала только первую картинку и страница сразу обновлялась. Подскажите пожалуйста в какую часть кода мне нужно добавить этот код?
0
Эксперт .NET
 Аватар для Usaga
14093 / 9310 / 1349
Регистрация: 21.01.2016
Сообщений: 34,981
22.10.2023, 07:10
Цитата Сообщение от MenBenKaPen Посмотреть сообщение
if (mysqli_affected_rows($con) > 0) {
Ты же понимаешь, что эта проверка будет происходить на сервере, до того, как страницу получит браузер?) Получается, что страница, сразу после загрузки, тут же заново перезагрузиться)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.10.2023, 07:10
Помогаю со студенческими работами здесь

Событие изменения содержимого страницы без изменения адреса и перезагрузки страницы
Доброго времени суток! Такая проблема имеется: есть форма на определенном сайте (сам сайт, к сожалению показать не могу), на которой по...

Как узнать были изменения в БД. Или дата время последнего изменения
Как узнать были изменения в БД. Или дата время последнего изменения. InnoDB INSERT UPDATE DELETE

Перезагрузка отдельной картинки страницы, после загрузки страницы
Возникла необходимость перезагрузки отдельной картинки страницы после вывода страницы браузером. Проблема в том, что картинка генится на...

Есть скрипт, позволяющий вносить изменения в html таблицу. Однако изменения не сохраняются после обновления страницы
Вот сама страница(нужно сделать так, чтобы изменения сохранялись и отображались после обновления страницы): &lt;style&gt; td { ...

Были ли внесены изменения
Доброго времени суток. У меня такой вопрос, как можно в БД Access узнать, были ли внесены изменения в БД ? p.s. нужно для создания...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru