|
|
|
| Здравсвуйте. Хочу сделать постраничную навигацию с использованием LIMIT для такого запроса:
SELECT city_name, city_id FROM `cityes` WHERE city_region = (SELECT city_region FROM `cityes` WHERE city_id = '1') GROUP BY city_name ORDER BY city_id ASC
|
не могу доехать, как можно сосчитать сколько строк он выаст | |
|
|
|
|
|
|
|
для: Junkie25
(05.01.2009 в 16:36)
| | city_name - уникальный ключ?
city_id - первичный ключ? | |
|
|
|
|
|
|
|
для: Trianon
(05.01.2009 в 16:50)
| | city_id - первичный ключ.
а уникальный - не повторяется? могут повторяться, вот таблица, для наглядности:
-- список городов --
CREATE TABLE cityes(
city_id int(9) NOT NULL auto_increment, -- id города
city_name tinytext NOT NULL, -- название
city_country tinytext NOT NULL, -- страна
city_region tinytext NOT NULL, -- в каком регионе
PRIMARY KEY (city_id)
)TYPE MyISAM DEFAULT CHARSET=cp1251;
|
| |
|
|
|
|
|
|
|
для: Junkie25
(05.01.2009 в 17:03)
| | >а уникальный - не повторяется?
да.
>могут повторяться,
в таком случае запрос
SELECT city_name, city_id FROM `cityes` ... GROUP BY city_name
оказывается неоднозначным. | |
|
|
|
|
|
|
|
для: Trianon
(05.01.2009 в 17:56)
| | тоесть ничего у меня не выйдет? | |
|
|
|
|
|
|
|
для: Trianon
(05.01.2009 в 17:56)
| | В одном регионе одинаковых городов не будет, получается, в данном запросе city_name: уникалый | |
|
|
|
|
|
|
|
для: Junkie25
(05.01.2009 в 18:32)
| | если получается, что уникальный, зачем вообще GROUP BY писать? | |
|
|
|
|
|
|
|
для: Trianon
(06.01.2009 в 10:14)
| | Только сейчас обратил внимание на
GROUP BY, он здесь действительно не нужен... | |
|
|
|
|
|
|
|
для: Trianon
(05.01.2009 в 17:56)
| | уже часов 15 голову ломаю, устал, не сразу доходит... ))) | |
|
|
|
|
|
|
|
для: Trianon
(05.01.2009 в 17:56)
| | сделал такой вариант:
<?php
$count_array = mysql_query("SELECT COUNT(*) FROM `cityes` WHERE city_region = (SELECT city_region FROM `cityes` WHERE city_id = '1') GROUP BY city_name;");
$count= 0;
while($cnt = mysql_fetch_array($count_array))
{
++$count;
}
echo $count;
?>
|
выводит то, что мне надо, но помоему, будет лишним делать такой подсчет. Может это сразу из mysql можно вывести? | |
|
|
|
|
|
|
|
для: Junkie25
(06.01.2009 в 05:37)
| | Вообще-то есть SELECT SQL_CALC_FOUND_ROWS ... и SELECT FOUND_ROWS() | |
|
|
|
|
|
|
|
для: Trianon
(06.01.2009 в 10:13)
| | В mysql ничего не соображаю, первый раз взялся писать что- то с использованием бд.
можно подробнее? | |
|
|
|
|
|
|
|
|
для: Trianon
(06.01.2009 в 11:23)
| | Я и по русски не особо понимаю ))))
А английский так вообще...
Спросил у дорогу гугла, почитал по русски, разобрался, работает, то, что надо.
СПАСИБО!!! | |
|
|
|