







|
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: Rebel - 28/08/2005 - 19:52:49
Subject:php + MySQL: запрос - определение страницы(+)
-----------------
скрипт вызывается из скрипта, который про страницы ничего не знает и хгать не должен, ему известно тока ид...
пробовал использовать временную таблицу:
CREATE TEMPORARY TABLE `_temp_id_pos` (
`pos` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`id` INT UNSIGNED NOT NULL,
PRIMARY KEY ( `pos` ),
INDEX ( `id` )
) TYPE = MEMORY;
INSERT _temp_id_pos (`id`) SELECT `id` FROM `table` ORDER BY `name`;
SELECT `pos` FROM `_temp_id_pos` WHERE `id`=$id;
DROP TABLE `_temp_id_pos`;
оказалось (провкерял на таблице в 60 записей из которых использовалось 12), что при ее использовании затрачивается 0,03 сек, а при последовательном переборе результата - 0,00 сек... пока отсаюсь на цикле...
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
23735
|
|