Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Sprawdzenie czy w polu jest null.
kyez
post 26.01.2013, 10:50:16
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 6.09.2011

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


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.

Ten post edytował kyez 26.01.2013, 10:50:36
Go to the top of the page
+Quote Post
kristaps
post 26.01.2013, 11:16:29
Post #2





Grupa: Zarejestrowani
Postów: 279
Pomógł: 36
Dołączył: 1.03.2012

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


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"];


Ten post edytował kristaps 26.01.2013, 11:20:27
Go to the top of the page
+Quote Post
kyez
post 26.01.2013, 12:23:32
Post #3





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 6.09.2011

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


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. ?
Go to the top of the page
+Quote Post
kristaps
post 26.01.2013, 12:32:38
Post #4





Grupa: Zarejestrowani
Postów: 279
Pomógł: 36
Dołączył: 1.03.2012

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


Jeżeli pole ma domyślną wartość null - to nic nie zwróci, chyba, że użyjesz IFNULL.
Go to the top of the page
+Quote Post
kyez
post 26.01.2013, 19:52:48
Post #5





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 6.09.2011

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


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. }
Go to the top of the page
+Quote Post
kristaps
post 26.01.2013, 20:06:39
Post #6





Grupa: Zarejestrowani
Postów: 279
Pomógł: 36
Dołączył: 1.03.2012

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


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. }


Ten post edytował kristaps 26.01.2013, 20:35:09
Go to the top of the page
+Quote Post
aras785
post 26.01.2013, 20:11:47
Post #7





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

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


Kłaniają się operatory warunkowe...
==
Go to the top of the page
+Quote Post
kyez
post 26.01.2013, 20:29:27
Post #8





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 6.09.2011

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


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. ?>
Go to the top of the page
+Quote Post
aras785
post 26.01.2013, 20:31:51
Post #9





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

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


select used form questionmark.gif from ma być

Ten post edytował aras785 26.01.2013, 20:32:09
Go to the top of the page
+Quote Post
kristaps
post 26.01.2013, 20:38:39
Post #10





Grupa: Zarejestrowani
Postów: 279
Pomógł: 36
Dołączył: 1.03.2012

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


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

Ten post edytował kristaps 26.01.2013, 20:40:11
Go to the top of the page
+Quote Post
kyez
post 26.01.2013, 20:56:58
Post #11





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 6.09.2011

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


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!
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 12:46