Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Błąd w insercie?
SEM
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.08.2012

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
untorched
post
Post #2





Grupa: Zarejestrowani
Postów: 318
Pomógł: 76
Dołączył: 27.12.2011
Skąd: Dąbrowa Górnicza

Ostrzeżenie: (0%)
-----


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];


Ten post edytował untorched 19.08.2012, 23:32:02
Go to the top of the page
+Quote Post
SEM
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.08.2012

Ostrzeżenie: (0%)
-----


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 (IMG:style_emoticons/default/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');


Ten post edytował SEM 20.08.2012, 00:37:48
Go to the top of the page
+Quote Post
mmmmmmm
post
Post #4





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

Ostrzeżenie: (0%)
-----


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');
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 17:35