Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Soutěž

Sponzorem soutěže je:

IDIF

 

Kde se koná výstava fotografií Luďka Vojtěchovského?

V dnešní soutěži hrajeme o:



Štítky (tagy) a jejich vytažení z databáze

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: Štítky (tagy) a jejich vytažení z databáze

Autor: pufik ♂

13:48:19 10.02.2014

Děkuji za odpověď.
Chápu správně že pokud bych chtěl vybrat místo dvou štítků, štítky tři tak bych SQL příkaz doplnil o řádek:

JOIN stitky stitky3 ON stitky_fotky.id_stitek = stitky3.id AND stitky3.nazev="tráva"

tedy pro každý další štítek by byl další řádek?

Citovat příspěvek

 

Re: Štítky (tagy) a jejich vytažení z databáze

Autor: RomanZ ♂

12:56:09 10.02.2014

SELECT *, fotky.id as idf, stitky.id as ids
FROM fotky
JOIN stitky_fotky ON fotky.id = stitky_fotky.id_fotka
JOIN stitky stitky1 ON stitky_fotky.id_stitek = stitky1.id AND stitky1.nazev="voda"
JOIN stitky stitky2 ON stitky_fotky.id_stitek = stitky2.id AND stitky2.nazev="ptáci"

... finta spočívá v tom, že tabulku stitky jsem připojil dvakrát: jednou s aliasem stitky1 a jednou s aliasem stitky2.

Citovat příspěvek

 

Štítky (tagy) a jejich vytažení z databáze

Autor: pufik ♂

11:24:11 10.02.2014

Zdravím vás,
řeším takový problémek, mám tabulku s fotkami "fotky" (id, nazev, popis) a tabulku se štítkami "stitky" (id, nazevstitku) a pak tabulku s prirazenim stitku k fotkam "stitky_fotky" (id, id_fotka, id_stitek).

Tedy jedna fotka může mít přiřazeno několik štítků, které fotku charakterizují např. voda, tráva, ptáci, budova atd.
Jeden štítek může být samozřejmě přiřazen několika fotkám.

Můj problém je v tom že nevím jak vytáhnout data kdy chci řekněme všechny fotky na kterých je zároveň (AND) voda a ptáci. Tedy mám vyhledávací formulář kde jsou vypsané všechny štítky a já zatrhnu stítek "voda" a "ptáci".

Jako dotaz SQL používám zhruba toto:

SELECT *, fotky.id as idf, stitky.id as ids
FROM fotky, stitky, stitky_fotky
WHERE fotky.id = stitky_fotky.id_fotka AND stitky_fotky.id_stitek = stitky.id AND ( stitky.nazev="voda" OR stitky.nazev="ptáci")

Což mi samozřejmě vyhodí všechny fotky které mají buď štítek "voda" nebo štítek "ptáci".

Bohužel já nevím jak udělat aby to vyhodilo pouze fotky které mají přiřazené štítky oba, nikoliv jen jeden z nich...

Jde to při stávající struktuře DB vůbec nějak zrealizovat? Jak se problém štítků řeší systémově (nějaký unifikovaný optimální přístup)? Děkuji za případnou pomoc, nasměrování...

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: