Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Błąd w insercie?
Forum PHP.pl > Forum > Przedszkole
SEM
Witam
Mam problem z następującym fragmentem kodu. Zlokalizowałem już źródło problemu ale nie rozumiem czemu nie chce to działać. Problem dokładnie leży w zmiennych pozyskiwanych z dwóch pierwszych zapytań.
  1. $pracownik_id['kurier_id'].' ';
  2. $klient['ulica'].' ';
  3. $klient['dom'].' ';
  4. $klient['mieszkanie'].' ';
  5. $klient['poczta'].' ';
  6. $klient['miasto'].' ';


Wyświetlane są poprawnie a cała reszta inserta działa tak jak powinna.

  1. $pracownik_id = mysql_fetch_assoc(mysql_query("SELECT kurier_id FROM kody WHERE kod = '".$k_pocz."' "));
  2. $klient = mysql_fetch_assoc(mysql_query("SELECT * FROM users WHERE id = '".$_SESSION['id']."' "));
  3.  
  4. mysql_query("INSERT INTO przesylki (user_id, usered_id, pracownik_id, imie, nazwisko, telefon, opis, waga, wartosc, ilosc, ulica, ulica2, dom, dom2, mieszkanie, mieszkanie2, poczta, poczta2, miasto, miasto2, stan, data_rej, data_mod) VALUES(".$_SESSION['id'].", ".$_SESSION['id'].", ".$pracownik_id['kurier_id'].", '$imie', '$nazwisko', '$telefon', '$opis', '$waga', '$wartosc', '$ilosc', '$ulica', ".$klient['ulica'].", '$nr_d', ".$klient['dom'].", '$nr_m', ".$klient['mieszkanie'].", '$k_pocz', ".$klient['poczta'].", '$miasto', ".$klient['miasto'].", 'czeka', now(), now())") or die('Błąd zapytania');


Czy wyników tych zapytań nie można od razu przekazać do inserta? Czy może mam gdzieś jakiś błąd którego nie mogę się dopatrzeć?

Pozdrawiam
untorched
Drobne nakierowanie: mysql_fetch_assoc zwraca tablicę otrzymanych rekordów, tak więc rozwiązać można to w taki sposób
  1. $resp = mysql_fetch_assoc(mysql_query("SELECT kurier_id FROM kody WHERE kod = '".$k_pocz."' "));
  2. $pracownik_id = $resp[0];
  3.  
  4. $resk = mysql_fetch_assoc(mysql_query("SELECT * FROM users WHERE id = '".$_SESSION['id']."' "));
  5. $klient = $resk[0];
SEM
Już wiem gdzie miałem błąd. Próbowałem nawet wcześniej przypisać do zmiennych, tak jak Ty mi to teraz napisałeś Untorched (dzięki za przypomnienie z tymi tabelami bo to co zrobiłem wcześniej było zupełnie przypadkowe). Problem leżał w tym, że moje filtrowanie danych z formularza wywalało mi "-" z kodu pocztowego i zapytanie nie mogło nic znaleźć.

Podaje działający kod bo może się komuś też przyda biggrin.gif.

  1. $pracownik_id = mysql_fetch_assoc(mysql_query("SELECT kurier_id FROM kody WHERE kod = '".$k_pocz."' "));
  2. $klient = mysql_fetch_assoc(mysql_query("SELECT * FROM users WHERE id = '".$_SESSION['id']."' "));
  3.  
  4. $prac_id = $pracownik_id['kurier_id'];
  5. $ulica2 = $klient['ulica'];
  6. $dom2 = $klient['dom'];
  7. $mieszkanie2 = $klient['mieszkanie'];
  8. $poczta2 = $klient['poczta'];
  9. $miasto2 = $klient['miasto'];
  10.  
  11. mysql_query("INSERT INTO przesylki (user_id, usered_id, pracownik_id, imie, nazwisko, telefon, opis, waga, wartosc, ilosc, ulica, ulica2, dom, dom2, mieszkanie, mieszkanie2, poczta, poczta2, miasto, miasto2, stan, data_rej, data_mod) VALUES(".$_SESSION['id'].", ".$_SESSION['id'].", '$prac_id', '$imie', '$nazwisko', '$telefon', '$opis', '$waga', '$wartosc', '$ilosc', '$ulica', '$ulica2', '$nr_d', '$dom2', '$nr_m', '$mieszkanie2', '$k_pocz', '$poczta2', '$miasto', '$miasto2', 'czeka', now(), now())") or die('Błąd zapytania');
mmmmmmm
mniej więcej tak:
  1. mysql_query("INSERT INTO przesylki (user_id, usered_id, pracownik_id, imie, nazwisko, telefon, opis, waga, wartosc, ilosc, ulica, ulica2, dom, dom2, mieszkanie, mieszkanie2, poczta, poczta2, miasto, miasto2, stan, data_rej, data_mod)
  2. SELECT ".$_SESSION['id'].", ".$_SESSION['id'].", (SELECT kurier_id FROM kody WHERE kod = '".$k_pocz."'), '$imie', '$nazwisko', '$telefon', '$opis', '$waga', '$wartosc', '$ilosc', '$ulica', `ulica`, '$nr_d', `dom`, '$nr_m', `mieszkanie`, '$k_pocz', `poczta`, '$miasto', `miasto`, 'czeka', now(), now() FROM users WHERE id = '".$_SESSION['id']."") or die('Błąd zapytania');
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.