![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 11.05.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witam po raz kolejny ;]
Postanowiłem dodać sobie możliwość sprawdzenia czy użykownik jaki chce się zarejestrować nie istnieje już w bazie oraz czy jego email nie został już użyty.
Czemu nie działa poprawnie? Ten post edytował StadiPL 12.05.2013, 04:28:25 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 4 Dołączył: 26.04.2011 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
= to operator przypisania. Ty chcesz porównać wartości - czyli użyj ==. Już nie wgłębiając się w szczegóły, w tym wypadku użycie = zwróci Ci zawsze true więc efekt jest niezgodny z oczekiwanym. Jeśli chodzi o samo sprawdzenie czy rekord się powtarza, to pamiętaj, że w SQL masz funkcję COUNT() a najlepiej po prostu nadać polu UNIQUE (IMG:style_emoticons/default/smile.gif) Cytat na razie wartość id zmieniam ręcznie, ale dodam wkrótce dodam żeby automatycznie sczytywał największą wartość i dodawał o 1 wyższą AUTO_INCREMENT na pole z ID w bazie jest tym czego szukasz. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 11.05.2013 Ostrzeżenie: (0%) ![]() ![]() |
No więc teraz ta część mojego kodu wygląda tak:
I zawsze zwróci mi wartość $existing_nickname przeglądałem milion razy i nigdzie nie widze błędu. ktos mnie oswieci? ;] |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 22 Dołączył: 11.04.2010 Skąd: Tarnów Ostrzeżenie: (0%) ![]() ![]() |
Spróbuj tak i już potem nie licz żadnym count(), ani mysql_num_rows(), takie zapytanie samo zwróci Ci ilość. -- EDIT -- @Sobak przeoczyłem, że pisałeś o COUNT() Ten post edytował session 12.05.2013, 10:49:49 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 11.05.2013 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 22 Dołączył: 11.04.2010 Skąd: Tarnów Ostrzeżenie: (0%) ![]() ![]() |
Tak problem jest w tym, że funkcją count() zliczasz ilość elementów tablicy, gdzie zawsze jest conajmniej 1, a nie wartość tych elementów. Spróbuj tak jak pisałem.
Ten post edytował session 12.05.2013, 10:48:59 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 11.05.2013 Ostrzeżenie: (0%) ![]() ![]() |
Parse error: syntax error, unexpected 'SELECT' (T_STRING) in D:\_XAMPP\serwer\htdocs\log\register_function.php on line 30
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 22 Dołączył: 11.04.2010 Skąd: Tarnów Ostrzeżenie: (0%) ![]() ![]() |
INSERT i tak Ci nie zadziała prawidłowo, ponieważ podajesz błędne id, musisz ustawić w MySQL pole id na auto_increment a w zapytaniu INSERT przypisać do id wartość NULL: id=NULL. Ten post edytował session 12.05.2013, 11:10:13 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 11.05.2013 Ostrzeżenie: (0%) ![]() ![]() |
Może zapodam po prostu najnowszą wersję całości, bo przykładowo ten problem już rozwiązałem (ktoś na forum mi podpowiedział):
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 22 Dołączył: 11.04.2010 Skąd: Tarnów Ostrzeżenie: (0%) ![]() ![]() |
Dlaczego nie zmienisz na to jak Ci napisałem ? (IMG:style_emoticons/default/tongue.gif) Twój kod nie ma prawa działać prawidłowo. Jest w nim dużo błędów zaczynając od nieprawidłowego używania ' , brak odczytu wyniku zapytania, problem z wyświetlaniem błędów użytkownikom (pisałem o tym w innym Twoim temacie (IMG:style_emoticons/default/smile.gif) )
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 11.05.2013 Ostrzeżenie: (0%) ![]() ![]() |
To nie zmieniłem na to co mi napisałeś? ;D Jak to źle używam ' ? Użytkownikom wszystkie błędy wyświetla dobrze.. nie licząc tego nie działającego sprawdzania czy nick i email juz występuje, z którym się już nieźle męczę na wszystkie sposoby.
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 22 Dołączył: 11.04.2010 Skąd: Tarnów Ostrzeżenie: (0%) ![]() ![]() |
Zamień:
Na:
Oraz: Na: Niepoprawnie używasz właśnie w tym co Ci nie działa (IMG:style_emoticons/default/wink.gif) Praktycznie w trakcie zamykasz ' a potem ciąg dalszy którego nie łączysz |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 11.05.2013 Ostrzeżenie: (0%) ![]() ![]() |
A więc pozmieniałem tak jak mówisz.. Gdy podaje dane nieistniejącego użytkownika to działa. Gdy podaje dane z istniejącym loginem to prawidłowo wyskakuje błąd. Natomiast gdy podam dane z użytym już adresem email, to jest coś takiego: Istnieje już użytkownik 'kupa' w bazie. Wybierz inna nazwę uzytkownika!
On powinien to wyświetlić gdy uzytkownik juz istnieje. w przypadku emaila jest zmienna $extisting_email EDIT: czyli w sumie wracam do punktu wyjscia ;d Ten post edytował StadiPL 12.05.2013, 11:45:08 |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 22 Dołączył: 11.04.2010 Skąd: Tarnów Ostrzeżenie: (0%) ![]() ![]() |
No nie bardzo jest to możliwe, albo istnieje już kupa i działa dobrze ten błąd, albo pozamieniałeś zmienne z błędami. Albo masz coś źle w formularzu, np. dwa razy nickname, innej możliwości nie widzę. Posprawdzaj dobrze (IMG:style_emoticons/default/wink.gif)
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 11.05.2013 Ostrzeżenie: (0%) ![]() ![]() |
YEEEAHH! ;] To byla zwykla !@#!@#!@# literówka! A sie na nia wnerwilem ;]
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 22 Dołączył: 11.04.2010 Skąd: Tarnów Ostrzeżenie: (0%) ![]() ![]() |
"$extisting_email" ? (IMG:style_emoticons/default/tongue.gif)
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 11.05.2013 Ostrzeżenie: (0%) ![]() ![]() |
A tak jeszcze wracając na chwilkę, to lepsze będzie te Twoje rozwiązanie czy count? ;]
|
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 22 Dołączył: 11.04.2010 Skąd: Tarnów Ostrzeżenie: (0%) ![]() ![]() |
W jakim znaczeniu lepsze ? COUNT(*) jako komenda MySQL zwraca liczbę wyników, a funkcja count() z PHP liczy ilość elementów w tablicy, czyli coś co kompletnie tutaj Cie nie interesuje. Tylko i wyłącznie COUNT(*) w zapytaniu MySQL.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 14:03 |