Stránka 1 z 1

SQL dotaz

Napsal: pát 8. led 2010, 22:22
od arxeiss
Zdravím, řeším jeden problém.
Mám 3 tabulky: Skupiny(id, nazev), Podskupiny(id, skupina, nazev), Produkty(...,podskupina,...)
Do tabulky skupiny budu dávat skupiny s ID a jejich názvem, do tabulky podskupiny id, v jaké jsou skupině a název, a do produktů do jaké patří podskupiny a pár dalších.

Řeším problém že někdo vybere skupinu, a dají se mu na výběr podskupiny, v případě že ale nenašel co mu vyhovuje bude tam možnost Nová, kde to inputu zadá název podskupiny která se pak přidá do složky Podskupiny s ID->A_I skupinou tu kterou vybral(skupiny nemůže vytvářet) a názvem který zadal.
To ale vše bude na jednom formuláři a když on dá potvrdit, tak do tabulky Produkty se musí zadat do sloupce podskupina ID té podskupiny kam patří.
Já ale nevím jak to zjistit abych nemusel dávat další dotaz kde dostanu poslední ID, a pak další dotaz kde přiřadím už ten produkt s ID které jsem vytáhl, muselo by se to řešit 3-mi příkazy. Nešlo by to nějak smrsknout do nejlépe jednoho?

Re: SQL dotaz

Napsal: pát 8. led 2010, 22:32
od OndraSter
Jednoho nevím, ale často je lepší dva primitivní, než jeden složitý.

Do dvou by to šlo tak, že budeš mít v inputech jednotlivé subkategorie tak, že value="<id>" a text bude název. Pak tam budeš mít jednu subkategorii natvrdo - Nová, s ID 0 (třeba). A ve skriptu dáš
if ($_POST['kategorie'] == 0 )
{
mysql_query('INSERT INTO subkategorie(skupina, nazev) VALUES (.....)');
$podskupinaID = mysql_last_id();
mysql_query('INSERT INTO produkty(... subkategorie ...) VALUES (...., ' . $podskupinaID . '....)' );
}

:)

Re: SQL dotaz

Napsal: pát 8. led 2010, 23:53
od arxeiss
tak jsou 3 když to tak vemeš, mysql_last_id(); je taky dotaz na SQL, toto jsem tak udělal, a právě jsem chtěl vědět jestli to nepůjde jednodušeji, díky.
Můžete LOCK