Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Skrypt błędnie odczytuje
Forum PHP.pl > Forum > Przedszkole
smrodek11
  1. <?
  2.  
  3. mysql_connect("mysql5-1.starter","timetoplusers","gametrade12");
  4. mysql_select_db("timetoplusers");
  5. ?>
  6. <?
  7. $ile = mysql_query("SELECT czy FROM users WHERE login = '".$_SESSION['zalogowany']."'");
  8. if($ile > 1) {
  9.  
  10. if($_POST['login'] == test) {
  11.  
  12. mysql_query("UPDATE `users` SET `punkty` = punkty+5 WHERE `login` = '".$_SESSION['zalogowany']."'");
  13. mysql_query("UPDATE `users` SET `czy` = czy-1 WHERE `login` = '".$_SESSION['zalogowany']."'");
  14. echo 'Wprowadzony kod jest prawidlowy. Punkty poprawnie dodane!';
  15. }
  16. else{
  17. echo 'Kod jest błedny';
  18. }
  19. }
  20. else{
  21. echo 'Już podałes kod';
  22. }
  23. ?>


O to i mój wybryk, tylko mam wielki problem. Każdy użytkownik ma ustawioną wartość "czy" w bazie na 1, i z normalnego punktu widzenia, po wpisaniu kodu test powinno dodać do czy -1 i powinno skutecznie blokować ponowne próby wpisania kodu przez użytkownika. Jedank tak nie jest, mimo iż w bazie mam ustawione 1, skrypt od razu wyświetla "Już podales kod", nieważne czy jest w bazie ustawione 1,2,0 czy -1 to i tak wyświetla od razu else. Co jest źle, siedzę już nad tym dość długo? ohno-smiley.gif
Daiquiri
Wyświetl zmienną $ile przed warunkiem. Jeżeli $ile = 1, to warunek nie zostanie spełniony, bo Ty pytasz o coś większego niż 1.
sadistic_son
$ile nie będzie liczbą w Twoim przypadku bo mysql_query nie zwraca integera exclamation.gif
Brakuje Ci tam mysql_num_rows. Linijkę 8 zamień na:
  1. $ile=mysql_num_rows(mysql_query("SELECT czy FROM users WHERE login = '".$_SESSION['zalogowany']."'"));

kadlub
Cytat(sadistic_son @ 21.02.2011, 16:51:03 ) *
$ile nie będzie liczbą w Twoim przypadku bo mysql_query nie zwraca integera exclamation.gif
Brakuje Ci tam mysql_num_rows. Linijkę 8 zamień na:
  1. $ile=mysql_num_rows(mysql_query("SELECT czy FROM users WHERE login = '".$_SESSION['zalogowany']."'"));


ale jak tak zrobi to nie porówna zawartości pola czy

  1. $ile=mysql_fetch_array(mysql_query("SELECT czy FROM users WHERE login = '".$_SESSION['zalogowany']."'"));
  2.  
  3. if($ile['czy'] == 1)
  4.  
sadistic_son
Ok, źle zrozumiałem o co chodzi. Myślałem , że $ile ma zawierać ilość rekordów spełniających warunek z 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.