|
|
|
| вообщем так у меня возникла проблема одна...
надо как то узнать номер выдаваемой строки!
к примеру в БД таблица tbl:
id name
===============
05 Hello World
06 Forum
10 News
12 Server
20 PHP
===============
к примеру я сделал запрос SELECT * FROM tbl WHERE id=10
как узнать какая она по последовательности, то есть News идёт 3 по счёту в базе данных...
я не думаю, что кроме "ручных методов" - циклов, нет других - более рациональные, скоростные и менее ресурсоёмкие.
помогите плииз!=) | |
|
|
|
|
|
|
|
для: JET_LI
(21.10.2009 в 20:35)
| | о каких циклах речь?
введите дополнительное поле которое будет содержать порядковый номер (актуальность которого вам придётся поддерживать самому), но если честно хотелось бы узнать зачем вам порядковый номер строки? | |
|
|
|
|
|
|
|
для: Valick
(22.10.2009 в 08:32)
| | объясняю!+)
нужно узнать номер страницы где будет находиться то или иное сообщение!
вот, например, выдаётся пользователю сообщение определённое нужно узнать на какой страницы оно будет находиться.
вот например само кол-во страниц определяется так:
$count="SELECT COUNT(*) FROM tbl";
$page=ceil($count[0]/15); // То есть 15 сообщений на каждой страницы
|
а мне надо номер страницы то есть:
$numb // нужно как-то значение задать - порядковый номер сообщения
$ipage=ceil($numb[0]/15); // получился номер страницы
|
вот и вопрос! как узнать порядковый номер? | |
|
|
|
|
|
|
|
для: JET_LI
(22.10.2009 в 13:36)
| | У записей в твблице нет собственного порядка.
Точнее так. Какой-то сиюминутный порядок у них всё же есть, но
а) теория РБД исключаeт порядок как строк так и столбцов таблицы из её субъектов,
б) программист должен считать , что нет даже этого сиюминутного порядка, и при необходимости устанавливать свой - явный.
Если он, конечно, хочет писать надежные программы.
ORDER BY name в ответе cheops'a - это та самая попытка установить явный порядок.
Наверное надо упомянуть, что в других СУБД есть средства отклониться от базы теории, и запросить номер строки в запросе (функция RANK() в MSSQL к примеру) . В MySQL таких средств нет.
Соответственно, в простых случаях потребуется писать запрос вроде
SELECT COUNT(id) FROM tbl WHERE id < $id
В сложных... | |
|
|
|
|
|
|
|
для: JET_LI
(21.10.2009 в 20:35)
| | Обычно, если важен порядок вывода строк - их сортируют при помощи конструкции ORDER BY
SELECT * FROM tbl
WHERE id=10
ORDER BY name
|
Иногда даже специально вводя числовое поле, чтобы задать порядок следования строк. | |
|
|
|
|
|
|
|
для: cheops
(22.10.2009 в 12:12)
| | никто меня не понял меня не понял!
сортировать я умею=)
но не буду же я считать какое место занимает запись, если в таблице лежит записей около
1 000 000!
мне нужно это для чего?
для того чтобы узнать какое место пользователь занимает на моём сайте.
вот например SELECT MAX(visits) FROM tbl_vis
то есть пользователь занимает 1 место, потому что имеет самое большое число посещений.
а как узнать следующие места? 2 3 4 5 6 и так далее? | |
|
|
|
|
|
|
|
для: JET_LI
(26.10.2009 в 18:09)
| | но не буду же я считать какое место занимает запись, если в таблице лежит записей около
1 000 000!
просто добавь воды LIMIT, раз уж умеете сортировать, то будьте любезны и уметь ограничивать результаты выборки | |
|
|
|