Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Постраничная навигация
 
 автор: THERAPYbrother   (29.01.2008 в 01:35)   письмо автору
 
 

Думаю я над этим вопросом уже довольно долго,и никак не могу найти хоть какого-нибудь решения.

есть таблица c именем "article"
id | name | desription | article


Присутствует форма поиска,в которую пользователь вводит определенные критерии поиска.

В итоге получается запрос типа
SELECT id FROM article WHERE name='Александр'


А вот теперь сам вопрос.
Как мне сделать постраничную навигаю?
да не простую,а вот такую:
1.Список должен быть не упорядоченным по id,то есть хаотичным,как скрипту вздумается,в такой последовательности
и должен выводить)
2.Есть 5 страниц.При переходе на следующую страницу,не должен происходить запрос
SELECT id FROM article WHERE name='Александр'

Если бы мне не требовалось вывод хаотически,то просто воспользоваться LIMIT(m,n) и все.
Список id должен быть неизменным.Ну всмысле если при каждом переходе делать выборку id,
то на следующей странице могут оказаться те же самые результаты.
Как лучше передать список id,через запрос,или через скрытые поля в форме?вот собственно второй вопрос.

Извиняюсь,что непонятно описал ситуацию,но надеюсь вы догадались,о чем я)

   
 
 автор: bronenos   (29.01.2008 в 10:21)   письмо автору
 
   для: THERAPYbrother   (29.01.2008 в 01:35)
 

По второму - что вам удобнее, без разницы

   
 
 автор: cheops   (29.01.2008 в 14:36)   письмо автору
 
   для: THERAPYbrother   (29.01.2008 в 01:35)
 

Записи не будут повторятся на второй странице - они будут выводится в том порядке, в котором лежат в таблице - если во время навигации не происходит перестройки таблицы (удаление, вставка, обновление) - повторов не будет.

   
 
 автор: THERAPYbrother   (29.01.2008 в 14:51)   письмо автору
 
   для: cheops   (29.01.2008 в 14:36)
 

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

   
 
 автор: mirage   (29.01.2008 в 18:28)   письмо автору
 
   для: THERAPYbrother   (29.01.2008 в 14:51)
 

честно не много не понятен вопрос....
Но если я правильно понял то можно просто результат SQL запроса загнать в массив
и воспользоваться функцией Shuffle для того чтобы хаотически перемешать значения в массиве
ну, а потом вывести эти значения....

   
 
 автор: THERAPYbrother   (30.01.2008 в 07:21)   письмо автору
 
   для: mirage   (29.01.2008 в 18:28)
 

Вот,это мне и требовалось,спасибо большое.
А еще подскажите,как лучше передать массив на следующую страницу?

   
 
 автор: Mirage   (30.01.2008 в 13:50)   письмо автору
 
   для: THERAPYbrother   (30.01.2008 в 07:21)
 

По моему мы тут по кругу кружимся :),

1. формируете по страничную навигацию... запросом SELECT id FROM article WHERE name='Александр'

2. Формируем SQL запрос для вывода значений на странице - SELECT id FROM article WHERE name='Александр' LIMIT (m,n)

3. Загоняете в массив результат SQL запроса, хаотично перемешиваете значения........

4. Выводите из массива данные на страницу.

Вот и все.
Т.е у нас на каждой странице будут одни и теже записи в пределе LIMIT (m,n), только их вывод будет хаотичен..........

Если же Вы хотите чтобы и на страницах были случайные записи, то можно сразу записать результат запроса - SELECT id FROM article WHERE name='Александр' - в массив, перемешать его, а потом из массива записать в БД в какую нибудь вспомогательную табличку. и уже оттуда вывести их обычном методом постраничной навигации.....
Только наверное уже на производительность скрипта этот метод скажется не в лучшую сторону... :)

   
 
 автор: THERAPYbrother   (30.01.2008 в 14:07)   письмо автору
 
   для: Mirage   (30.01.2008 в 13:50)
 

Если же Вы хотите чтобы и на страницах были случайные записи, 
то можно сразу записать результат запроса - 
SELECT id FROM article WHERE name='Александр' - 
в массив, перемешать его, а потом из массива записать в БД в какую нибудь вспомогательную 
табличку. и уже оттуда вывести их обычном методом постраничной навигации.....


во,поняли мою задачу?)
подсказали вы конечно вариант хороший,только быстродействие наверн будет хромать((
можно конечно get'ом все передавать,но там опять надо будет париться((

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования