Задавайте вопросы, мы ответим
Вы не зашли.
таблица MySQL ,где ID авто инкремент,первичный ключ и NAME имя товара
ID NAME
1 один
14 два
7 три
11 четыре
12 пять
111 шесть
172 семь
как сделать вывод трех последовательных полей
если.....
выбираем Id 1 (позиция:1) выводим : семь шесть пять
выбираем Id 14 (позиция:2) выводим : один семь шесть
выбираем Id 7 (позиция:3) выводим : один два семь
выбираем Id 11 (позиция:4) выводим: три два один
выбираем Id 12 (позиция:5) выводим: четыре три два
выбираем Id 111 (позиция:6) выводим: пять четыре три
выбираем Id 172 (позиция:7) выводим: шесть пять четыре
...............
выбираем Id 1 (позиция:1) выводим: семь шесть пять
выбираем Id 14 (позиция:2) выводим : один семь шесть
........и т.д по кругу....(закольцевать массив)
передаем ID GETом
$id=intval($_GET['id'])
те если мы выбираем позицию товара Id 11 то надо вывести три предыдущие до него позиции товаров т.е Id 7 (позиция:3),Id 14 (позиция:2), Id 1(позиция:1)
или можно (если это сделать легче) то выбирать следующие за ним три позиции
выбираем Id 1 (позиция:1) выводим : два три четыре
выбираем Id 14 (позиция:2) выводим : три четыре пять
выбираем Id 7 (позиция:3) выводим : четыре пять шесть
выбираем Id 11 (позиция:4) выводим: пять шесть семь
выбираем Id 12 (позиция:5) выводим: шесть семь один
выбираем Id 111 (позиция:6) выводим: семь один два
выбираем Id 172 (позиция:7) выводим: один два три
...............
выбираем Id 1 (позиция:1) выводим: два три четыре
выбираем Id 14 (позиция:2) выводим : три четыре пять......
позиция --это строка в таблице...
проблема в том что если использовать запрос
$res=mysql_query("SELECT id,name FROM `test` LIMIT $start, 3 ", $db);
где $start=6,
то выведется только одна позиция Id 172 (позиция:7)семь,а надо чтобы выводилось---семь один два
третий день мучаюсь,уже мозг сломал,не знаю как закольцевать выборку...прошу помощи..Заранее спасибо.
Неактивен
Никогда нельзя полагаться на номер строки в БД. База не гарантирует, что если
Вы дважды сделаете одну и ту же выборку с одинаковыми данными без явного
указания сортировки, Вы получите одинаковую последовательность строк.
Если нужно положение - его нужно ввести явно в таблицу и сортировать по нему.
Неактивен
Тогда посоветуйте какой ввести столбец ,чтобы решить такую задачу,может ввести сортировку по времени занесения в БД?
Неактивен
Можно и время занесения. В принципе, если у Вас есть автоинкрементное поле - то оно
и будет "в порядке занесения". Но тогда Ваш пример отсортирован плохо.
Неактивен
А вобще,реально ли сделать сортировку в автоинрементном поле,те чтобы в столбце значения ID шли по порядку?
Неактивен
Конечно.
Неактивен
но это выборка,а переписать таблицу реально ли?
Неактивен
Переписать таблицу - как? Данные в таблице все равно будут перемешиваться в процессе работы.
Все равно один и тот же запрос может возвращать данные в разном порядке, если в явном виде
не указана сортировка. Все равно сортировать прийдется
Неактивен