Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/29: Рейтинг темы: голосов - 29, средняя оценка - 4.79
 Аватар для Landser
57 / 7 / 4
Регистрация: 18.04.2009
Сообщений: 429
MS SQL

Переход на следующую/предыдущую запись бд

04.02.2017, 00:11. Показов 5554. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Столкнулся с такой проблемой:
есть некая таблица с полями name, surname, city. Надо вывести на web страницу первую строку таблицы , а потом по нажатию кнопки "следующая запись" выводить следующую запись (аналогично и предыдущую). Пытаюсь так:
PHP
1
2
3
4
5
6
7
8
9
10
require_once '..\includes\connect.php';
$params = array(); 
$cursor =array( "Scrollable" => SQLSRV_CURSOR_KEYSET );
$q="select  *  from table_new";    
$stmt = sqlsrv_query( $conn,$q,$params,$cursor); 
while( $prd = sqlsrv_fetch_array( $stmt , SQLSRV_FETCH_ASSOC,SQLSRV_SCROLL_NEXT)) 
 {
echo  $prd[ 'name'].'  '.$prd['surname']
 }
//печатаются все записи таблицы Table_new
А вот как выводить сначала первую строку, а потом по нажатию на кнопку - следующую и тд - понять не могу,подскажите пожалуйста
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.02.2017, 00:11
Ответы с готовыми решениями:

Выбрать следующую и предыдущую куртинку из БД
if(!empty($query_user_id) AND empty($fixed_tags)){ $QUERY_IMAGES = "SELECT * FROM images im ...

Навигация переход на предыдущую и следующую страницу в выпадающем меню
Проблема такая: есть выпадающий список <SELECT NAME="navSelect" ONCHANGE="top.location.href = this.options.value"...

Переход по кнопкам на предыдущую или следующую фото в PictureBox'e
Задав местоположение фото переход при нажатии кнопок ! Windows Forms ! Например "C:\Windows\debug\....." Сами...

10
40 / 42 / 15
Регистрация: 24.10.2015
Сообщений: 598
04.02.2017, 17:40
на php))) ну могу предложить хранить счетчик в адресной строке)
1
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
04.02.2017, 18:20
Landser, пагинация. Только по одной записи выбирайте и выводите на страницу.
1
 Аватар для Landser
57 / 7 / 4
Регистрация: 18.04.2009
Сообщений: 429
04.02.2017, 20:03  [ТС]
Спасибо за ответы!
miketomlin ,

Только по одной записи выбирайте и выводите на страницу.
по одной записи так выбирать?
T-SQL
1
select top 1 a,b,c from table1
Как тогда сказать SQL, чтобы следующий раз выводил уже другую запись по такому же запросу?
Я слышал,что можно выбрать все записи, поместить их в массив, а потом каким-то образом передвигаться по массиву и выводить каждый раз следующую запись?
0
Эксперт PHP
 Аватар для Fedor Vlasenko
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
04.02.2017, 20:19
SQL
1
2
3
SELECT 
(SELECT MAX(`id`) FROM `jos_content` WHERE `id` < 60 ) AS `min`,
(SELECT MIN(`id`) FROM `jos_content` WHERE `id` > 60 ) AS `max`
выводит предыдущий и следующий Id (текущий id-60)
1
 Аватар для Landser
57 / 7 / 4
Регистрация: 18.04.2009
Сообщений: 429
04.02.2017, 20:32  [ТС]
Fedor Vlasenko , спасибо за ответ. Но это когда id присутствует в таблице, а если нет?
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
04.02.2017, 21:02
Цитата Сообщение от Landser Посмотреть сообщение
Как тогда сказать SQL, чтобы следующий раз выводил уже другую запись по такому же запросу?
Я слышал,что можно выбрать все записи, поместить их в массив, а потом каким-то образом передвигаться по массиву и выводить каждый раз следующую запись?
Вам слово «пагинация» о чем-нибудь говорит? Запрос для каждой записи должен отличаться «базой», фактически ее номером. Базу нужно определять, исходя из адреса страницы. Вот почитайте: Как сделать пагинацию?
1
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 830
Регистрация: 09.09.2009
Сообщений: 29,554
04.02.2017, 21:07
Цитата Сообщение от Landser Посмотреть сообщение
а если нет?
добавлять
1
 Аватар для Landser
57 / 7 / 4
Регистрация: 18.04.2009
Сообщений: 429
05.02.2017, 09:21  [ТС]
miketomlin
Вот почитайте: Как сделать пагинацию?
Полезная информация, спасибо. только в MSSQL
T-SQL
1
LIMIT
не поддерживается..
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
05.02.2017, 11:15
Наверняка есть какой-то аналог, потому как действие оч. востребованное.

Добавлено через 1 минуту
Сразу скажу, что тянуть из таблицы все подряд, если нужна только одна запись, оч. криво.
1
 Аватар для Landser
57 / 7 / 4
Регистрация: 18.04.2009
Сообщений: 429
05.02.2017, 11:37  [ТС]
Наверняка есть какой-то аналог, потому как действие оч. востребованное.
в MSSQL 2012 есть оператор offset
до 2012-го советуют такое извращение как:
T-SQL
1
2
3
4
5
6
7
8
9
10
SELECT *
FROM (
    SELECT TOP 30 *
    FROM (
        SELECT TOP 90 * 
        FROM table_name
    ) AS internal 
    ORDER BY internal.ID DESC
) AS external
ORDER BY external.ID ASC
но это жесть, тк если куча юзеров будут сервер долбить такими вот запросами,то ничего хорошего не будет

Добавлено через 11 минут
ещё советуют делать через
T-SQL
1
ROW_NUMBER()
T-SQL
1
2
3
4
5
6
7
8
SELECT  *
FROM    ( SELECT    ROW_NUMBER() OVER ( ORDER BY m_id ) AS RowNum, *
          FROM      [Base]
          
        ) AS RowConstrainedResult
WHERE   RowNum >=1
    AND RowNum <4
ORDER BY RowNum
выводит с первой по 3-ю записи, но как не могу понять, как это дело привязать на кнопку "следующая запись", чтобы при её нажатии выводились записи с 4-й по 6-ю, потом с 7-й по 9-ю и тд.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.02.2017, 11:37
Помогаю со студенческими работами здесь

Объекты браузера: вывод на экран данных из формы, переход на предыдущую или следующую страницы
Создать сайт по теме курсовой работы. Создать форму. После опроса пользователю открывается новое окно, в котором содержатся все оставленные...

Переход на следующую запись таблицы с использованием RecNo
Всем привет. Появилась проблема с переходом на следующую запись в таблице, переход осуществляю с помощью функции RecNo след. образом ...

Вывести следующую и предыдущую цифры
В символьную переменную вводится цифра. Вывести следующую и предыдущую цифры, считая, что за 9 следует 0, а, соответственно, нулю...

Особенные даты, определить следующую и предыдущую дату
Всем Hello, осуществил данный алгоритм, но вот не задача особенную дату вывести правильно никак не получается её суть чтоб все цифры не...

Переход на предыдущую страницу
Здравствуйте. Подскажите, плиз, как например при нажатии на кнопку &quot;Назад&quot; или &quot;Отмена&quot; происходил переход на страницу, которая...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
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, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru