Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Instrukcja IF
Forum PHP.pl > Forum > Przedszkole
bamboo
Mam tabele z użytkownikami, w formularzu wpisuje sie nick i haslo które są przesyłane do następnej strony, na tej stronie wykonywane jest zapytanie o rekord
  1. WHERE `nick` = '$nick' AND `pass` = '$pass'

zmiennymi są dane wpisane na poprzedniej stronie w formularzu...
no i co dalej, jak sprawdzić czy takie dane istnieją/pasują do siebie?
wygląda to tak:
  1. <?php
  2. $nick = $_POST['login1'];
  3. $pass = $_POST['haslo1'];
  4. $wynik = mysql_query("SELECT * FROM `users` WHERE `nick` = '$nick' AND `pass` = '$pass'")
  5. or die('Błąd zapytania'.mysql_error().'');
  6. ?>

jak powinien wyglądać warunek w instrukcji IF aby w momencie gdy dane byłyby prawidłowe wyświetliło sie np. "jesteś zalogowany", reszte jestem w stanie sam sobie zrobić, potrzebuje tylko ten warunek...
Wieviór
Ja tam zawsze robię zapytanie, gdzie wyciągam hasło dla loginu który jest podany i sprawdzam potem już w php z hasłem, jeśli ok to "logujesz".
webdice
  1. SELECT COUNT(`id`) AS `count` FROM `users` WHERE `nick` = 'webdicepl' AND `password` = 'haslo'


a później:

  1. <?php
  2. $field = mysql_fetch_assoc ($query)
  3.  
  4. if ($field['count'] == 0)
  5. {
  6. print 'użytkownika nie istnieje';
  7. }
  8. else if ($field['count'] == 1)
  9. {
  10. print 'użytkownika istnieje';
  11. }
  12. ?>
bamboo
webdicepl, wyskakuje błąd:
Parse error: parse error, unexpected T_IF in **** on line **

wydaje mi sie ze używając mysql_num_rows() bedzie łatwiej...
Wieviór
Tam się chyba mały błąd wkradł. Analizowanie błędu to nic trudnego, wystarczy chcieć.

  1. <?php
  2. else if ($field['count'] == 1)
  3. {
  4. print 'użytkownika istnieje';
  5. }
  6. ?>


Zamień na:

  1. <?php
  2. elseif ($field['count'] == 1)
  3. {
  4. print 'użytkownika istnieje';
  5. }
  6. ?>


@nowotny - słusznie, użytkownik bamboo "ułatwił" sprawę wstawiając gwiazdki zamiast numeru linii ;D
nowotny
Cytat(Wieviór @ 17.02.2008, 14:01:16 ) *
Tam się chyba mały błąd wkradł.

Owszem... ale nie w tym miejscu... tongue.gif Brakowało średnika... kopiować też trzeba z głową... tongue.gif
  1. <?php
  2. $field = mysql_fetch_assoc ($query);
  3. ?>


Cytat(Wieviór @ 17.02.2008, 14:01:16 ) *
Analizowanie błędu to nic trudnego, wystarczy chcieć.

No właśnie... ;D
bamboo
a nie łatwiej tak:
  1. <?php
  2. $num_rows = mysql_num_rows($wynik);
  3. if($num_rows == 1) {
  4. echo 'użytkownik zalogowany';
  5. }
  6. else {
  7. echo 'użytkownik nieistnieje, lub podano złe hasło';
  8. }
  9. ?>

bardziej przerzyste i proste smile.gif
Wieviór
Masz pretensje, że Ci się staramy pomóc w różny sposób? Dziękuję za takie podziękowanie.
bamboo
o właśnie i zapomniałem podziękować... smile.gif wiem ze sie staracie pomóc, ale poprostu spytałem sie po co tak komplikować jak można zrobić to tak łatwo, ja poprostu nie jestem w stanie pamiętać wszystkich funkcji bo zabawe z mysqlem zacząłem od niedawna... a w kodzie webdicepla niezabardzo cokolwiek rozumiem... smile.gif i niemam żadnych pretensji zeby niebyło winksmiley.jpg jeszcze raz dzieki za pomoc...
webdice
Cytat(bamboo @ 17.02.2008, 13:58:53 ) *
webdicepl, wyskakuje błąd:
Parse error: parse error, unexpected T_IF in **** on line **

wydaje mi sie ze używając mysql_num_rows() bedzie łatwiej...


Pisane z palca, zapomniałem średnika, ale takie rzeczy powinieneś już wiedzieć.


Cytat(bamboo @ 17.02.2008, 14:12:39 ) *
(...) wiem ze sie staracie pomóc, ale poprostu spytałem sie po co tak komplikować jak można zrobić to tak łatwo (...)


Po co kombinować? Po to żeby zyskać czas. Po pierwsze mysql_num_rows" title="Zobacz w manualu PHP" target="_manual jest mało wydajne, a po drugie np. w PDO już nie ma takiej funkcji.
specialplan
@wiewioor

"else if" oraz "elseif" to jedno i to samo.
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.