Помогите сделать выборку

Статус
В этой теме нельзя размещать новые ответы.

lamo

Постоялец
Регистрация
1 Июл 2008
Сообщения
51
Реакции
4
не могу допетрить...

есть таблицы:

CREATE TABLE questions
(
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id),
zag VARCHAR(200),
txt TEXT,
subrubr SMALLINT,
...
)


CREATE TABLE rubr
(
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id),
name VARCHAR(150)
)

CREATE TABLE subrubr
(
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id),
rubr_id SMALLINT,
name VARCHAR(150)
)

В таблице questions хранится значение id подрубрики (subrubr), сама подрубрика связана с рубрикой полем rubr_id (id рубрики)

Как при выводе рубрик сформировать запрос на вывод количества объявлений (questions)? Что бы можно было вывести количество около каждой рубрики.

Я в этом не силен попробовал так:
$query = "SELECT COUNT(questions.id) FROM rubr,subrubr,questions WHERE questions.subrubr=subrubr.rubr_id AND subrubr.rubr_id=".$razd;

Но возращается нулевой результат. :(
 
попробуй
$query = "SELECT subrubr.name,COUNT(questions.id) FROM subrubr,questions WHERE questions.subrubr=subrubr.id AND subrubr.rubr_id = ".$rubr." GROUP BY questions.subrubr";
 
не, что то не канает то же =(
 
Значит что-то не так делаешь, покажи ещё код и что ты пытаешься дальше выводить
 
PHP:
function get_count_from_quest($razd)
 {
	 // $query = "SELECT COUNT(questions.id) FROM rubr,subrubr,questions WHERE questions.subrubr=subrubr.rubr_id AND subrubr.rubr_id=".$razd;
	 $query = "SELECT COUNT(questions.id) FROM subrubr,questions WHERE questions.subrubr=subrubr.id AND subrubr.rubr_id = ".$rubr." GROUP BY questions.subrubr";
	  $result_id = mysql_query ($query) or print ("<p><b>Ошибка</b> в функции print_razdel</p>");
	  $row = mysql_fetch_row ($result_id);
	  return $row[0];
 }

Должна функция возращать количество объявлений у указанного раздела, таблица с объявлениями содержит только подраздел.
 
попробуй
$query = "SELECT subrubr.name,COUNT(questions.id) FROM subrubr,questions WHERE questions.subrubr=subrubr.id AND subrubr.rubr_id = ".$rubr." GROUP BY questions.subrubr";


Так групировать нужно по полю, которое в запросе

$query = "SELECT subrubr.name,COUNT(questions.id) FROM subrubr,questions WHERE questions.subrubr=subrubr.id AND subrubr.rubr_id = ".$rubr." GROUP BY subrubr.name"

Добавлено через 4 минуты
Вот если в функции
Код:
function get_count_from_quest($razd) 
 { 
      $query = "SELECT subrubr.name,COUNT(questions.id) FROM subrubr,questions WHERE questions.subrubr=subrubr.id AND subrubr.rubr_id = ".$razd." GROUP BY subrubr.name";
      $result_id = mysql_query ($query) or print ("<p><b>Ошибка</b> в функции print_razdel</p>"); 
      $row = mysql_fetch_row ($result_id); 
      return $row[0]; 
 }
 
  • Нравится
Реакции: lamo
ну чтобы показывало кол-во вопросов в разделе, пробуй
Код:
function get_count_from_quest($razd) {
	  $query = "SELECT COUNT(questions.id) FROM subrubr,questions WHERE questions.subrubr=subrubr.id AND subrubr.rubr_id=".$razd." GROUP BY subrubr.rubr_id";
      $result_id = mysql_query($query) or die("<p><b>Ошибка</b> в функции print_razdel</p>");
      $row = mysql_fetch_row($result_id);
      return $row[0];
	  } 
print get_count_from_quest(1);

Добавлено через 2 минуты
Так групировать нужно по полю, которое в запросе
Ну по сути нужно, да. Но тут работает нормально так )))
 
  • Нравится
Реакции: lamo
Всем спасибо, заработало!
 
Как кстати я на шел ответ на свой вопрос! Спасибо!
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху