Autor | Zpráva | ||
---|---|---|---|
lokix Profil |
#1 · Zasláno: 9. 11. 2010, 16:16:05
Zdravím všechny zde na fóru,
chtěl bych Vás požádat touto cestou o radu, pomoc či podrobnější nakopnutí jak vyřešit problém s INSERTEM dat do více tabulek. Snad nevadí, že jsem zvolil php kategorii ale jedná se jak o php tak i mysql. Jde mi o zápis / vložení produktů do kategorií a jejich vazební tabulkou (3 tabulky celkem). 1 Produkt má zatím jen jednu kategorii - výrobce ale do budoucna chci myslet na jiný projekt kde budou i podkategorie. Ale teď k problému: Jelikož mám tabulku "products" kde je:id , id_stranky, www,atd... pak tabulku "kategories": id,name (1-Výrobce 1;2-Výrobce2;atd...) a spojovací tabulku "product_kat": id,produkty,kategorie (1-1-1), kde id je jasné,produkty je id produktu a poslední kategorie je id kategorie. Níže uvádím includovaný soubor "uvod.php" který se načítá na střed stránky se selectem na kategorii co jsem tady na fóru našel a pár věcí tu a tam poupravil. Select funguje sice né tak jak bych chtěl úplně ale hlavní problém je jak udělat insert aby se vše zapsalo správně. Formulář mám a klasický insert zvládnu ale jen do jedné tabulky jenže já potřebuji insertnout data do "products" ale také do vazební tabulky "product_kat tzn. Vložím nový produkt a přidám mu např. ze selectu kategorie-výrobce aby byla vazba např. 1-1-1;2-2-3;atd... Předem děkuji za jakoukoliv pomoc a kdyby bylo potřeba něco dalšího vložit tak stačí napsat a je to tu. <?php require_once "adm/auth/inc/db_conn.php"; require_once('adm/auth/inc/Pager.class.php');//Slouzi pouze pro strankovani a odkaz na kod je: http://snipt.org/mmpop/ //vytvoreni objektu, jako parametry konstruktoru se //predavaji SQL dotaz a parametr URL, ktery bude pager //pouzivat pro odkazy na dalsi stranky $pager = new Pager('SELECT `products`.`nazev` AS productname, `kategories`.`name` AS katname, `www`, `cena`, `nazev`, `pictures` FROM `products` LEFT JOIN `product_kat` ON `products`.`id`=`product_kat`.`produkty` LEFT JOIN `kategories` ON `product_kat`.`kategorie`=`kategories`.`id` '.$wh.' ORDER BY '.$zarad.'', 'pages'); $pager->PageSize = $count; $pager->PagerAlign = "center"; //ziska z databaze pozadovanou cast vysledkove sady $pager->DataBind(); //postupne ziskavani jednotlivych zaznamu z vysledkove sady while ($obj = $pager->GetOne()) echo "<div class=\"ofer-box\"> <div class=\"ofer-box-top\"><!-- --></div> <a class=\"blue\" href=\"index.php?vyrobce=".$obj->katname."&read=".$obj->www."\">".$obj->nazev."</a> <a href=\"index.php?vyrobce=".$obj->katname."&read=".$obj->www."\"><img class=\"product\" src=\"img/".$obj->pictures."\" alt=\"\" /></a> <div class=\"order-btn\"><p>".$obj->cena." Kč</p> <a href=\"\"><img src=\"img/order-img.gif\" alt=\"\" /></a> <div class=\"order-btn-2\"><!-- --></div> </div> </div>"; //vypis odkazu na stranky //nebyly pouzity zadne mody, proto se pouzije //defaultni strankovani ?> |
||
xmark Profil |
#2 · Zasláno: 9. 11. 2010, 16:25:42
$qry = "INSERT INTO tbl1 (a, b, c) VALUES (1,2,3)"; $ret=mysql_query($qry); $nove_id= mysql_insert_id(); $qry = "INSERT INTO vazby (tbl1_id, x, y) VALUES (".$nove_id.",2,3)"; $ret=mysql_query($qry); |
||
xmark Profil |
#3 · Zasláno: 9. 11. 2010, 16:28:37
Ještě bych dodal, že aby to fungovalo, tak v první tabulce musí být zřejmě něco, co funguje jako ID, tedy nejlépe klasicky nastavený sloupec ID.
|
||
lokix Profil |
#4 · Zasláno: 10. 11. 2010, 08:48:23 · Upravil/a: lokix
xmark:
Díky vyzkouším. Jinak jak jsem psal tak první tabulka má i klasické id (auto_increment) které je navázáno na vazební tabulku. Update: Tak jsem to sprovoznil díky moc "xmark-u" rep+ |
||
Časová prodleva: 13 let
|
0