Jak vytahnout z DB vice vysledku a spojit je v jeden? – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Jak vytahnout z DB vice vysledku a spojit je v jeden? – MySQL – Fórum – Programujte.comJak vytahnout z DB vice vysledku a spojit je v jeden? – MySQL – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Genua0
Newbie
6. 1. 2008   #1
-
0
-

Zdravím,

potřeboval byhc poradist se sql dotazem v PHP.
Zkusím věc nejdříve popsat. :-)

Dejte tomu mám katalog, kde je vše roztříděno: masáže, kadeřnictví, manikůra, atd.
Tyto kategorie jsou v tabulce "katalog".

Dále mám 9 kriterií, podle kterých budu uživateli něco nabízet. Např. u kritéria č. 1 bude masáže a kadeřnictví.

A nyní potřebuju vytvořit dotaz, který zjistí co patří do kritéria č. 1 a vypíše masáže i kadeřnictví současně, aby to nebylo nejdřív všechny kadeřnictví a pak všechny masáže, ale obojí v jednom výsledku třeba pdle abecedy.

Napadlo mě si vytvořit tabulku Dite, kde budou sloupce kriterium a sluzba , v tom případě bych uložil do DB

kriterium: 1, sluzba: id_masaze

kriterium: 1, sluba: id_kadernictvi

Jak potom vložit do výsledku všechno, co je v kategorii masaze i kadernictvi zaroven? Myslim tim firmy v te kategorii?

DEkuji moc za radu, jak to vyresit:-)

Nahlásit jako SPAM
IP: 89.103.4.–
Reklama
Reklama
ench0
Stálý člen
6. 1. 2008   #2
-
0
-

ono není dobré když dáváš příklad dát jen jednu položku.. z toho se pak dá špatně vykoumat co myslíš.
Z toho co jsem pochopil bych nedělal druhou tabulku, ale pouze bych přidal sloupec "kriterium"
přiklad:
id - nazev - kriterium
1 - masaže - 1
2 - kadeřnictvi - 1
3 - manikůra - 2
pak stačí

select * from katalog where kriterium=1
- tím se ti vypíší masáže a kadeřnictví

když to pak budeš chtít splnit s další tabulkou kde budou podkategorie (nazveme si ji třeba subkategorie):
např masáže:
id - nazev - pid - ...
1 - thajska masaž - 1
2 - jiná masáž - 1
3 - fakt cool masáž - 1
4 - pánské stříhání - 2
5 - dámské stříhání -2

tak ti na vybrání všech položek s kriteriem 1 postačí dotaz jako tento:


select s.id from subkategorie s inner join katalog k on (k.id = s.pid) where k.kriterium=1

Nahlásit jako SPAM
IP: 88.146.205.–
I programování je pudová záležitost. Buď to pude, nebo to nepude
Genua0
Newbie
6. 1. 2008   #3
-
0
-

Díky moc, ale ono by to mělo být v jiné tabulce, jelikož jedna kategorie může být v několika kriteriích... Což je trošku složitější zase..:D

Nahlásit jako SPAM
IP: 89.103.4.–
6. 1. 2008   #4
-
0
-

Abych se priznal, tak to vubec nechapu a zavani to peknym bordelem v navrhu databaze.

Rekapitulace: Ty mas seznam firem, kazda z nich muze byt v nejake kategorii (i vice, to je ted jedno) a pak chces mit ta tvoje kriteria - jakesi filtry - kdyz si zobrazis kriterium 1 tak to ma vyplivnout kadernictvi a masaze, kdyz 2 tak zase jinou kombinaci...?

To by bylo asi takhle. Jedna se o 1:n spojeni, takze proste potrebujes zprostredkovatelskou tabulku, tu uz si nacrtni, ja ji pomenuju treba kriteria_list. Ta bude mit sloupecky id, kriterium a kategorie_id

SELECT * FROM firmy JOIN kategorie JOIN kriteria_list WHERE firmy.kategorie_id=kategorie.id AND katgerie.id=kriterie_list.kategorie_id AND kriteria_list.kriterium=1


Jinak dva SQL dotazy spojis afaik tak ze je napises za sebe a vlozis mezi ne slovicko UNION

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
Genua0
Newbie
6. 1. 2008   #5
-
0
-

Jee, to je přesně to, co jsem chtěl. Musím více prostudovat SQL dotazy, protože pořád používám PHP podmínky a jiné blbosti, jak se složitým SQL příkazům vyhnout...:-)

Díky za pomoc

Nahlásit jako SPAM
IP: 89.103.4.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 11 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý