[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Подсчет новостей в категории
fatboy
Как это можно реализовать? думал, думал, таки и не придумал...

Имеется таблица с категориями, и таблица с новостями, где ячейка cat это id категории...



Спустя 2 минуты, 17 секунд (23.06.2009 - 08:33) Kuliev написал(а):
fatboy
Ну так в чем проблема то.
Используй COUNT и GROUP BY в запросе.

Спустя 2 часа, 56 минут, 16 секунд (23.06.2009 - 11:30) freed-master написал(а):
Я в подобных ситуациях добовляю поле, например `type`, а потом запросом считаю сколько строк где `type` равен нужному значению...

Спустя 17 минут, 7 секунд (23.06.2009 - 11:47) glock18 написал(а):
Kuliev'а слушай biggrin.gif freed-master, сейчас насоветуешь smile.gif

и человек станет добавлять повсюду поля type.

Спустя 2 минуты, 49 секунд (23.06.2009 - 11:50) freed-master написал(а):
А если имена и данные разные?

Спустя 1 минута, 35 секунд (23.06.2009 - 11:51) Kuliev написал(а):
Цитата (freed-master @ 23.06.2009 - 13:50)
А если имена и данные разные?

Что вы имеете ввиду, продемонстрируйте! blink.gif

Спустя 9 минут, 31 секунда (23.06.2009 - 12:01) freed-master написал(а):
Пардон, не учел
Цитата
где ячейка cat это id категории

что уже есть деление на категории

Спустя 15 минут, 1 секунда (23.06.2009 - 12:16) ИНСИ написал(а):
Думаю, это сойдет =))
$cat - категория, к которой должны относиться заметки.
PHP
$query mysql_query("SELECT id, cat FROM post WHERE cat='$cat'");
if(
mysql_num_rows($query) > 0)
$count_post count($query);  echo $count_post; }
else { echo 
'Нет заметок в базе'; }

Спустя 15 минут, 25 секунд (23.06.2009 - 12:31) Kuliev написал(а):
Цитата (welbox2 @ 23.06.2009 - 14:16)
Думаю, это сойдет =))
$cat - категория, к которой должны относиться заметки.
PHP
$query = "SELECT id, cat FROM post WHERE cat='$cat'";
$result = if(mysql_num_rows($query) > 0)
{
 $count_post = count($query);  echo $count_post; }
else { echo 'Нет заметок в базе'; }

Это все делается в одном запросе.

Спустя 12 минут, 23 секунды (23.06.2009 - 12:44) Kuliev написал(а):
Примерно так wink.gif
SQL
SELECT COUNT(`news`.`id_news`) AS c
FROM `cat`, `news`
WHERE `cat`.`id_cat` = `news`.`id_cat`
GROUP BY `news`.`id_cat`


Спустя 7 минут, 45 секунд (23.06.2009 - 12:51) glock18 написал(а):
PHP
$query "SELECT id, cat FROM post WHERE cat='$cat'";
$count_post count($query);


эт чиво такое то вообще ? подсчет количества символов в строке count'ом (все равно надо strlen юзать) или подсчет количества постов (тогда странно что count берется от строки). и, разумеется, я не затрагиваю то, что упомянул Kuliev, потому что это очевидно.

Спустя 5 часов, 12 минут, 23 секунды (23.06.2009 - 18:04) Sylex написал(а):
Цитата (welbox2 @ 23.06.2009 - 15:16)
Думаю, это сойдет =))
$cat - категория, к которой должны относиться заметки.
PHP
$query = "SELECT id, cat FROM post WHERE cat='$cat'";
$result = if(mysql_num_rows($query) > 0)
{
 $count_post = count($query);  echo $count_post; }
else { echo 'Нет заметок в базе'; }

гы smile.gif

Спустя 13 минут, 8 секунд (23.06.2009 - 18:17) gooder отдыхающий написал(а):
а что вы так не любите алиасы?
удобнее читать все-таки...

