Aykroyd, вот из-за таких как ты все зло в мире и происходит ...![]()
"просто нумеровать"... ты когда-нибудь писал на младших версиях бейсика? никогда строки перенумеровывать не приходилось?..
![]()
![]()
DELPHIna, решение со списком вовсе не сложное. это только так кажется. Фукнции для работы со списком элементарные — это же учебное задание дают детишкам чуть не в школе. Этот список ничем от того не отличается. То, что делаете вы на больших коллекциях фоток неоправданно нагружает сервер БД. Если можно писать красиво почему бы не писать красиво
Я бы сделал так
Таблицы имеют следующий вид
gallery
id // идентификатор, первичный ключ, unsigned tinyint (255 галерей хватит)
title // имя, varchar(50)
description // описание галереи, tinytext или varchar(255) (в зависимости от того что для вас первично — быстродействие или размеры базы; 255 символов для описания имхо вполне достаточно)
head // ссылка на голову списка — id первой фотки из списка в таблице photo
photo
id // идентификатор, первичный ключ, unsigned smallint (65000 фоток в галерее достаточно?)
name // название фотки, varchar(50)
description // описание фотки, tinytext или varchar(255)
prevouse // сцылко на предыдущий элемент (id предыдущего элемента; у головы NULL)
next // сцылко на следующий элемент списка (id следующего элемента; у хвоста NULL)
gallery // идентификатор записи в таблице gallery - это не обязательно, но просто для удобства работы с галереей в целом.
Интерфейс к галерее надо писать так, чтобы можно было просматривать все фотки с фильтрами по любому из полей (кроме id, prevouse и next конечно) — здесь это делается элементарно. извлекать фотки галереи в нужном порядке (один запрос выбирающий все фотки галереи, а затем обработка результата; но, при отсутствии поля gallery можно и серией запросов), создавать галереи (легко и просто — новая запись в gallery), добавлять и удалять фотоки в/из галереи, их сортировка там (тоже просто — элементарные функции работы со списком).
PS: Никакое поле ordery Вам вообще не нужно. оставте его в покое до тех пор, пока не станет понятно, что ваш новый код работает и его, это поле, можно удалить.