[php][mysql] Przydzielanie ID do do innej tabeli |
[php][mysql] Przydzielanie ID do do innej tabeli |
22.03.2018, 02:11:45
Post
#1
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 0 Dołączył: 22.08.2009 Ostrzeżenie: (0%) |
Witam,
wpisuje w formularzu dane. Wysyłam je i w bazie wszystko ładnie się wpisuje, nadaje się ID itd. Słowem wszystko gra. Pomyślałem żeby przy okazji wypełniania formularza zapytać użytkownika o inne dane które będą wpisywane do innej tabeli. I teraz mam takie tabele: 1. Samochod ID | Marka | Model | Nr. rejestracyjny | i inne Wypełniam formularz, pojawia się nowy wpis i wskakuje ID. Tyle mam teraz i działa. Teraz zaczynają się schody (dla mnie) Pomyślałem że dodam tabele Oleje w której jest lista dostępnych nazw i tabele łączącą ID samochodu z ID oleju (zakładam że samochód może jeździć na paru olejach) 2 Olej i tam ID | nazwa a| nazwa b | nazwa c| itd Teraz zrobiłem tabele: 3.Samochod Olej ID | ID samochodu | ID Oleju Teraz problem. Gdy zakładam profil samochodu czyli tabela pierwsza (to mam) i w tym samym momencie chce wpisać w tabele nr 3 ID samochodu którego w sumie jeszcze nie znam bo nie wysłałem formularza to jak to sprytnie zrobić żeby to samo ID samochodu trafiło do ID tabeli 3? Bo z ID oleju z tabeli nr2 nie ma problemu bo ona istnieje i wystarczy odczytać ID. Myślałem już żeby najpierw tworzyć profil samochodu a dopiero później w jakimś innym formularzu pytać o rodzaj oleju bo wtedy bym znał już i wiedział jak odczytać ID samochodu. A tu jest to co mam jeśli chodzi o przesyłanie do bazy do tabeli nr1
Ten post edytował matius71 22.03.2018, 13:15:46 |
|
|
22.03.2018, 07:53:11
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
W linii 6 dodajesz nowy samochód, w linii 16 pobierasz jego ID (w przypadku MySQL nie jest potrzebna nazwa sekwencji przekazywana do tej funkcji).
Skoro masz ID samochodu, to możesz wstawić dane do tabeli 3. -------------------- |
|
|
22.03.2018, 13:33:15
Post
#3
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 0 Dołączył: 22.08.2009 Ostrzeżenie: (0%) |
Czyli w linii 17 muszę wstawić:
Coś takiego? Bo mi chodzi głównie o to że puki nie zostaną wstawione dane nowego samochodu to nie istnieje jeszcze ID tego samochodu które muszę wstawić do tabeli nr 3 |
|
|
22.03.2018, 13:40:43
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Tak.
-------------------- |
|
|
22.03.2018, 20:14:23
Post
#5
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 0 Dołączył: 22.08.2009 Ostrzeżenie: (0%) |
Leci "Pomógł" bo wszystko pięknie śmiga!
Właściwie mam jeszcze jeden problem i tyczy się właściwie tej samej bazy. Pobieram wartości z bazy i wklepuje je w chekcbox o tak:
Mogę je sobie pięknie wyświetlić które wybrałem:
Wszysko działa tylko nie potrafie ich wysłać do bazy danych tak żeby każdy FuelID był w oddzielnym wierszu i miał to samo samochodID. Nie byłoby problemu gdybym miał wyświetlane na sztywno ilość boxów do zaznaczenia. Jakie trzeba zapytanie zrobić żeby dodawało się tyle wierszy w bazie co wybranych opcji? |
|
|
22.03.2018, 20:21:55
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
$_POST['fuelId'] jest tablicą, przecież taką utworzyłeś w HTML i też wyświetlasz jej całą zawartość jako string.
Skoro tablica to for, albo foreach. A tak przy okazji <input> to tag samozamykający się, więc: <input> lub <input/>. <div> raczej nie ma typu checkbox. -------------------- |
|
|
23.03.2018, 18:30:20
Post
#7
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 0 Dołączył: 22.08.2009 Ostrzeżenie: (0%) |
Faktycznie trochę bzdur tu jest które są wynikiem poprzednich zmagań i po prostu nie wykasowałem tego i zapomniałem Już usunięte!
Dobra, wracając do problemu mam teraz coś takiego co całkiem ładnie śmiga z pętlą for:
O ile echo jest w pętli to wyświetla się dobrze bo jest w pętli a jak jest już gdzieś indziej w kodzie to już się wyświetla jedna wartość. Jak powinienem zapisywać to w bazie? Czy w linii 4 powinienem po prostu dodać zapytanie do bazy z insertem? Oczywiście linia 5 jest tylko po to żebym mógł zobaczyć czy dział i jej nie będzie ;P |
|
|
23.03.2018, 19:07:05
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Tak, w pętli każdy INSERT z osobna. W przypadku PDO pomocne będzie użycie bindParam, dzięki temu przygotowujesz raz zapytanie (prepare), a w pętli tylko wykonujesz (execute).
Albo poza pętlą, wtedy musisz przygotować sobie dane w pętli: https://stackoverflow.com/questions/2645621...n-php-pdo-mysql -------------------- |
|
|
25.03.2018, 18:30:48
Post
#9
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 0 Dołączył: 22.08.2009 Ostrzeżenie: (0%) |
Ajjjjjj.. coś mnie to przerasta, może jakieś podpowiedzi bo nie widze tego
|
|
|
25.03.2018, 18:48:51
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Czego nie widzisz?
Robisz zwykły INSERT, ale w pętli. Jeśli chcesz zrobić jeden INSERT wielu rekordów naraz (poza pętlą), to wtedy musi mieć np. taką postać:
-------------------- |
|
|
26.03.2018, 12:19:32
Post
#11
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 0 Dołączył: 22.08.2009 Ostrzeżenie: (0%) |
No dobra ale jeśli poza pętlą chcę i nie wiem ile będzie checkboxów bo teraz sa 3 a w przyszłości może będzie więcej to jak to zapisać żeby w zapytaniu się to zmieniało automatycznie?
|
|
|
26.03.2018, 12:39:17
Post
#12
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
W linku, który podałem są przykłady.
-------------------- |
|
|
Wersja Lo-Fi | Aktualny czas: 19.04.2024 - 19:31 |