| Autor | Zpráva | ||
|---|---|---|---|
| Sylar Profil * |
#1 · Zasláno: 10. 7. 2008, 03:25:16
Zdravím,
potřeboval bych poradit s ukládáním dat do db. Mám registrační formulář. User do něj vyplnuje své jméno, email a heslo které se ukládají do tabulky `users`, dál vyplňuje svojí adresu, město, psč a stát, které se ukádají do tabulky `adresy` a dál vyplnuje stránku, kterou chce zaregistrovat, její název a třeba url, což se ukládá do tabulky `stranky`. To všechno zvládnou triviální dotazy INSERT INTO. Potřebuji ale propojit tabulky `users`, `adresy` a `stranky` relacemi 1:N tak, že : - 1 uživatel může mít zaregistrováno více stránek, ale jedna stránka může být zaregistrována pouze jedním uživatelem - jeden uživatel může bydlet pouze na jedné adrese, ale jednu adresu může mít více uživatelů Do tabulky `users` tedy potřebuji uložit ID adresy a do tabulky `stranky` potřebuji uložit ID usera. Nenapadá mě jiný způsob než SELECT id FROM table ORDER BY id DESC LIMIT 1; Nevím, ale jestli je to to nejlepší řešení, pokud ne, rád bych kdybyste mi někdo prozradil lepší :-) 2) Druhý dotaz by byl při kontrole již vložených záznamů. Např. v databázi již bude adresa "Ulice 33, Brno, 600 50". Přijde USER a do formuláře natuká "Ulice 33, Brno, 600 50" a já chci aby se mu přiřadilo ID této adresy, nikoliv aby se vytvořila nová. Napdá mne způsob SELECTem si vypsat všechny ulice, ifem zkontrlovat jestli se schodují se zadanou, pokud ano, vypsat si všechny údaje ze sloupce město a opět ifem zkontrolovat zda-li se schodují se zadaným údajem, pokud ano, dotřetice vypsat vše ze sloupce psč a dotřetice (:-)) ifem zkontrolovat se zdaným údajem. Pokud se vše schoduje, uložit ID adresy k USEROVI, pokud ne, vložit novou adresu do tabulky, vypsat si pomocí DESC její ID a to uložit USEROVI .... je toto "dobré" řešení ? Pokud ne, opět prosím o korekci :-) Omlouvám se za sloh, ale snažil jsem se vše co nejlépe vysvětlit, snad se mi to povedlo. Všem co si dají práci to přečíst a odpovědět moc díky :-) |
||
| Joker Profil |
#2 · Zasláno: 10. 7. 2008, 07:24:03 · Upravil/a: Joker
Sylar
SELECT id FROM table ORDER BY id DESC LIMIT 1; Lepší je nejdřív vložit uživatele a potom získat jeho ID v MySQL: SELECT LAST_INSERT_ID() FROM users v PHP: $id = mysql_insert_id(); |
||
|
Časová prodleva: 17 let
|
|||
0