Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] interpretacja wyniku zapytania
azbest22
post 27.12.2014, 01:20:42
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 9.09.2010

Ostrzeżenie: (0%)
-----


  1. if (zaloguj(trim($_POST['login']), trim($_POST['password']))==0)
  2. {
  3. echo"logowanie udane";
  4. }
  5. else
  6. {
  7. echo"logowanie nie powiodło się";
  8. }
  9. }


  1. function zaloguj ($login, $password)
  2. {
  3. $sql = "SELECT id FROM users WHERE login='$login' and passsword='$password'";
  4. $query=mysql_query($sql) or die (mysql_error());
  5. $num=mysql_num_rows($query) or die (mysql_error());
  6. if ($num==1)
  7. {return 0;}
  8. else
  9. {return 1;}
  10. }


Jeśli warunek w funkcji zaloguj jest spełniony to wszystko gra i nie ma problemu, wyświetlenie $num zwaraca na ekranie 1 i działa jak trzeba.
Problem pojawia się gdy podamy błędne dane. wyświetla wszystko do momentu pojawienia się funkcji zaloguj.
pruba wyświetlenia czegokolwiek co występuje w funkcji zaloguj kończy się fiaskiem, nie wyświetla się też reszta strony generowana po wykonaniu tej funkcji. wyświetlenie $num nie daje żadnego efektu,
a nawet wrzucenie przed ifem w funkcji zaloguj jakiego kolwiek tekstu np.
  1. echo "blablabla";
nie działa. czy ktoś ma pomysł co jest przyczyną takiego zjawiska?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
untorched
post 27.12.2014, 01:35:45
Post #2





Grupa: Zarejestrowani
Postów: 318
Pomógł: 76
Dołączył: 27.12.2011
Skąd: Dąbrowa Górnicza

Ostrzeżenie: (0%)
-----


Raportowanie błędów włączone? PS. Nie używaj funkcji mysql_, użyj pdo lub mysqli
Go to the top of the page
+Quote Post
azbest22
post 27.12.2014, 01:38:34
Post #3





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 9.09.2010

Ostrzeżenie: (0%)
-----


raportowanie włączone zgodnie z poradnikiem.
czemu nie mysql?
Go to the top of the page
+Quote Post
untorched
post 27.12.2014, 01:48:01
Post #4





Grupa: Zarejestrowani
Postów: 318
Pomógł: 76
Dołączył: 27.12.2011
Skąd: Dąbrowa Górnicza

Ostrzeżenie: (0%)
-----


Dlaczego nie mysql_* (Angielski)
Go to the top of the page
+Quote Post
azbest22
post 27.12.2014, 01:54:58
Post #5





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 9.09.2010

Ostrzeżenie: (0%)
-----


fajna tabelka tam jest z porównaniem możliwości i fakt słabo wypada mysql. rano przepisze kod na mysqli ale nadal nie zmienia to faktu że na mysql_ też powinno to jakoś zadziałać bo zapytanie wykonuje. coś się kaszani przy ich odebraiu. jeśli są ok to gra ale jeśli nie znajdzie wiersza to przerywa wykonywanie całego skryptu a powinien przejść do instrukcji warunkowej i zwracać 1
Go to the top of the page
+Quote Post
untorched
post 27.12.2014, 02:01:32
Post #6





Grupa: Zarejestrowani
Postów: 318
Pomógł: 76
Dołączył: 27.12.2011
Skąd: Dąbrowa Górnicza

Ostrzeżenie: (0%)
-----


Spróbuj var_dump na obie zmienne.
  1. $query=mysql_query($sql);
  2. var_dump($query);
  3. $num=mysql_num_rows($query);
  4. var_dump($num);
Go to the top of the page
+Quote Post
viking
post 27.12.2014, 07:49:22
Post #7





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


mysql_num_rows zwraca też false więc warunek może nie być spełniony.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 06:52