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

Форум MySQL

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

 

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

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

тема: как создать условие для SELECT COUNT?
 
 автор: Junkie25   (05.01.2009 в 16:36)   письмо автору
 
 

Здравсвуйте. Хочу сделать постраничную навигацию с использованием 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

не могу доехать, как можно сосчитать сколько строк он выаст

  Ответить  
 
 автор: Trianon   (05.01.2009 в 16:50)   письмо автору
 
   для: Junkie25   (05.01.2009 в 16:36)
 

city_name - уникальный ключ?
city_id - первичный ключ?

  Ответить  
 
 автор: Junkie25   (05.01.2009 в 17:03)   письмо автору
 
   для: 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;

  Ответить  
 
 автор: Trianon   (05.01.2009 в 17:56)   письмо автору
 
   для: Junkie25   (05.01.2009 в 17:03)
 

>а уникальный - не повторяется?
да.

>могут повторяться,

в таком случае запрос
SELECT city_name, city_id FROM `cityes` ... GROUP BY city_name
оказывается неоднозначным.

  Ответить  
 
 автор: Junkie25   (05.01.2009 в 18:20)   письмо автору
 
   для: Trianon   (05.01.2009 в 17:56)
 

тоесть ничего у меня не выйдет?

  Ответить  
 
 автор: Junkie25   (05.01.2009 в 18:32)   письмо автору
 
   для: Trianon   (05.01.2009 в 17:56)
 

В одном регионе одинаковых городов не будет, получается, в данном запросе city_name: уникалый

  Ответить  
 
 автор: Trianon   (06.01.2009 в 10:14)   письмо автору
 
   для: Junkie25   (05.01.2009 в 18:32)
 

если получается, что уникальный, зачем вообще GROUP BY писать?

  Ответить  
 
 автор: Junkie25   (06.01.2009 в 15:01)   письмо автору
 
   для: Trianon   (06.01.2009 в 10:14)
 

Только сейчас обратил внимание на
GROUP BY, он здесь действительно не нужен...

  Ответить  
 
 автор: Junkie25   (05.01.2009 в 18:34)   письмо автору
 
   для: Trianon   (05.01.2009 в 17:56)
 

уже часов 15 голову ломаю, устал, не сразу доходит... )))

  Ответить  
 
 автор: Junkie25   (06.01.2009 в 05:37)   письмо автору
 
   для: 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;");
$count0;
 while(
$cnt mysql_fetch_array($count_array))
  {
    ++
$count;
  }

echo 
$count;
?>

выводит то, что мне надо, но помоему, будет лишним делать такой подсчет. Может это сразу из mysql можно вывести?

  Ответить  
 
 автор: Trianon   (06.01.2009 в 10:13)   письмо автору
 
   для: Junkie25   (06.01.2009 в 05:37)
 

Вообще-то есть SELECT SQL_CALC_FOUND_ROWS ... и SELECT FOUND_ROWS()

  Ответить  
 
 автор: Junkie25   (06.01.2009 в 10:46)   письмо автору
 
   для: Trianon   (06.01.2009 в 10:13)
 

В mysql ничего не соображаю, первый раз взялся писать что- то с использованием бд.
можно подробнее?

  Ответить  
 
 автор: Trianon   (06.01.2009 в 11:23)   письмо автору
 
   для: Junkie25   (06.01.2009 в 10:46)
 

http://dev.mysql.com/doc/refman/5.1/en/information-functions.html#function_found-rows

  Ответить  
 
 автор: Junkie25   (06.01.2009 в 14:57)   письмо автору
 
   для: Trianon   (06.01.2009 в 11:23)
 

Я и по русски не особо понимаю ))))
А английский так вообще...
Спросил у дорогу гугла, почитал по русски, разобрался, работает, то, что надо.
СПАСИБО!!!

  Ответить  
Rambler's Top100
вверх

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