![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 21.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Jestem początkującym programistą i z php oraz mysql mam stycznosc od nie dawna. Chcialem napisac skrypt do rejestracji na strone, ale napotkałem pewien problem. Przy rejestracji chce sprawdzić czy podany login istnieje w bazie czy tez nie. Myslałem aby użyc następującego zapytania:
Problem w ze nie wiem jak pobrac z bazy liczbe z tego zapytania. Próbowałem zrobić to w taki sposób, ale nie działa. Podpowiecie jak pobrać wynik tego zapytania z bazy aby mozna go było użyc taki sposób??
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 161 Pomógł: 9 Dołączył: 14.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
Tak naprawdę chodzi Ci o to, żeby sprawdzić, czy w pazie jest 0, czy conajmniej jeden wiersz spełniający ten warunek. Tak więc puszczsz zapytanie
Kod SELECT login FROM uzytkownicy WHERE login='$login' LIMIT 1 a potem sprawdzasz mysql_num_rows() |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 171 Pomógł: 18 Dołączył: 13.03.2009 Skąd: lublin Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
A po co ten limit wtedy (IMG:style_emoticons/default/winksmiley.jpg) ?
|
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
O ile dobrze pamiętam, to wymusza to taką optymalizację zapytania, aby nie szukało więcej niż jeden rekord.
Nie mam 100% pewności, ale na mój rozum - jeśli nie ma limit, to przeszukuje całą tabelę w poszukiwaniu wszystkich rekordów spełniających warunek, jeśli jest limit - po pierwszym napotkanym przerywa. Niech ktoś mnie poprawi, jeśli się mylę. (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
Poprawiam. Byłoby jak mówisz, gdyby w zapytaniu nie było funkcji agregującej.
Ten post edytował Mchl 22.12.2009, 15:26:55 |
|
|
![]()
Post
#8
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Nie mam 100% pewności, ale na mój rozum - jeśli nie ma limit, to przeszukuje całą tabelę w poszukiwaniu wszystkich rekordów spełniających warunek, jeśli jest limit - po pierwszym napotkanym przerywa. Chyba się jednak mylisz. Idąc Twoim tokiem rozumowania zapytanie:
zwróciłoby albo 0 albo 1. To nie jest prawda. Sprawdź zresztą sam - zapytanie bez LIMIT zwróci dokładnie to samo co z ograniczeniem. To o czym mówisz: po pierwszym napotkanym przerywa. to cecha klauzuli EXISTS w warunku. Jeżeli podzapytanie napotka pierwszy rekord pasujący do zadanych w nim warunków to przerywa dalsze sprawdzanie. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 21.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
dzieki za pomoc.
Użylem takiego zapytania a pożniej warunków.
Mam jeszcze jedno pytanko, w jaki sposób w razie wystepujacego w bazie juz takiego loginu lub niezgodnosci wpisanych haseł powrocic do strony rejestracji w taki sposób aby pola formularza były uzupełnione tym co wpisalismy wczesniej?? formularz rejestracyjny'
dane.php
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 161 Pomógł: 9 Dołączył: 14.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Jak wyżej, np. prześlij dane formularzem do tego samego skryptu, waliduj, jeśli nie przejdzie walidacji, to ponownie wyświetl formularz(z polami wypełnionymi wartościami z $_POST), jeśli przejdzie, to wpis do BD (i przekierowanie na info, że wszystko jest ok).
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 22:28 |