szasza
30.04.2009, 22:00:19
witam.
Mam baze danych o nazie "baza" i tabele o nazwie "users". Tabela zawiera pola: userID, login, password, pytanie, odpowiedz, access, imie, nazwisko, plec, adres, miasto, kod_poczt, data_urodz, telefon. mam zrobiony formulaz rejestracyjny (ktory dziala oczywiscie ;p), problem tylko w tym jak sprawdzic czy dany login juz nie istnieje w bazie i w razie gdy istnieje przezucil nas do strony blad.htm, w przypadku gdy nie istnieje zapisal wszystkie dane do bazy danych.
z gory diekuje za pomoc
PawelC
30.04.2009, 22:03:53
Np przy pomocy mysql_num_rows
<?
require 'config.php';
$login = trim($_POST['login']); $loguj="select login from users where login='$login'";
{
//co jak nie istnieje
}
else
{
//jeżeli login istnieje w bazie
}
?>
Możesz tez użyć funkcji agregującej COUNT ("wbudowanej" w MySQL)
SELECT COUNT(login) FROM users WHERE login = '$login'
Funkcja ta zwroci CI jeden wiersz, w którym będzie zapisane ile jest wierszy w bazie, gdzie pole login jest równe szukanemu. I teraz jezeli cos znajdzie(wartosc != 0) to dajesz blad, a jezeli nie (zwroci 0) no to rejestrujesz delikwenta :]
Pozdro
szasza
2.05.2009, 13:26:55
dzieki wam wielkie za pomoc
gregi
4.02.2015, 17:05:37
w moich googlach jest po pierwszy wynik na rozwiązanie, a to stary wątek i możliwe że nieaktualne dane
jakie alternatywne rozwiązanie proponujecie zamiast mysql_num_rows bo chyba ta funkcja zostaje wycofywana
Pyton_000
4.02.2015, 17:11:32
mysqli_num_rows lub PDO oraz odpowiednik z zapytaniem i COUNT jak 2 posty wyżej
gregi
4.02.2015, 18:04:09
a jak to zastosować?
$result2=mysql_query("SELECT COUNT($id_ang_z_kategorii) FROM users WHERE login = $id_ang_z_kategorii"); if($result2)!==0
{ }