Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][mysql] problem z kodem potwierdzajacym
hondek
post
Post #1





Grupa: Zarejestrowani
Postów: 355
Pomógł: 50
Dołączył: 20.08.2007
Skąd: Częstochowa

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


mam taki kod:
  1. <?php
  2. if(isset($_GET['code_zam'])) {
  3. polacz();
  4. $cod = $_GET['code_zam'];
  5. $zapytanie = "SELECT * FROM zamowienia WHERE code = '".$cod."' ";
  6. $dzialaj = mysql_query($zapytanie);
  7. $row = mysql_num_rows($dzialaj);
  8. if($row) {
  9. $pole = mysql_fetch_assoc($dzialaj);
  10. $zapytanie = "UPDATE zamowienia SET code = '0' WHERE code = '".$cod."' ";
  11. mysql_query($zapytanie);
  12. $code_zam = "Aktywowane";
  13. } else {
  14. $code_zam = "Błędny kod";
  15. }
  16. rozlacz();
  17. }
  18. ?>


I teraz, jeżeli kod znajduje się w bazie zmienia go na '0' i zmienna $code_zam przyjmuje "Błędny kod", gdzie jest problem?


--------------------
przetwornik yt na czasie :)
Go to the top of the page
+Quote Post
vtuner
post
Post #2





Grupa: Zarejestrowani
Postów: 220
Pomógł: 10
Dołączył: 23.08.2005
Skąd: Łódź

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


Znajdź:

  1. <?php
  2. if($row) {
  3. ?>


zamień na:

  1. <?php
  2. if($row > 0) {
  3. ?>
Go to the top of the page
+Quote Post
zakręcony
post
Post #3





Grupa: Zarejestrowani
Postów: 107
Pomógł: 10
Dołączył: 26.09.2007

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


co robi mysql_num_rows();? zwraca ilość wierszy, tak? 0 też jest ilością, tak? więc if($row) jest zawsze spełnione talk?

rozwiązanie: if($row>0)

edit:
ktos mnie uprzedził, ale nie skasuję, bys wiedział dlaczego nie działało, tak na przyszłośc winksmiley.jpg

Ten post edytował zakręcony 27.03.2008, 20:14:20


--------------------
Rachunkowość w biurze we Wrocławiu: biuro rachunkowe wrocław, miejca parkingowe przy Okęciu parking Okecie.
Go to the top of the page
+Quote Post
l0ud
post
Post #4





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


Ym... Na oko nie jest możliwe to co piszesz, czyli
Cytat
jeżeli kod znajduje się w bazie zmienia go na '0' i zmienna $code_zam przyjmuje "Błędny kod"

za jednym wywołaniem. Sprawdź to dokładniej. Rada vtuner'a jest stosowna ale w tym przypadku raczej nic nie da...

btw.

  1. <?php
  2. $pole = mysql_fetch_assoc($dzialaj);
  3. ?>


a po co to?


--------------------
XMPP: l0ud@chrome.pl
Go to the top of the page
+Quote Post
hondek
post
Post #5





Grupa: Zarejestrowani
Postów: 355
Pomógł: 50
Dołączył: 20.08.2007
Skąd: Częstochowa

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


Rozwiązałem to inaczej..
  1. <?php
  2. if(isset($_GET['code_zam'])) {
  3. polacz();
  4. $cod = $_GET['code_zam'];
  5. $zapytanie = "SELECT * FROM zamowienia WHERE code = '".$cod."' ";
  6. $dzialaj = mysql_query($zapytanie);
  7. $row = mysql_num_rows($dzialaj);
  8. if($row) {
  9. $zapytanie = "UPDATE zamowienia SET code = '0' WHERE code = '".$cod."' ";
  10. mysql_query($zapytanie);
  11. rozlacz();
  12. header("Location: index.php?zamowienie_c=1");
  13. } else {
  14. rozlacz();
  15. header("Location: index.php?zamowienie_c=0");
  16. }
  17. }
  18. ?>


To działa poprawnie, w tamtym kodzie nie warunek jest problemem... jakimś cudem kod wykonuje sie 2 razy smile.gif
Bo UPDATE w bazie sie wykonuje winksmiley.jpg a zmienna $code_zam przyjmowała "Błędny kod" dziwne.....

l0ud -> ta linijka nie jest potrzbna winksmiley.jpg fakt winksmiley.jpg

Ten post edytował hondek 27.03.2008, 20:17:49


--------------------
przetwornik yt na czasie :)
Go to the top of the page
+Quote Post
l0ud
post
Post #6





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


Jeżeli wykonuje się dwukrotnie, to powiedzmy szczerze... nie jest dobrze. Pewnie i header wysyła się teraz 2 razy.
Proponuję szukać przyczyny takiego stanu rzeczy, może daj więcej kodu (który dołącza ten)?


--------------------
XMPP: l0ud@chrome.pl
Go to the top of the page
+Quote Post
hondek
post
Post #7





Grupa: Zarejestrowani
Postów: 355
Pomógł: 50
Dołączył: 20.08.2007
Skąd: Częstochowa

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


to plik code_zam.php:
  1. <?php
  2. if(isset($_GET['code_zam'])) {
  3. polacz();
  4. $cod = $_GET['code_zam'];
  5. $zapytanie = "SELECT * FROM zamowienia WHERE code = '".$cod."' ";
  6. $dzialaj = mysql_query($zapytanie);
  7. $row = mysql_num_rows($dzialaj);
  8. if($row) {
  9. $pole = mysql_fetch_assoc($dzialaj);
  10. $zapytanie = "UPDATE zamowienia SET code = '0' WHERE code = '".$cod."' ";
  11. mysql_query($zapytanie);
  12. rozlacz();
  13. header("Location: index.php?zamowienie_c=1");
  14. } else {
  15. rozlacz();
  16. header("Location: index.php?zamowienie_c=0");
  17. }
  18. }
  19. ?>


i ten plik includuje na samym początku w index.php :/

a tak btw. zakrecony :
Wydaje mi sie, ze nie masz racji:) if($zmienna) sprawdzy czy $zmienna jest true czy false, wartosci inne od 0 to true a 0 to false... wiec twoja teoria chyba nie jest poprawna.

