Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php/MySQL] numer klienta vs. zamowienie w sklepie
lukash82
post
Post #1





Grupa: Zarejestrowani
Postów: 320
Pomógł: 2
Dołączył: 17.03.2006
Skąd: Siemianowice

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


Witam. Mam problem z przypisywaniem numeru klienta do zamowienia w sklepie. Tzn samo przypisywanie dziala za pierwszym razem gdy klient pierwszy raz sklada zamowienie. Problem pojawia sie gdy drugi raz ten sam klient chce cos zamowic. Moze troche kodu:
  1. <?php
  2. $query = "SELECT * FROM klient WHERE (Imie = '$Imie' AND Nazwisko = '$Nazwisko' AND Adres = '$Adres' AND Miasto = '$Miasto')";
  3. $results = mysql_query($query) or (mysql_error());
  4. $rows = mysql_num_rows($results);
  5. if ($rows < 1) {
  6.  
  7. $query2 = "INSERT INTO klient (Imie, Nazwisko, Adres, Miasto, Wojewodztwo, Kod, Telefon_dom, Telefon_kom, 
    Email)
  8. VALUES ('$Imie','$Nazwisko','$Adres','$Miasto','$Wojewodztwo','$Kod','$Telefon_dom','$Telefon_kom','$Email')";
  9. $insert = mysql_query($query2) or (mysql_error());
  10. $custid = mysql_insert_id();
  11. }
  12.  
  13. if ($custid) { $Id_Klient = $custid;
  14. }
  15.  
  16. $Dostawa = $_POST['przesylka'];
  17. $query3 = "INSERT INTO zamowienie (Id_Klient, Wstepna, Dostawa, Data) VALUES ('$Id_Klient','$total','$Dostawa','$today')";
  18. $insert2 = mysql_query($query3) or (mysql_error());
  19. $orderid = mysql_insert_id();
  20. ?>

A wiec tak. W pierwszej czesci sprawdzam czy mam takiego klienta w bazie, jesli nie to wpisuje go do bazy i nadaje mu jakis numer. I to dziala bez problemu. Gdy za drugim razem ten sam osobnik zlozy zamowienie to do tabeli zamowien wpsuje mi Id_Klient jako "0". Wyczytalem w manualu, ze to moze byc spowodowane tym, ze uzywam tam funkcji
  1. <?php
  2. $custid = mysql_insert_id();
  3. ?>

Ona zwraca id jakie bylo automatycznie wygenerowane dla ostatniego wpisu tylko wlasnie gdy nic nie zostanie wygenerowane jak w przypadku wlasnie gdy juz mam takiego klienta to zostanie przypisana wartosc "0". Jak cos takiego obejsc? Myslalem, zeby do $custid napisac zamiast tej funkcji jakies zapytanie ale wlasnie nie wiem jak bo juz probowalem wpisywac rozne selecty ale cos srednio mi to dzialalo:/ Moze istnieje jakas funkcja w php o ktorej jeszcze nie wiem... Prosze o jakas podpowiedz. Z gory dziekuje i pozdrawiam, Lukasz.

Ten post edytował lukash82 28.05.2006, 09:07:16
Go to the top of the page
+Quote Post
krzyszbi
post
Post #2





Grupa: Zarejestrowani
Postów: 251
Pomógł: 13
Dołączył: 15.09.2005

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


ale ty nic nie robisz jak taki klijęt istnieje
daj else
  1. <?php
  2. if ($rows < 1)
  3. {
  4. //tu masz ok
  5. }
  6. else
  7. {
  8. $row = mysql_fetch_array($result);
  9. $custid = $row['id'];
  10. }
  11. ?>

i powinno byc ok guitar.gif


--------------------
Everything should be made as simple as possible, but not simpler. - A.Eainstein
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 10:48