![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 23.03.2015 Ostrzeżenie: (0%) ![]() ![]() |
Witam, stworzyłem bazę danych i chciałbym stworzyć na stronie możliwość dodawania użytkowników do bazy.
W formularzu do tworzenia konta chcę, aby osoba określiła następujące parametry: Imię, Nazwisko, Pesel - tabela osoby ulica, kod_pocztowy, miasto - tabela adresy telefon, email - tabela kontakty Tabela Osoby posiada dodatkowo klucze obce - Adresy_id, Kontakty_id. Tabele adresy i kontakty prócz wyżej wymienionych pól, posiadają jeszcze id (auto increment) Chciałbym się dowiedzieć w jaki sposób zrobić, żeby poprzez jeden formularz wypełniło tabelę kontakty, adresy oraz osoby. Problem głównie dotyczy kluczy obcych, ponieważ nie wiem w jaki sposób zrobić, żeby np. ID (adresy/kontakty) były identyczne jak Adresy_id (osoby). Widzę to na takiej zasadzie: 1. Użytkownik wpisuje wszystkie dane. 2. Dane zapisują się w zmiennych. 3. Poleceniem INSERT dane są najpierw wrzucane do tabeli adresy.
4. Poleceniem SELECT zostaje sprawdzone jakie ID posiada wcześniej wpisany adres 5. ID zostaje przekopiowane do zmiennej $adresy_id 6. Poleceniem INSERT dane wrzucane są do tabeli kontakty.
7. Poleceniem SELECT zostaje sprawdzone jakie ID posiada wcześniej wpisany kontakt 8. ID zostaje przekopiowane do zmiennej $kontakty_id 9. Poleceniem INSERT dane wrzucane są do tabeli osoby.
10. Usunięcie wszystkich zmiennych Z PHP i MySQL mam do czynienia od niedawna, dlatego sądzę, że to nie jest ani poprawne, ani optymalne rozwiązanie. Znacie drogę, dzięki której będę mógł wybrnąć z tego problemu? Ten post edytował Wojciechovsky 30.03.2015, 01:00:35 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 381 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Nie musisz dodatkowo odpytywać bazę o id
http://php.net/manual/en/pdo.lastinsertid.php Dodatkowo, w zależności od tego czy chcesz wszystko albo nic, użyj transakcji i rollback. No i oczywiście PDO nie mysql_* Aha, kluczami głównymi powinny być INT AUTO_INCREMENT bo chyba o to też pytasz. Typ InnoDB + klucze obce. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 18.10.2025 - 13:32 |