Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Sprawdzenie czy w polu jest null.
Forum PHP.pl > Forum > Przedszkole
kyez
Witajcie.

Otóż od dwóch dni męczę się z jednym skryptem i nic nie mogę zrobić. Naprawdę szukałem po googlach i innych forach i wszystko co znalazłem nie okazało się pomocne.
Proszę o pomoc, gdyż naprawdę jest do dla mnie ważne.

Więc do rzeczy. Mam tabelę z polami: id, nick, kod, used.
Pole nick przechowuje nick gracza który się zarejestrował, kod ma przechowywać kod tongue.gif.

Teraz rzecz o którą mi chodzi. Pole used, mówi nam czy kod został już wykorzystany.
Inaczej.. na początku w bazie są same kody(wartości pól nick i used = null). Gracz może sie zarejestrować podając swój nick i kod. Kiedy już to zrobi, skrypt musi sprawdzić czy kod został wykorzystany (wartość 1 w polu used). Jeśli nie, to dodaje jego nick do podanego przez niego kodu i przypisuje polu used podanego kodu wartość 1.

W ten sposób gracz ma mieć możliwość zarejestrowania się na kilka różnych kodów, ale nie zarejestruje się na kilka różnych nicków, na ten sam kod.

To moje nieudolne próby. (doświadczonych proszę o wyrozumiałość.):

  1. $handle = mysql_connect('localhost', 'root', 'admin') or die ('Blad polaczenia z baza');
  2. $tmp = mysql_select_db('konkurs') or die ('Zla baza danych');
  3.  
  4. $nick = $_POST['nick'];
  5. $kod = $_POST['kod'];
  6. $wartosc = 1;
  7.  
  8. if(!$nick){
  9. echo 'Nie podales nicku</br>';
  10. }
  11. if(!$kod){
  12. echo 'Nie wpisales kodu';
  13. }
  14.  
  15. $checkwartosc = 'select used form kody where kod='.$kod.'\';';
  16. $check = mysql_query($checkwartosc);
  17.  
  18.  
  19.  
  20. if($check = NULL){
  21.  
  22. echo '<div id="positive">mozesz uzyc ten kod</div> </br>';
  23. $dodajnick = 'update kody set nick=\''.$nick.'\', used='.$wartosc.' where kod='.$kod.';';
  24. $dodaj = mysql_query($dodajnick);
  25.  
  26. if(isset($dodaj)){
  27. echo 'good';
  28. }else{
  29. echo 'blad';
  30. }
  31.  
  32. }else if ($check = 1){
  33. echo 'Ten kod został już wykożystany';
  34. }
  35.  
  36.  
  37. ?>


Pozdrawiam, Przemek.
kristaps
Mysql_query to trochę mało. Nie zwraca żadnej wartości, tylko obiekt.
  1. $checkwartosc = mysql_query('select used form kody where kod= $kod);
  2. $row = mysql_fetch_array($checkwartosc);
  3.  
  4. $check = $row["used"];
kyez
Ale jeśli pole w tabeli warotść null to zwróci mi to wartość 'null' czy 'false' może poptostu 0.

Czy to działa na zasadzie null = 0, a 1+ = true. ?
kristaps
Jeżeli pole ma domyślną wartość null - to nic nie zwróci, chyba, że użyjesz IFNULL.
kyez
Error:
  1. Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\Program Files\EasyPHP-12.1\www\my portable files\send-code.php on line 30



  1. $checkwartosc = mysql_query('select used form kody where kod= $kod');
  2. $row = mysql_fetch_array($checkwartosc);
  3.  
  4. $check = $row["used"];
  5.  
  6.  
  7.  
  8. if($check = 1){ //nalezy domyślnie kodowi nadawać wartosc 0 w polu used
  9.  
  10. echo 'tem kod zostal juz wykorzytsny';
  11.  
  12. }else {
  13. echo '<div id="positive">mozesz uzyc ten kod</div> </br>';
  14. $dodajnick = 'update kody set nick=\''.$nick.'\', used='.$wartosc.' where kod='.$kod.';';
  15. $dodaj = mysql_query($dodajnick);
  16.  
  17. if(isset($dodaj)){
  18. echo 'good';
  19. }else{
  20. echo 'blad';
  21. }
  22. }
kristaps
Nie mam żadnego błędu, co do łapania NULLa

  1. $checkwartosc = mysql_query('select used form kody where kod= $kod');
  2. $row = mysql_fetch_array($checkwartosc);
  3. $check = $row["login"];
  4.  
  5. if(empty($check)){
  6.  
  7. echo 'tem kod zostal juz wykorzystany';
  8. }
  9.  
  10. else{
  11.  
  12. echo 'kod do wykorzystania';
  13. }
aras785
Kłaniają się operatory warunkowe...
==
kyez
Cały czas mam:
  1. Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\Program Files\EasyPHP-12.1\www\my portable files\engine.php on line 8


mimo że skopiowałem to do zupełnie nowego pliku bez innych instrukcji. Mimo to, skrypt cały czas pokazuje że kod nie został wykożystany.

Plik skryptu:
  1. <?php
  2. $handle = mysql_connect('localhost', 'root', 'admin') or die ('Blad polaczenia z baza');
  3. $tmp = mysql_select_db('konkurs') or die ('Zla baza danych');
  4.  
  5. $kod = 1;
  6.  
  7. $checkwartosc = mysql_query('select used form kody where kod='.$kod.';');
  8. $row = mysql_fetch_array($checkwartosc);
  9. $check = $row["used"];
  10.  
  11. if(empty($check)){
  12.  
  13. echo 'wolny';
  14. }
  15.  
  16. else{
  17.  
  18. echo 'wykożystany';
  19. }
  20.  
  21. ?>
aras785
select used form questionmark.gif from ma być
kristaps
Teraz się oczywiście czepiam (przypuszczam, że serwer roboczy), ale nie zapomnij później zmienić hasła. Tusk miał podobne i wiadomo jak skończył. wink.gif
kyez
To jest przykład jak jedna literówka może zrypać cały skrypt. Dzięki wielkie, nagle wszystko zaczęło działać!

Jeszcze raz dzięki. Pozdrawiam!
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.