Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
php + MySQL: запрос - определение страницы(+) (Rebel) 25/08/2005 - 02:09:22
      Re: php + MySQL: запрос - определение страницы(+) (barfly) 25/08/2005 - 16:21:54
      Re: php + MySQL: запрос - определение страницы(+) (Rebel) 25/08/2005 - 21:26:31
      Re: php + MySQL: запрос - определение страницы(+) (Dinky) 26/08/2005 - 00:00:55
      Re: php + MySQL: запрос - определение страницы(+) (Rebel) 26/08/2005 - 01:37:28
      Re: php + MySQL: запрос - определение страницы(+) (Dinky) 26/08/2005 - 18:46:37
      Re: php + MySQL: запрос - определение страницы(+) (Rebel) 28/08/2005 - 19:52:49

> Original message text:
> From: Rebel - 25/08/2005 - 02:09:22
> Subject:php + MySQL: запрос - определение страницы(+)
> -----------------
> ситуация:
> имеется таблца с, например, 2 столбцами:
> id - числовой
> name - текстовый
>
> из нее осуществляется вывод примерно таким запросом:
> SELECT `id`, `name` FROM `table` ORDER BY `name` LIMIT $start,$show;
>
> где $start - отправная точка, $show - количество элементов на странице ($show определено заранее), например $start = 0; $show = 5;
>
> надо: зная значение id, лежащего в переменной $id определить параметр $start (ну или порядковый номер элемента с id=$id) для вышеуказанного запроса, чтобы вылезла та страница, на которой расположен элемент с известным id, как???
>
> конечно можно сделать SELECT `id`, `name` FROM `table` ORDER BY `name`;
> потом перебрать в цикле от начала до элемента, у которого id=$id, прибавляя при каждом проходе цикла единичку к переменной-счетчику, и отталкиваясь от этого получить $start, но хочется более оптимальное решение, без последовательного перебора...
>


From: barfly - 25/08/2005 - 16:21:54
Subject:php + MySQL: запрос - определение страницы(+)
-----------------
Можно попробовать что-то вроде
1)SELECT `id`, `name` FROM `table` ORDER BY `name` WHERE ('name' > (SELECT 'name' from 'table' WHERE 'id' = $id) ) LIMIT $show;
Не знаю точно как сиквел сравнивает строки,

поэтому
2)Смотреть в сторону
FIELD(str,str1,str2,str3,...)
Возвращает индекс строки str в списке str1, str2, str3, .... Если строка str не найдена, возвращается 0. Функция FIELD() является дополнительной по отношению к функции ELT():

mysql> SELECT FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo');
-> 2

mysql> SELECT FIELD('fo', 'Hej', 'ej', 'Heja', 'hej', 'foo');
-> 0

FIND_IN_SET(str,strlist)
Возвращает значение от 1 до N, если строка str присутствует в списке strlist, состоящем из N подстрок. Список строк представляет собой строку, состоящую из подстрок, разделенных символами `,'. Если первый аргумент представляет собой строку констант, а второй является столбцом типа SET, функция FIND_IN_SET() оптимизируется для использования двоичной арифметики! Возвращает 0, если str отсутствует в списке strlist или если strlist является пустой строкой. Если один из аргументов равен NULL, возвращается 0. Данная функция не будет корректно работать, если первый аргумент содержит символ `,':

mysql> SELECT FIND_IN_SET('b','a,b,c,d');
-> 2





[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
23735



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |