Autor Zpráva
radekzatec
Profil
Dobrý den,
řeším menší problém a nevím jak na něj. Nikdy jsem neřešil dotazy v rámci relace.

Mám 4 tabulky InnoDB
autori - IDautora, autor, funkce
kategorie - IDkat, nazevKat
zdroje - IDzdroj, nazevZdroj
clanky - IDclanek, nadpis, clanek, date, IDautora, IDzdroj, IDkat
relace
FOREIGN KEY  clanky.IDkat = kategorie.IDkat
FOREIGN KEY  clanky.IDautora = autori.IDautora
FOREIGN KEY  clanky.IDzdroj = zdroje.IDzdroj


řeším dotazy
potřebuji vytvořit submenu na stránkách, které bude tvořeno položkama ze sloupce kategorie.nazevKat, to není problém - lehký select.
Já potřebuji, ale udělat, aby se načetly jen kategorie které už mají výskyt v tabulce clanky.IDkat.
to jsem udělal takto:
$mysqldb->query("SELECT
                	  nazevKat 
                 FROM
	                  kategorie,
	                  clanky 
                 WHERE
	                  clanky.IDkat = kategorie.IDkat");


V tabulce clanky jsou jen tři položky dvě mají nastavené IDkat stejně "Legislativa" a třetí je rozdílný "Soutěže". Takže by mi mělo menu vypsat celkem dvě položky z tabulky kategorie i když tam je položek 9 a to Legislativa a Soutěže. (Potřebuji aby se mi automatizovalo menu, jakmile přibude članek v nové kategorii tak se objeví v menu do té doby ne).
<?php
    /* Příprava SQL dotazu */
    $mysqldb->query("SELECT nazevKat
                            FROM kategorie, clanky
                            WHERE clanky.IDkat = kategorie.IDkat");

    /* Zobrazení výsledku v HTML */

        while ( $row = $mysqldb->fetchObject()) {

?>
                                <li><a href="" title=""><?php echo $row->nazevKat; ?></a></li>
<?php

}
   /* Uvolnit výsledek */
   mysql_free_result($result);
?>


Ale realita je taková že se mi načtou položky tři v menu se zobrazi
Legislativa
Legislativa
Souteže

toto bych potřeboval udělat tak aby se vždy zobrazila jen jedna z položek. Možná by se hodilo i malé vysvětlení co úprava konkrétně udělala a asi i proč. Myslím že se dostanu do konfliktu až budu tvořit dotazy na výběr članku z kategorie A od autora A (ovšem, že v kategorii budou članky jak z různých kategorií, tak to samé od různých autoru).

Předem děkuji za radu a vysvětlení kde je chyba.
Kajman_
Profil *
např. lze definovat, že select má ignorovat totožné řádky
select distinct nazevKat from...
radekzatec
Profil
Kajman:
Skvělé tohle funguje. Ale nebráním se i jiným řešením.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: