Jak sprawdzić czy użytkownik istnieje w bazie


(batmomobil) #1

Chcę sprawdzić czy użytkownik istnieje w bazie przy rejstracji

$select = mysql_query( 'SELECT COUNT(*) FROM uzytkownicy WHERE fb_id = "'.$user_id.'"'); 

$row = mysql_fetch_row($select);

            if($row['fb_id'] >0) {

                echo '
Już istnieje w bazie';

            } else {

include("config.php"); mysql_query("INSERT INTO `uzytkownicy` (nick,ksywa,nazwisko,email,haslo,ip,gender,birthday,adres_zamieszkania,czas_profilu,salt,fb_id) VALUES ('$nick','$imie','$nazwisko','$email','$haslo','$ip','$gender','$birthday','$adres','$hour','$salt','$user_id')") or die(mysql_error()); header('Location: logowaniefac.php');

}

}

ale cały czas dodaje mi takich samych użytkowników,co robię żle???


(Aglasek) #2

Ja by to zrobił tak:

$select = mysql_query( 'SELECT COUNT(*) FROM uzytkownicy WHERE fb_id = "'.$user_id.'"');


            if(mysql_num_rows($select)) {

                echo '
Już istnieje w bazie';

            } else {

include("config.php"); mysql_query("INSERT INTO `uzytkownicy` (nick,ksywa,nazwisko,email,haslo,ip,gender,birthday,adres_zamieszkania,czas_profilu,salt,fb_id) VALUES ('$nick','$imie','$nazwisko','$email','$haslo','$ip','$gender','$birthday','$adres','$hour','$salt','$user_id')") or die(mysql_error());

(Grzegorz Olszewski) #3

W wyniku tego zapytania nie dostaniesz kolumny o nazwie fb_id, bo robisz COUNT, więc kolumna z liczbą wierszy nie będzie się nazywała fb_id. Poza tym dodaj sobie w tabeli constraint unique na kolumnę fb_id żeby wymusić unikalność wartości w tej kolumnie.


(batmomobil) #4

Próbowałem twój przykład lecz nadal dodaje do bazy tych samych użytkowników.usunąłem także COUNT ,ale jak zapisać if-a

if($row['fb_id'] >0) {

.Drugie pytanie jak dodać do tabeli constraint unique do istniejącego już pola fb_id???


(Grzegorz Olszewski) #5

Tak w ogóle, to mysql_fetch_row nie zwraca tablicy asocjacyjnej w postaci { nazwa_kolumny => wartość }, lecz zwykłą tablicę ponumerowaną. Czyli:

if($row[0] >0) {

   echo '
Już istnieje w bazie';

Powinno działać.

ALTER TABLE uzytkownicy ADD UNIQUE(fb_id);

http://dev.mysql.com/doc/refman/5.6/en/alter-table.html


(batmomobil) #6
if($row[0] >0) {

   echo '
Już istnieje w bazie';

nic to nie daje nadal dodaje do bazy tych samych.Jak dam znowu tak

if($row[0] ==0) {

   echo '
Już istnieje w bazie';

to blokuje użytkownika,ale znowu nie działa else i nie dodaje do bazy.Jak to zrobić???


(Rishikbp) #7
$select = mysql_query( 'SELECT * FROM uzytkownicy WHERE fb_id = "'.$user_id.'"');


            if(mysql_num_rows($select)>0) {

                echo '
Już istnieje w bazie';

            } else {

include("config.php"); mysql_query("INSERT INTO `uzytkownicy` (nick,ksywa,nazwisko,email,haslo,ip,gender,birthday,adres_zamieszkania,czas_profilu,salt,fb_id) VALUES ('$nick','$imie','$nazwisko','$email','$haslo','$ip','$gender','$birthday','$adres','$hour','$salt','$user_id')") or die(mysql_error());

Musi działać.


(batmomobil) #8

Działa :smiley: ,dziękuję wszystkim za pomocne odpowiedzi :smiley: