Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]mysql_num_rows- zły argument
Forum PHP.pl > Forum > Przedszkole
Testosteron
  1. <?php
  2. include("function.inc");
  3. include("lang/polish.inc");
  4.  
  5. If (empty($_POST['nick']) || empty($_POST['pass']) )
  6. {
  7. ?>
  8. <form method="POST" action="loguj.php">
  9. <input type="text" name="nick">
  10. <input type="password" name="pass">
  11. <input type="submit" value="Loguj">
  12. </form>
  13. <?php
  14. }
  15. else
  16. {
  17. connect();
  18. $nick = mysql_escape_string($_POST['nick']);
  19. $pass = mysql_escape_string($_POST['pass']);
  20. $pass = koduj ($pass);
  21.  
  22. $zapytanie = mysql_query("SELECT 'nick' FROM 'users' WHERE nick = '$nick' AND pass = '$pass'");
  23. echo mysql_num_rows($zapytanie);
  24.  
  25. }
  26.  
  27. ?>

Wyrzuca mi następujący błąd
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\usr\apache\httpd\html\anonse\include\loguj.php on line 19

Z czym to jest związane?
CuteOne
  1. $zapytanie = mysql_query("SELECT 'nick' FROM 'users' WHERE nick = '$nick' AND pass = '$pass'") or die(mysql_error());
Testosteron
  1. Something is wrong in your syntax obok ''users' WHERE nick = 'kjsdjas' AND pass = '166effa44b7ca56ca9288' w linii 1
abort
Zamiast 'users' użyj `users` (tzw. backticks, na klawiaturze na lewo od "1"). I tak dla każdych pól/wartości.
Inna przyczyna jakoś mi nie przychodzi na myśl.
Testosteron
Poprawiłem to. Założyłem także nowe konto wykorzystując formularz rejestracyjny (utworzony wcześniej). Kiedy w loguj.php wpisuję login nowo utworzonego konta wyświetla mi:
Cytat
Nieznana kolumna '166effa44b7ca56ca9288bf0299cc7b472fde1d1' w where clause

Jeśli natomiast używam danych wprowadzonych wcześniej, bądź błędnych:
Cytat
Nieznana kolumna 'przykladowy' w where clause
jaslanin
pokaż kod SQL jaki się generuje i jest wysyłany do DB, nadal nie wygląda na to żebyś poprawił to poprawnie.
Testosteron
OK. Już sobie poradziłem. Po prostu wartości umieściłem w apostrofach. Wyszło więc coś takiego:
  1. $zapytanie = mysql_query("SELECT `nick` FROM `users` WHERE nick = '$nick' AND pass = '$pass'");


Nie rozumiem tylko jednego. Zawsze używałem apostrofów i wszystko było ok. Dlaczego w tym przypadku to nie wyszło?
Zielonkawy18
Ja dodam, że gdy dodam apostrofy czy to normlane czy krzywe nie działa, jak usunę od razu hula ( dla mnie to trochę loteria przy zawadaniu pytań bazie ).

Pozdrawiam
CuteOne
Nawet wrzucając czyste zapytanie przez phpmyadmina?

ps. safe_mode masz wyłączony?
Testosteron
SAFE_MODE mam wyłączony. Teraz wszystko działa ok, ale z czym są związane te problemy, tzn. w skrypcie rejestraci używałem tylko apostrofów i wszystko działało.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.