Ten post edytował hondek 27.03.2008, 20:24:41


--------------------
przetwornik yt na czasie :)
Go to the top of the page
+Quote Post
l0ud
post
Post #8





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


Zakomentuj te headery i przed pierwszym warunkiem dodaj echo '1';
Jeżeli w wyniku otrzymasz 11, pokaż index.php...


--------------------
XMPP: l0ud@chrome.pl
Go to the top of the page
+Quote Post
zakręcony
post
Post #9





Grupa: Zarejestrowani
Postów: 107
Pomógł: 10
Dołączył: 26.09.2007

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


@hondek, oczywiście masz rację, zakręciłem się winksmiley.jpg


--------------------
Rachunkowość w biurze we Wrocławiu: biuro rachunkowe wrocław, miejca parkingowe przy Okęciu parking Okecie.
Go to the top of the page
+Quote Post
hondek
post
Post #10





Grupa: Zarejestrowani
Postów: 355
Pomógł: 50
Dołączył: 20.08.2007
Skąd: Częstochowa

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


@l0ud więc tak :
  1. <?php
  2. if(isset($_GET['code_zam'])) {
  3. polacz();
  4. $cod = $_GET['code_zam'];
  5. $zapytanie = "SELECT * FROM zamowienia WHERE code = '".$cod."' ";
  6. $dzialaj = mysql_query($zapytanie);
  7. $row = mysql_num_rows($dzialaj);
  8. if($row) {
  9. $pole = mysql_fetch_assoc($dzialaj);
  10. $zapytanie = "UPDATE zamowienia SET code = '0' WHERE code = '".$cod."' ";
  11. mysql_query($zapytanie);
  12. rozlacz();
  13. echo "aktywowane";
  14. //$code_zam = "aktywowane";
  15. //header("Location: index.php?zamowienie_c=1");
  16. } else {
  17. rozlacz();
  18. echo "bledny ok";
  19. //$code_zam = "blędny kod";
  20. //header("Location: index.php?zamowienie_c=0");
  21. }
  22. }
  23. ?>

to wykonuje się ok, natomiast jak odkomentuje $code_zam.... to jak daje echo $code_zam w niżej w index.php wyrzuca bledny kod winksmiley.jpg


