Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql] dlaczego INSERT wstawia dwa rekordy?
rml
post
Post #1





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 13.03.2005

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


witam,

mam powazny problem. ponizszy kod ma wstawiac do koszyka produkt jesli nie ma takiego produktu w koszyku lub dodawac wiecej sztuk do istniejacego juz w koszu produktu...

niestety zamiast 1 szt wstawia 2 szt a zamiast 5 szt wstawia 10 szt, itd...

co oznacza ze wykonuje oba wstawienia pomimo ze sa warunkowe...

dlaczego moje warunki nie dzialaja?

  1. <?php
  2.  
  3. if ($produkt == TRUE AND $szt == TRUE AND $SESS_exist == YES)
  4. {
  5. $q = mysql_query(&#092;"SELECT * from carts where login = '$SESS_login' and kod = '$produkt'\");
  6. $q1 = mysql_num_rows($q);
  7.  
  8. if ($q1 == 0)
  9. {
  10. mysql_query (&#092;"INSERT INTO carts (login,kod,szt) VALUES ('$SESS_login','$produkt','$szt')\");
  11. echo &#092;"Produkt został dodany.<br><br>\";
  12. }
  13. elseif ($q1 > 0)
  14. {
  15. $p = mysql_query(&#092;"SELECT * from carts where login = '$SESS_login' and kod = '$produkt'\");
  16. while (list ($_login, $_kod, $_szt) = mysql_fetch_row($p)) {
  17. $_ile = $_szt;
  18.  }
  19. $plus = $_ile + $szt;
  20. mysql_query(&#092;"UPDATE carts SET szt='$plus' WHERE login = '$SESS_login' and kod = '$produkt'\");
  21. echo &#092;"Produkt został dodany.<br><br>\";
  22. }
  23. }
  24. else
  25. {}
  26.  
  27. ?>


prosze o porady,
rml.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
zbig13
post
Post #2





Grupa: Zarejestrowani
Postów: 214
Pomógł: 0
Dołączył: 3.04.2004
Skąd: Legionowo

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


Jeśli są to dane pobierane z formularza to powinno być chyba $_POST[] a poza tym jak sprawdzasz czy zostało coś wpisane to nie sprawdzaj == TRUE tylko używaj funkcji empty" title="Zobacz w manualu PHP" target="_manual() tzn. zrób tak:
  1. <?php
  2.  
  3. if ( (!empty($_POST['produkt'])) && (!empty($_POST['$szt'])) && ($SESS_exist == YES) )
  4. {
  5.  
  6. ?>
Go to the top of the page
+Quote Post

Posty w temacie


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: 9.10.2025 - 18:44