[php] jak porownac ?

0

witam mam taki kod

$sql = "SELECT id,password 
           FROM $users 
           WHERE nick='$nick' 
           OR email='$nick' ";

   $run = mysql_query($sql);

   while($row=mysql_fetch_array($run)) 
      {

         if ($row['password']!='') {
         echo $row['id'];
        } else {
        echo "nie ma";
        }

I teraz jesli system znajdzie w bazie uzytkownika
po adresie lub nicku to wyswietla mi jego ID
a jesli nie znajdzie nikogo takiego to nie wyswietla napisu
NIE MA tylko nic nie wyswietla ? dlaczego to nie dziala ?

0

nie wiem czemu twój kod nie działa, ale spróbuj tak:

$sql = "SELECT id,password 
                      FROM $users 
                   WHERE nick='$nick' 
                   OR email='$nick' LIMIT 1";

$run = mysql_query($sql);

if(mysql_num_rows($run))
{
     $row = myslq_fetch_array($run);

     print_r($row);
} 
else echo("nie ma");

btw. co to za bzdura WHERE nick='$nick' OR email='$nick'"; ? :|

//Romek - chodziło o ogólną zasadę użycia mysql_num_rows zamiast dziwnie skonstruowanego mysql_fetch_array. W zasadzie to żeby nie było wątpliwości powinno być tam jeszcze LIMIT 1 :)

0

Hejka

Pierwszy kod wyraznie zawiera blad logiczny. PRzeicez jesli szukasz w kolumnie dajmy na to 'nick' wartosci zmiennej nick to musisz sprawdzac czy tam cos znaleziono. Ale Ty sprawdzasz w zupelnie innej kolumnie - password, a tam moze a nie musi byc jakas wartosc. Tak wiec jesli znaleziono nicka i emaila a nie znaleziono passwordu program nie wyswietli nic.

W drugim kodzie wszystko jest ok, ale trzeba sie zastanowic czy np mozliwe jest wielokrotne wystapienie danego nicka albo emaila. Bo jesli tak (identyfikacja po password?) to wtedy warunek if powinien byc w petli.

R

0

$sql = "SELECT id,password
FROM $users
WHERE nick='$nick'
OR email='$nick' ";

w tym kodzie nie mazdnego bledu logicznego
jest formularz gdzie podajesz nick/email i haslo
wiec w polu nick/email ktos podjae nick : dziadek
w tabeli szukamy pola psaaword gdzie nick zawiera wartosc dziadek
lub email wtedy zwraca to co jest w polu password
a przy rejestracji konieczne jest podanie hasla wiec pole nie moze byc
puste. a email ani haslo nie moga sie powtarzac.

ale nie dziala mi pozniej sprawdzenie warunku :/ musze sprawddzic wasze porady
POZDRAWIAM

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0