Autor Zpráva
krteczek
Profil
Dobrý večer, potřebuji sestrojit složitější dotaz (pro mne je to hodně složite, nějak se do těch skladaných db dotazu nemužu dostat)
o co mi jde:
Mám tři tabulky:

/****** Polozky tovaru ***********/
CREATE TABLE `polozky_tovaru` (
`pol_id` int(4) NOT NULL auto_increment,
`pol_kat_tovaru` tinyint(2) NOT NULL,
`pol_sek_tovaru` int(3) NOT NULL,
`pol_kod_id` varchar(20) collate utf8_unicode_ci NOT NULL,
`pol_katalog_id` varchar(20) collate utf8_unicode_ci NOT NULL,
`pol_nazov_sk` varchar(50) collate utf8_unicode_ci NOT NULL,
`pol_nazov_en` varchar(250) collate utf8_unicode_ci NOT NULL,
`pol_nazov_de` varchar(250) collate utf8_unicode_ci NOT NULL,
`pol_cena` float NOT NULL default '0',
PRIMARY KEY (`pol_id`),
KEY `typ_tovaru` (`pol_kat_tovaru`,`pol_kod_id`,`pol_katalog_id`,`pol_cena`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

/********** Sekce tovaru **************************/
CREATE TABLE `sekce_tovaru` (
`sek_id` int(3) NOT NULL auto_increment,
`sek_nazov_sk` varchar(250) collate utf8_unicode_ci NOT NULL,
`sek_nazov_en` varchar(250) collate utf8_unicode_ci NOT NULL,
`sek_nazov_de` varchar(250) collate utf8_unicode_ci NOT NULL,
`sek_kod_sekce` varchar(250) collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`sek_id`),
FULLTEXT KEY `sek_nazov_sk` (`sek_nazov_sk`,`sek_nazov_en`,`sek_nazov_de`,`sek_kod_sekce`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

/********* Kategorie tovaru ******************/
CREATE TABLE `kategorie_tovaru` (
`kat_id` tinyint(3) NOT NULL auto_increment,
`kat_nazov_sk` varchar(250) collate utf8_unicode_ci NOT NULL,
`kat_nazov_de` varchar(250) collate utf8_unicode_ci NOT NULL,
`kat_nazov_en` varchar(250) collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`kat_id`),
KEY `nazov` (`kat_nazov_sk`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci


tyto tabulky jsou provázané takto:

polozky_tovaru.pol_kat_tovaru = kategorie_tovaru.kat_id
polozky_tovaru.pol_sek_tovaru = sekce_tovaru.sek_id


a potřebuji z nich vytáhnout data tímto způsobem:
Podle proměnné (int)$kategorie, vytáhnout z kategorie_tovaru.kat_nazov_sk,
a zároveň z tabulky polozky_tovaru všechna data která mají v pol_kat_tovaru stejnou hodnotu jako je (int)$kategorie (nebo kategorie_tovaru.kat_id: je to stejne)
a zároveň z tabulky sekce_tovaru vytáhnout sek_nazov_sk podle id uloženého v polozky_tovaru.pol_sek_tovaru a ve výsledku je nahradit těmi texty.

dotaz který se mi zatím podařilo sestavit mi vrací všechen obsah db a některé hodnoty jsou nahrazene $kategorie.

$kategorie=4;
$dotaz="select
".T_kat_tovaru.".kat_nazov_".$lang." as kat_nazov,
".T_kat_tovaru.".kat_id as kat_id,
".T_pol_tovaru.".pol_kat_tovaru as pol_kat_tovaru,
".T_sek_tovaru.".sek_id as sek_id,
".T_sek_tovaru.".sek_nazov_".$lang." as sek_nazov,
".T_pol_tovaru.".pol_nazov_".$lang." as pol_nazov,
".T_pol_tovaru.".pol_kod_id as pol_kod_id,
".T_pol_tovaru.".pol_katalog_id as pol_katalog_id,
".T_pol_tovaru.".pol_cena as pol_cena
from
".T_pol_tovaru.",
".T_kat_tovaru.",
".T_sek_tovaru."
where
(".T_pol_tovaru.".pol_kat_tovaru=".$kategorie.") &&
(".T_kat_tovaru.".kat_id=".$kategorie.")

order by
".T_sek_tovaru.".sek_nazov_".$lang." asc,
".T_pol_tovaru.".pol_nazov_".$lang." asc
";


a ukázka toho co mi vrátí:

kat_nazov=>CB, kat_id=>4, pol_kat_tovaru=>4, sek_id=>9, sek_nazov=>cukrenky , pol_nazov=>, pol_kod_id=>464, pol_katalog_id=>, pol_cena=>0,
kat_nazov=>CB, kat_id=>4, pol_kat_tovaru=>4, sek_id=>9, sek_nazov=>cukrenky , pol_nazov=>, pol_kod_id=>347, pol_katalog_id=>, pol_cena=>0,
kat_nazov=>CB, kat_id=>4, pol_kat_tovaru=>4, sek_id=>9, sek_nazov=>cukrenky , pol_nazov=>, pol_kod_id=>469, pol_katalog_id=>, pol_cena=>0,

předem díky, krteczek
Toto téma je uzamčeno. Odpověď nelze zaslat.

0