Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Dodawanie rekordów z kilku tablic
Forum PHP.pl > Forum > Przedszkole
ghastblood
Witam mam taki mały problem normalnie dodawałem wartości z zaznaczonych checkboxów w ten sposób

  1.  
  2. db_connect($host, $user, $pass, $base);
  3.  
  4. $konkurencje1 = $_POST['konkurencja'];
  5.  
  6. $q5 = mysql_query("SELECT * FROM zawodnik WHERE zawodnik_nazwisko = '".$_POST['nazwisko_zawodnik']."' AND zawodnik_imie = '".$_POST['imie_zawodnik']."' ORDER BY zawodnik_id DESC LIMIT 1") or die(mysql_error());
  7.  
  8. $r5 = mysql_fetch_assoc($q5);
  9.  
  10. foreach($konkurencje1 as $id)
  11. {
  12. mysql_query("INSERT INTO zawodnik_konkurencje(zawodnik_konkurencje_id,zawodnik_konkurencje_zawodnik_id, zawodnik_konkurencje_konkurencje_id) VALUES ('', '".$r5['zawodnik_id']."', '".$id."')") or die(mysql_error());
  13. }
  14. db_close();
  15.  


a teraz mam taki że doszły mi jeszcze 3 tablice i pojawił się problem


  1. $pawilon1 = $_POST['pawilony'];
  2. $stanowisko1 = $_POST['stanowisko'];
  3. $godzina1 = $_POST['godzina'];



Jak dodawać dane za jednym zamachem? bo mógł bym zrobić 4 foreache i updatować dane ale to rozwiązane raczej nie jest optymalne.
ghastblood
Wow wasz chęć nabicia posta mnie powala jak nie zauważyłeś znam polecenie INSERT INTO oraz UPDATE moje pytanie dotyczy zupełnie czego innego.
b4rt3kk
Jeśli dobrze zrozumiałem problem, to zrób raczej cztery zapytania w jednym foreach. Jeśli nie w tym rzecz to opisz swój problem bardziej szczegółowo.
ghastblood
dodając 4 zapytania do jednego foreach 1 przebieg pętli będzie tworzył by 4 osobne rekordy. Chodzi mi o dodanie 4 różnych wartości z 4 różnych tablic do jednego rekordu.

tablica1 = dodaje mi 1 wartość do rekordu
tablica2 = dodaje mi 2 wartość do rekordu
itd.

tu jest kod który dodaje 1 wartość do mysql a konkretnie id_konkurencji
  1. foreach($konkurencje1 as $id)
  2. {
  3. mysql_query("INSERT INTO zawodnik_konkurencje(zawodnik_konkurencje_id,zawodnik_konkurencje_zawodnik_id, zawodnik_konkurencje_konkurencje_id) VALUES ('', '".$r5['zawodnik_id']."', '".$id."')") or die(mysql_error());
  4. }


a potrzebował bym dodać jeszcze pawilon stanowisko i godzinę.
deadwheel
Hmm moze tak jezeli masz tyle samo rekordow co tych checkboxow czyli poprostu jakbys wszedzie dodawal updejtowal to ja to widze tak

Robisz licznik i petla while i w petli dajesz sobie $tablica[$licznik] $tablica2[$licznik] itd i zapytanie
ghastblood
mam formularz po kolej

checkbox(name="konkurencja[id_konk]") - nazwa konkurencji - select(pawilon name="pawion[id_konk]") - select(stanowisko name="stanowisko[id_konk]") - select(godzina name="godzina[id_konk]")
i teraz
if(checkbox == checked) aktywuje selecty

jeden zaznaczony checkbox = 1 rekord czyli id, id_zawodnika, id_konkurencji , nazwa_pawilonu, numer_stanowiska, godzina

czyli przy 2 zaznaczonych checkboxach mam 4 tablice konkurencje(1,2) pawilon(50m, 25m) itd
b4rt3kk
Widzę że wszystkie te tablice powiązane są wspólnym kluczem ID, tak więc:


  1. foreach ($tablica as $key => $value) {
  2. echo $value . $tablica1[$key] . $tablica2[$key]; // itd.
  3. }



Rozumiesz w czym rzecz, prawda?
ghastblood
dzięki o to mi chodziło.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.