Спустя 14 часов, 57 минут, 36 секунд (24.06.2009 - 09:14) ИНСИ написал(а):
критикуете код?! Тогда прочитайте еще раз слова автора:
Цитата
думал, думал, таки и не придумал...


думаете ваш код типа:
PHP
SELECT COUNT(`news`.`id_news`) AS c
FROM 
`cat`, `news`
WHERE `cat`.`id_cat` = `news`.`id_cat`
GROUP BY `news`.`id_cat`


что-то объясняет человеку? учит чему-то? ясно что вы эксперты, но помимо просто кода, надо дать возможность человеку самому разобраться в коде!

Я тоже мог, вообще вот как сделать:
PHP
$result mysql_query("SELECT COUNT(id) FROM post WHERE cat='$cat'");


тоже знаю, что можно так, но я думаю о том, чтобы человеку дать первый шаг, нормальный, а там чтобы он сам поэксперементировал. Я думаю, можно было просто дать ему и другой пример и все, но не критиковать РАБОТАЮЩИЙ код!

Спустя 5 минут, 32 секунды (24.06.2009 - 09:20) glock18 написал(а):
Цитата (welbox2 @ 24.06.2009 - 06:14)
тоже знаю, что можно так, но я думаю о том, чтобы человеку дать первый шаг, нормальный, а там чтобы он сам поэксперементировал. Я думаю, можно было просто дать ему и другой пример и все, но не критиковать РАБОТАЮЩИЙ код!


biggrin.gif laugh.gif biggrin.gif Ухаха. Извини, конечно, за такую бурную реакцию, но не мог бы ты ради интереса запустить этот код у себя:

PHP
$query "SELECT id, cat FROM post WHERE cat='$cat'";
$result = if(mysql_num_rows($query) > 0)
$count_post count($query);  echo $count_post; }
else { echo 
'Нет заметок в базе'; }


ну мало того он у тебя работать не будет, так он, как уже я описывал выше, лишен логики.

Спустя 27 минут, 55 секунд (24.06.2009 - 09:48) Kuliev написал(а):
welbox2
Цитата

PHP
$result mysql_query("SELECT COUNT(id) FROM post WHERE cat='$cat'");



А ты за id категории будешь отдельно в базу залазить, а потом в цикле прогонять?

Или у тебя есть более изощренный способ это сделать?

Спустя 7 часов, 5 минут, 39 секунд (24.06.2009 - 16:53) ИНСИ написал(а):
Цитата
PHP
$query = "SELECT id, cat FROM post WHERE cat='$cat'";
$result = if(mysql_num_rows($query) > 0)
{
 $count_post = count($query);  echo $count_post; }
else { echo 'Нет заметок в базе'; }


ну мало того он у тебя работать не будет, так он, как уже я описывал выше, лишен логики.


ой, только что заметил =)))) принимаю обличения.... простите =))))))) только что заметил, вот исправленно:

PHP
$query = mysql_query("SELECT id, cat FROM post WHERE cat='$cat'");
if(
mysql_num_rows($query) > 0)
{
 $count_post = count($query);  echo $count_post; }
else { echo 'Нет заметок в базе'; }


ЕЩЕ РАЗ ИЗВИНИТЕ +))) просто видать очень усталый был =)))

Спустя 2 минуты, 33 секунды (24.06.2009 - 16:56) ИНСИ написал(а):
Цитата (Kuliev @ 24.06.2009 - 06:48)
welbox2
Цитата

PHP
$result = mysql_query("SELECT COUNT(id) FROM post WHERE cat='$cat'");



А ты за id категории будешь отдельно в базу залазить, а потом в цикле прогонять?

Или у тебя есть более изощренный способ это сделать?

Kuliev не совсем тебя понял? что имеешь в виду?

Спустя 3 часа, 6 минут, 38 секунд (24.06.2009 - 20:03) Kuliev написал(а):
welbox2
Откуда ты взял переменную $cat

Вот еще вариант посчитать число новостей в категории
PHP
$sql = ("SELECT COUNT(id_cat) FROM news WHERE id_cat  IN (SELECT id_cat FROM cat) GROUP BY id_cat ");

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.