Autor | Zpráva | ||
---|---|---|---|
Lorem Profil * |
#1 · Zasláno: 17. 1. 2012, 22:13:17
Dobrý den,
dělám si takový malinký prototyp e-shopu a narazila jsem na první problém. Kategorie, ve kterých se má produkt zobrazovat se ukládá do sloupce "parent_id" ve znění např. "1,2,5". Zasekla jsem se nad tím, jak vytvořit sql dotaz pro count produktů v kategorii. Chtělo by to sestavit nějak takhle : $pro2_exists = @mysql_result(mysql_query('SELECT COUNT(id) FROM goods WHERE parent_id=\''.$kategorie[2].'\''),0); Co potřebuji nějak pozměnit je právě, že potřebuji vytáhnout buď to první číslo z řady, nebo právě druhé, tedy něco jako : $pro2_exists = @mysql_result(mysql_query('SELECT COUNT(id) FROM goods WHERE parent_id[2]=\''.$kategorie[2].'\''),0); Prosím o radu :(( |
||
Bertram Profil |
#2 · Zasláno: 17. 1. 2012, 23:44:48
Lorem:
Dobrý den, jestli tomu dobře rozumím, tak bude nejlepší změnit způsob ukládání dat v db. Můžete mit napříklat databázovou tabulku, která bude spojovat produkt s kategorií, ale pokud bude daný produkt patřit do tří kategorií, tak dude mít v tabulce tři řádky místo jednoho, který máte string kategorií oddělený čárkami. Takže něco ve stylu: produkt_id | kategorie_id 1 | 1 1 | 2 1 | 5 2 | 5 |
||
Lorem Profil * |
#3 · Zasláno: 18. 1. 2012, 08:29:39 · Upravil/a: Lorem
Ano, ale to stále neřeší můj problém :) a to sice vkládání jednoho produktu do nekonečně mnoho kategorií :/ (Nebo alespoň do omezení 700 znaků u varcharu)
Ano, ale to stále neřeší můj problém :) a to sice vkládání jednoho produktu do nekonečně mnoho kategorií :/ (Nebo alespoň do omezení 700 znaků u varcharu). Takhle se vše tedy jednoduše zapíše 1,2,3,4,5,... Ale takhle bych musel mít pro každou kategorii zvlášť sloupec... |
||
ninja Profil |
#4 · Zasláno: 18. 1. 2012, 08:57:31
Lorem: Kategorie produktu ukládejte do samostatné tabulky, která bude jen vazebná. Tedy product_id, kategorie_id. Jedná se o klasickou vazbu M:N.
|
||
Lorem Profil * |
#5 · Zasláno: 18. 1. 2012, 09:24:59
Bertram :
Aha, až teď mi to došlo :) děkuji za radu :D Ninja : Jo jo, teď už to určo takhle udělám :D Děkuji |
||
Časová prodleva: 12 let
|
0