[Php] Unikatowi użytkownicy w bazie danych

0

Witam !
Tworzę stronkę, i sam piszę wszystkie funkcje, taki czysty trening _.
Napisałem już kompletny skrypt logowania oparty na MySql, oraz sesji, i teraz zaczynam pisać skrypt rejestracji.
Problem pojawia się w sprawdzaniu poprawności przesłanych danych przez formularz, a mianowicie chodzi o login.

W bazie danych mam tabele user o kolumanch user_id, user_nazwa, user_haslo itd. oraz 2 wpisanych użytków.

  1. demo
  2. Admin

Sprawa jest taka że nie mogę poradzić sobie z sprawdzeniem czy jest już taki login w bazie.

 
db_connect();
	$qry="SELECT user_nazwa FROM user WHERE user_nazwa = '$login'";
	if(mysql_query($qry)){
		echo "Podany login jest już zajęty";
	}
mysql_close();

Połączenie z bazą jest ok, ale zapytanie daje zawsze wartość true nie zależnie od tego jaki login prześle przez formularz :(
Z góry wielkie thx za pomoc.

0

No i działa prawidłowo. Warunek sprawdza czy zapytanie wykonało się prawidłowo. Niezależnie od tego ile rekordów zostanie zwróconych. Musisz to właśnie sprawdzić (mysql_num_rows).

0

bardziej poprawnie jest założyć indeks unikalny na kolumnie z loginem. Tylko, że genialny mysql nie ma indeksów funkcyjnych więc nie da się w ten sposób uchronić przed dwoma wpisami np. takimi admin i AdMiN :/
BTW Twój select powinien wyglądać tak

SELECT count(*) ile FROM user WHERE user_nazwa = '$login'

i powinieneś sprawdzać ilu jest userów z takim loginem

0

Odradzam takie wstawianie zmiennych do zapytania

0

Wielkie dzięki za wasze odpowiedź, pomogło :)
btw. co do wstawiania zmiennych w ten sposób do zapytania, to ta zmienna przed przejściem do zapytania jest w odpowiedni sposób formatowana :) jeśli chodzi o coś innego to nie wiem, ale poczytam :) jeszcze raz wielkie dzięki.

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