Sčítání článků podle kategorií

Vývojová prostředí, aplikace, skripty, http://www... síťové programy, internet, sdílení...
Odpovědět
KapaCZ
Začátečník
Začátečník
Registrován: 06. srp 2006

Sčítání článků podle kategorií

Příspěvek od KapaCZ »

Chtěl bych mít vedle výpisu kategorie počet článků které v dané kategori jsou. (např web http://www.freezy.cz to tak má) Sešít všechny články dokaážu a to pomocí

Kód: Vybrat vše

$count_blog = mysql_fetch_row(mysql_query("SELECT COUNT(*) FROM juw_clanky"));
echo $count_blog[0];
Problém ale nastává když má jít o kategorie. Jelikož ty se do stránky přidávájí pomocí proměnné:

Kód: Vybrat vše

 while($vysledek1 = mysql_fetch_array($sql1)){
  echo "<li";
   if(isset($_GET["kategorie"]) AND $_GET["kategorie"] == $vysledek1["id"]) {
    echo " class=\"current_page_item\"";
   }
  echo "><a href=\"./?kategorie=".$vysledek1["id"]."\">".$vysledek1["jmeno"]."&nbsp;[";
 
ZDE MÁ BÝT KOD NA SČÍTÁNÍ
      
  echo "]</a></li>";
  

 }
A proto nemám vůbec tušení jak je sčítat.

SQL:

Kód: Vybrat vše

--
-- Struktura tabulky `juw_clanky`
--

DROP TABLE IF EXISTS `juw_clanky`;
CREATE TABLE IF NOT EXISTS `juw_clanky` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nadpis` varchar(1000) COLLATE utf8_czech_ci NOT NULL,
  `text1` varchar(1000) COLLATE utf8_czech_ci NOT NULL,
  `text` varchar(4000) COLLATE utf8_czech_ci NOT NULL,
  `autor` varchar(1000) COLLATE utf8_czech_ci NOT NULL,
  `cas` varchar(1000) COLLATE utf8_czech_ci NOT NULL,
  `kategorie` int(9) NOT NULL,
  `publikovat` varchar(3) COLLATE utf8_czech_ci NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci AUTO_INCREMENT=22 ;

--
-- Vypisuji data pro tabulku `juw_clanky`
--

INSERT INTO `juw_clanky` (`id`, `nadpis`, `text1`, `text`, `autor`, `cas`, `kategorie`, `publikovat`) VALUES
(13, 'aaaaaa', '<p>aaaaaa</p>', '<p>aaaaaa</p>', '1', '23/09/2009 08:11:58', 9, 'ano');
(18, 'bbbbbb', '<p>bbbbbb</p>', '<p>bbbbbb</p>', '1', '225/09/2009 12:24:26', 7, 'ano');
(22, 'cccccc', '<p>eeeeee</p>', '<p>oooooo</p>', '1', '26/09/2009 09:01:38', 8, 'ano');
Samozřejmě rád přijmu i jiné návrhy jaký kod na sčítání použít.
OndraSter
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 22. úno 2006
Bydliště: Praha / ČVUT FIT
Kontaktovat uživatele:

Re: Sčítání článků podle kategorií

Příspěvek od OndraSter »

SELECT COUNT(clanky.id) AS clanku, kat.nazev AS kategorie FROM juw_kategorie AS kat LEFT JOIN juw_clanky AS clanky ON kat.id=clanky.kategorie GROUP BY kat.id


Takhle, nebo nějak podobně by to mělo být.
PC: i5-2500k 4.5GHz/24GB RAM/GTX560 Ti 1GB/>5TB - W7 Prof x64; Microsoft SideWinder X3 notebook: HP 6715b (4GB RAM) - W7 Prof x64;
mobil: Nokia Lumia 800 Cyan, 16GB; tablet: Toshiba Portege M200 (2GB, 64GB SSD, GeForce FX5200) - W7 Prof x32


Nahraďte Arduino výkonnější variantou!
Vývojová prostředí a nástroje | Webové prohlížeče | Seznam freehostingů
KapaCZ
Začátečník
Začátečník
Registrován: 06. srp 2006

Re: Sčítání článků podle kategorií

Příspěvek od KapaCZ »

z toho nejsem moudrej
bubanek
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 24. dub 2005
Bydliště: D1

Re: Sčítání článků podle kategorií

Příspěvek od bubanek »

To jsme dva :)
arxeiss
Začátečník
Začátečník
Uživatelský avatar
Registrován: 19. črc 2008
Bydliště: Krmelín (předměstí Ostravy)
Kontaktovat uživatele:

Re: Sčítání článků podle kategorií

Příspěvek od arxeiss »

3 :wink: Taky by se mi hodilo kdyby to Ondra vysvětlil :oops: Předem díky
PC : CPU: C2D E5200 2500Mhz @ 3750Mhz a AC Freezer 7PRO MB: Gigabyte GA-P31-DS3L rev.2,1 GPU: ATI Radeon 3650HD 256MB RAM: A-Data Vitesta 2x2GB Zdroj: Forton OEM 400W HDD: Samsung F2 500GB
Netbook : Asus EEE CPU: Intel Atom N270 1,6GHz RAM: A-Data 2GB HDD: 250GB 5400ot/min
OndraSter
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 22. úno 2006
Bydliště: Praha / ČVUT FIT
Kontaktovat uživatele:

Re: Sčítání článků podle kategorií

Příspěvek od OndraSter »

SQL dotaz který vybere:

název kategorie (kategorie) a počet článků v něm (clanku), pripadne si tam ještě přidej kat.id (id) pro vybrání aj ID té kategorie.

SQL dotaz jde tak, že vybere tabulku juw_kategorie, zároveň k tomu otevře pomocí LEFT JOIN tabulku juw_clanky a vybere z toho počet článků, pro které platí že kategorie=kat.id. Kdyby to byl výběr bez LEFT JOIN a jen podmínka v WHERE, tak to nevybere kategorie s 0 články.
PC: i5-2500k 4.5GHz/24GB RAM/GTX560 Ti 1GB/>5TB - W7 Prof x64; Microsoft SideWinder X3 notebook: HP 6715b (4GB RAM) - W7 Prof x64;
mobil: Nokia Lumia 800 Cyan, 16GB; tablet: Toshiba Portege M200 (2GB, 64GB SSD, GeForce FX5200) - W7 Prof x32


Nahraďte Arduino výkonnější variantou!
Vývojová prostředí a nástroje | Webové prohlížeče | Seznam freehostingů
KapaCZ
Začátečník
Začátečník
Registrován: 06. srp 2006

Re: Sčítání článků podle kategorií

Příspěvek od KapaCZ »

bohužel mi to nefunguje. nic se nezobrazí.
OndraSter
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 22. úno 2006
Bydliště: Praha / ČVUT FIT
Kontaktovat uživatele:

Re: Sčítání článků podle kategorií

Příspěvek od OndraSter »

echo mysql_error(); nic?

Možná jsem se někde upsal, těžko říct, nemám přístup k DB.
PC: i5-2500k 4.5GHz/24GB RAM/GTX560 Ti 1GB/>5TB - W7 Prof x64; Microsoft SideWinder X3 notebook: HP 6715b (4GB RAM) - W7 Prof x64;
mobil: Nokia Lumia 800 Cyan, 16GB; tablet: Toshiba Portege M200 (2GB, 64GB SSD, GeForce FX5200) - W7 Prof x32


Nahraďte Arduino výkonnější variantou!
Vývojová prostředí a nástroje | Webové prohlížeče | Seznam freehostingů
KapaCZ
Začátečník
Začátečník
Registrován: 06. srp 2006

Re: Sčítání článků podle kategorií

Příspěvek od KapaCZ »

Unknown column 'kat.nazev' in 'field list'
Odpovědět

Zpět na „Programování a web“