Autor Zpráva
lokix
Profil
Zdravím všechny,

mám problém s výpisem vlastností produktů v mysql. Produkty jako takové vypisuji přes 3 tabulky (2 + spojovací) zde problém není, ale nyní sem musel kvůli změně produktů dát další tabulku kde jsou vlastnosti produktu: product_id, name, value a záznamy jsou: 1, určení, dámské; 1, ciferník, analogový; 2, určení, pánské; 2, ciferník, digitální. Jenže nevím jak vypsat tyto hodnoty když vazba na samotný produkt je id - id ale zde je stejných id (vlastností) mnohem víc. Snad jsem to popsal dostatečně a najde se někdo kdo mi pomůže či nakopne. Díky.
tiso
Profil
Všetko záleží od toho, ako chceš tie výsledky zobraziť. Pravdepodobne by bol najlepší druhý select na všetky vlastnosti produktov, ktoré zobrazuješ. Pomohlo by, ak by si uviedol i ten select, čo teraz máš.
Tori
Profil
lokix:
Koukněte na tento článek: http://php.vrana.cz/srovnani-dotazu-do-zavislych-tabulek.php
lokix
Profil
tiso: Tori:
Předem díky oběma ;)
Nakonec jsem to zjednodušil a je jen 1 tabulka:product -> kde je id, www, description, name, kategory a 2 tabulka: product_options -> kde product_id, name, value s hodnotami jako výše. Select tedy na samotný produkt použiju ten základní * na výběr všeho je to málo dat, ale jak zařadit do "řádku" i product_id, name, value viz výše.

Tori:
Koukal jsem na to co jste mi poslala od Jakuba, ale je to na mě trochu víc než asi zvládnu sám. Pochopil jsem snad to, že by byl nejlepší jeden dotaz, ale ten je dost komplikovaný.
tiso
Profil
lokix: pomôžeš aj ty nám? Síce si uviedol štruktúru tabuliek, ale neuviedol si či vypisuješ jeden produkt, alebo viacero, ani ako chceš aby vyzeral výstup. Nie slovný popis, ale príklad.
lokix
Profil
tiso:
Omlouvám se nějak mám toho moc a nestihl jsem to.
Jedná se o výpis jednoho produktu. Ostatní je zvládnuté. Je to tedy 1 produkt z 1 tabulky -> obecné věci jako jméno, popis, kategorie a k tomu potřebuju dostat ty vlastnosti z 2 tabulky kde jich je 5 i 15. Takže příklad výpisu který chci je: id, www, name, popis, kategorie/product_id, name, value,product_id, name, value, ... (1, hodinky-zelene, hodinky zelené, hodinky pro sportovce, armani, určení, dámské, ciferník, alalogový, ...)
tiso
Profil
lokix: ak môžu byť tie vlastnosti v jednom stĺpci:
SELECT product.*, GROUP_CONCAT(CONCAT(product_options.name, ', ', product_options.value) SEPARATOR ', ') AS properties
FROM poduct
JOIN product_options ON product.id = product_options.product_id
WHERE product.id = 1 -- id produktu ktory vyberas
-- GROUP BY product.id -- netreba pre jeden produkt
;

edit: oprava CONCATENATE -> CONCAT
lokix
Profil
tiso:
Moc díky zkusil jsem, ale vypisuje mi to divnej error: Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in F:\_dev\server2go\htdocs\_www\_test\db.php on line 11
Column count of mysql.proc is wrong. Expected 20, found 16. Created with MySQL 50041, now running 50146. Please use mysql_upgrade to fix this error.
Googlil jsem a rady na mysql_upgrade moc doporučované nejsou respektive to někdy dle lidí dělá bordel. Zkusím nejdřív na lokálu a uvidím. Setkal jsi se už s tím (snad nevadí tykání).
Kajman
Profil
lokix:
To bude chybou v dotazu. Zkuste nahratdit CONCATENATE za CONCAT.
lokix
Profil
Kajman:
Jsem *** je to tak a jede to. Moc díky ;)
tiso
Profil
sorry za chybu, zabudol som to opraviť.
lokix
Profil
tiso:
Díky jsi machr a všem za pomoc.

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: