Autor | Zpráva | ||
---|---|---|---|
radekzatec Profil |
#1 · Zasláno: 11. 1. 2010, 14:29:18 · Upravil/a: radekzatec
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 * |
#2 · Zasláno: 11. 1. 2010, 14:42:40
např. lze definovat, že select má ignorovat totožné řádky
select distinct nazevKat from... |
||
radekzatec Profil |
#3 · Zasláno: 11. 1. 2010, 14:52:27
Kajman:
Skvělé tohle funguje. Ale nebráním se i jiným řešením. |
||
Časová prodleva: 14 let
|
0