--------------------
przetwornik yt na czasie :)
Go to the top of the page
+Quote Post
l0ud
post
Post #11





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


hondek, czyli co dokładnie zwrócił powyższy kod?


--------------------
XMPP: l0ud@chrome.pl
Go to the top of the page
+Quote Post
hondek
post
Post #12





Grupa: Zarejestrowani
Postów: 355
Pomógł: 50
Dołączył: 20.08.2007
Skąd: Częstochowa

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


zauważylem pewną zależność:
jeżeli kod jest taki:
  1. <?php
  2. if(isset($_GET['code_zam'])) {
  3. polacz();
  4. $cod = $_GET['code_zam'];
  5. $zapytanie = "SELECT * FROM zamowienia WHERE code = '".$cod."' ";
  6. $dzialaj = mysql_query($zapytanie);
  7. $row = mysql_num_rows($dzialaj);
  8. if($row) {
  9. $pole = mysql_fetch_assoc($dzialaj);
  10. $zapytanie = "UPDATE zamowienia SET code = '0' WHERE code = '".$cod."' ";
  11. mysql_query($zapytanie);
  12. $code_zam = "Aktywowane";
  13. } else {
  14. $code_zam = "Błędny kod";
  15. }
  16. rozlacz();
  17. }
  18. ?>

działa źle, ale wystarczy ze rozlacze sie z bazą w if i w else... i dziala ok..
  1. <?php
  2. if(isset($_GET['code_zam'])) {
  3. polacz();
  4. $cod = $_GET['code_zam'];
  5. $zapytanie = "SELECT * FROM zamowienia WHERE code = '".$cod."' ";
  6. $dzialaj = mysql_query($zapytanie);
  7. $row = mysql_num_rows($dzialaj);
  8. if($row) {
  9. $pole = mysql_fetch_assoc($dzialaj);
  10. $zapytanie = "UPDATE zamowienia SET code = '0' WHERE code = '".$cod."' ";
  11. mysql_query($zapytanie);
  12. rozlacz();
  13. $code_zam = "Aktywowane";
  14. } else {
  15. rozlacz();
  16. $code_zam = "Błędny kod";
  17. }
  18. }
  19. ?>

i to działa ok.... ale dlaczego...?


--------------------
przetwornik yt na czasie :)
Go to the top of the page
+Quote Post
l0ud
post
Post #13





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


hondek, pokaż jak deklarujesz tą funkcję rozlacz();


--------------------
XMPP: l0ud@chrome.pl
Go to the top of the page
+Quote Post
hondek
post
Post #14





Grupa: Zarejestrowani
Postów: 355
Pomógł: 50
Dołączył: 20.08.2007
Skąd: Częstochowa

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


rzeczywiscie... bardzo mozliwe ze w niej tkwi problem... oto te funkcje :
  1. <?php
  2. function polacz() {
  3. require_once "tajne/setup.inc";
  4. @mysql_connect(host,dblogin,dbhaslo) or die("Nie mozna polaczyc sie z bazz danych");
  5. @mysql_select_db(db) or die("Nie mozna otworzyc bazy danych");
  6. }
  7. function rozlacz() {
  8. }
  9. ?>


--------------------
przetwornik yt na czasie :)
Go to the top of the page
+Quote Post
zakręcony
post
Post #15





Grupa: Zarejestrowani
Postów: 107
Pomógł: 10
Dołączył: 26.09.2007

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


jak odnosisz się do code_zam.php, nie jest to w jakiejś pętli?


--------------------
Rachunkowość w biurze we Wrocławiu: biuro rachunkowe wrocław, miejca parkingowe przy Okęciu parking Okecie.
Go to the top of the page
+Quote Post
hondek
post
Post #16





Grupa: Zarejestrowani
Postów: 355
Pomógł: 50
Dołączył: 20.08.2007
Skąd: Częstochowa

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


@zakrecony
Aż tak bym się w kulki nie zrobił tongue.gif


--------------------
przetwornik yt na czasie :)
Go to the top of the page
+Quote Post
l0ud
post
Post #17





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


Ponawiam prośbę o test z echo '1'; na samym początku skryptu. Jaki wynik generuje?


--------------------
XMPP: l0ud@chrome.pl
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: 22.08.2025 - 10:25