![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 24.11.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam taki oto problem. Stworzyłem sobie bazę sqlite. W bazie mam użytkowników. Można się rejestrować w bazie z formularza na stronie. Chcę aby użytkownicy mieli unikalne nazwy. W tym celu zastosowałem if. Ale coś mi nie działa. Czytam, szukam, próbuje i nic. Oto kod:
Na początku przyjmuję z formularza dane, później łączę się z bazą, wrzucam do zapytania zmienną z nazwą użytkownika, który się rejestruje. Jeśli nazwa użytkownika znajduje się w bazie to warunek 1=1 i użytkownik nie bedzie się mógł zarejestrować. Jeśli nie to się zarejestruje. Problem w tym, że cokolwiek bym nie wpisal to zawsze skrypt pokazuje, że użytkownik w bazie istnieje. Próbowałem też z zapytaniem bez COUNT() tylko z porównaniem nazw użytkownika i to samo. Ma ktoś pomysł jak to rozwiązać? Rozwiązania z google mi nie pomogły. Dodam, że w PDO jestem laikiem. No i poza PDO wszystko działa. Proszę o pomoc. Ten post edytował benyowsky 3.02.2012, 17:09:27 |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
1)
if $r = 1 Odrożniaj operator przypisania od operatora porównania 2) Przeczytaj w manuala jak działa exec a następnie zastanów się, dlaczego nim nie można wykonywac zapytan SELECT
Powód edycji: [nospor]:
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 24.11.2011 Ostrzeżenie: (0%) ![]() ![]() |
1) if $r = 1 Odrożniaj operator przypisania od operatora porównania Ok, już widzę błąd. Tylko przy operatorze porównania == każdy wpisywany użytkownik jest uznawany za już istniejącego, nawet jeśli nie ma go w bazie. 2) Przeczytaj w manuala jak działa exec a następnie zastanów się, dlaczego nim nie można wykonywac zapytan SELECT Dzięki. |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Tylko przy operatorze porównania == każdy wpisywany użytkownik jest uznawany za już istniejącego, nawet jeśli nie ma go w bazie. Zgadza się. A to jest ściśle powiązane z tym co napisałem w punkcie nr 2 (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 24.11.2011 Ostrzeżenie: (0%) ![]() ![]() |
Trochę poczytałem w manualu o PDO. W zapytaniu mam tak:
Nie wiem czy coś nie powinno być inaczej. Dalej mi to nie działa, ale tylko przez PDO. Jak zrobię to samo bez PDO to działa. Chyba wrócę do MySQL, bo jakoś nie mogę się w tym połapać. Może jeszcze jakaś wskazówka? Pozdrawiam i dzięki za podpowiedzi. |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
query() zwraca ci obiekt PDOStatement. Jego nie mozesz porównywać do 1. To jest odpowiedni resource z wyniku mysql_query.
Musisz teraz jeszcze pobrać wynik tego http://www.php.net/manual/en/class.pdostatement.php |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 24.11.2011 Ostrzeżenie: (0%) ![]() ![]() |
Wielkie dzięki. Wszystko działa jak trzeba. Oczywiście wg Twoich wskazówek.
Pozdrawiam. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 12:12 |