Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
156 / 20 / 5
Регистрация: 21.02.2009
Сообщений: 2,787

Построчный вывод информации из таблицы в браузер

10.01.2024, 12:15. Показов 877. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

Предполагается вот такой алгоритм работы:
- при открытии страницы из таблицы сразу выводится первая строка, удовлетворяющая условию. Такая строка там точно есть, это ранее проверялось;
- если в таблице есть еще строка, удовлетворяющая условию, то появляется кнопка "Ещё", по клику на которую выводится следующая строка. Если больше данных нет, то кнопка исчезает.

Проблема:
1. Не выводится вторая по счету строка, удовлетворяющая условию;
2. Не выводятся предпоследняя и последняя записи таблицы, удовлетворяющие условию.

Код такой.

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
    // Подготовка запроса для выборки строк
    $query = "SELECT id, response_title, response FROM `$tableName` WHERE ball_first_pass = 10 ORDER BY id ASC";
    $result = mysqli_query($db, $query);
 
    // Проверка наличия строк
    if (mysqli_num_rows($result) > 0) {
        // Вывод первой строки
        $row = mysqli_fetch_assoc($result);
        $id = $row['id'];
        $responseTitle = $row['response_title'];
        $response = $row['response'];
 
        // Создание переменной для следующей строки
        $nextRow = mysqli_fetch_assoc($result);
 
        echo "<div id='response-container'>$id - $responseTitle - $response</div>";
 
        // Проверка наличия еще одной строки
        if ($nextRow) {
            echo "<button id='show-more' data-next-id='{$nextRow['id']}' data-next-response='{$nextRow['response_title']} - {$nextRow['response']}'>Ещё</button>";
        }
    }
 
    // Очистка результата запроса
    mysqli_free_result($result);
HTML5
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
<script>
    document.addEventListener('DOMContentLoaded', function() {
        var showMoreBtn = document.getElementById('show-more');
        var responseContainer = document.getElementById('response-container');
 
        function getNextResponse() {
            // Запрос на сервер для получения следующей строки
            var xhr = new XMLHttpRequest();
            xhr.open('GET', 'get-next-response.php?id=' + showMoreBtn.getAttribute('data-next-id'), true);
            xhr.onload = function() {
                if (xhr.status === 200) {
                    var response = JSON.parse(xhr.responseText);
                    if (response.id && response.responseTitle && response.response) {
                        showMoreBtn.setAttribute('data-next-id', response.id);
                        responseContainer.innerHTML += "<br>" + response.id + " - " + response.responseTitle + " - " + response.response;
                    } else {
                        // Удаление кнопки "Ещё", если больше нет строк
                        showMoreBtn.remove();
                    }
                }
            };
            xhr.send();
        }
 
        if (showMoreBtn) {
            showMoreBtn.addEventListener('click', getNextResponse);
        }
    });
</script>

Код второго файла get-next-response.php:

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
    // Получение значения параметра id
    $id = isset($_GET['id']) ? $_GET['id'] : 0;
 
    // Подготовка запроса для выборки следующей строки с учетом условия ball_first_pass = 10 и сортировкой по id ASC
    $query = "SELECT id, response_title, response FROM `$tableName` WHERE ball_first_pass = 10 AND id > $id ORDER BY id ASC LIMIT 1";
    $result = mysqli_query($db, $query);
 
    // Проверка наличия строки
    if ($result && mysqli_num_rows($result) > 0) {
        $row = mysqli_fetch_assoc($result);
        $response = array(
            'id' => $row['id'],
            'responseTitle' => $row['response_title'],
            'response' => $row['response']
        );
    } else {
        $response = array();
    }
 
    // Закрытие соединения с базой данных
    mysqli_close($db);
 
    // Отправка ответа в формате JSON
    header('Content-Type: application/json');
    echo json_encode($response);
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.01.2024, 12:15
Ответы с готовыми решениями:

Построчный вывод информации
Добрый день. Помогите реализовать построчную запись в файл. К примеру в консоль я ввожу значения: Hello World. My New Soft. А в файл...

jquery json each. Построчный вывод таблицы
$.ajax({ url: '/welcome/loadfile.html', // указываем URL и dataType : &quot;json&quot;, // тип...

Вывод информации из таблицы

1
 Аватар для sad67man
2603 / 1507 / 689
Регистрация: 23.08.2015
Сообщений: 3,823
10.01.2024, 12:47
Лучший ответ Сообщение было отмечено vlad-55 как решение

Решение

vlad-55, Вы передаете id следующей строки
Цитата Сообщение от vlad-55 Посмотреть сообщение
PHP
1
2
3
        if ($nextRow) {
            echo "<button id='show-more' data-next-id='{$nextRow['id']}' data-next-response='{$nextRow['response_title']} - {$nextRow['response']}'>Ещё</button>";
        }
А запрос делаете id > $id - получается, что пропускаете эту запись.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.01.2024, 12:47
Помогаю со студенческими работами здесь

Построчный вывод текстового файла и вывод комментария к каждой строке.
Программа делает выгрузку текстового файла с сервера и отображает содержимое текстового файла на страничке. Мне нужно сделать так, что бы...

Вывод информации из таблицы на Форму
Здравствуйте! У меня есть форма производители, на ней выводятся производители и модели из соответсвующих таблиц, не получается чтобы при...

Вывод информации из другой таблицы
Такая проблема есть 2 таблицы в базе - Клиенты и Заказы Возможно вывести данные из таблицы в Таблице заказы - фамилия клиента с таблицы...

Вывод информации таблицы значений
Ребята надо вывести на экран значение x и y, в label3. Пожалуйста помогите, я не то что не понимаю как это сделать красиво, а как вообще...

Добавление и вывод информации в/из таблицы БД
Доброго времени суток всем форумчанам! Моя проблема, собственно, в следующем: нужно просто-напросто добавить информацию в таблицу customer...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru