Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql_num_rows] 'supplied argument is not a valid..'
Forum PHP.pl > Forum > PHP > Object-oriented programming
neoangin
  1. class database
  2. {
  3.  
  4. private $db_conn; /* identyfikator polaczenia z mysql */
  5. private $db_error; /* tresc bledu w razie jego wystapienia */
  6.  
  7. /* konstruktor i laczenie sie z baza danych */
  8. public function __construct($db_host=DB_HOST,$db_user=DB_LOGIN,$db_pass=DB_PASS,$db_base=DB_BASE)
  9. {
  10.  
  11. $this->db_conn = false;
  12. $this->db_conn = mysql_connect($db_host,$db_user,$db_pass);
  13. $db_select = mysql_select_db($db_base);
  14. if($this->db_conn && $db_select)
  15. return true;
  16. else
  17. return false;
  18. }
  19.  
  20.  
  21. public function get_count($query = '')
  22. {
  23. if ($query=='' || $this->db_conn == false)
  24. return false;
  25.  
  26. $number = mysql_num_rows($query);
  27.  
  28. $this->db_error = mysql_error();
  29. return $number;
  30. }
  31.  
  32.  
  33. ///////////////////////////////////////////////////////////////////////////////////////////
  34.  
  35. $a = new database();
  36. $ile = $a -> get_count($zap2);
  37. echo $ile;


Zapytanie napewno dobre , dla innej funkcji get_all() zwraca 2 rekordy.

Kompilator generuje blad:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource
( dla lini z $number = mysql_num_rows($query); )

Prosze o pomoc
nowotny
Tak jak ci napisał: mysql_num_rows potrzebuje wskaźnika na wynik z mysql_query... w twoim kodzie nigdzie nie widzę żadnego wywołania mysql_query... $zap2, jak się domyślam, jest to zapytanie do bazy...?
neoangin
tak, $zap2 to zapytanie

mam jeszcze funkcje get_all ktora zwraca tablice:
  1. public function get_all($query ='')
  2. {
  3. if ($query=='' || $this->db_conn == false)
  4. return false;
  5.  
  6.  
  7. $array = array();
  8. $result = mysql_query($query);
  9. if($result)
  10. {
  11. $i=0;
  12. while($row = mysql_fetch_array($result))
  13. {
  14. $array[$i] = $row;
  15. $i++;
  16.  
  17. }
  18. }
  19. $this->db_error = mysql_error();
  20. return $array;
  21. }


Wywoluje ja sobie tak:

  1. $a = new database();
  2. $kom = $a -> get_all($zap2);
  3.  
  4. for($i=0;$i<count($kom);$i++)
  5. {
  6. echo "<tr><td>".$kom[$i][3]."</td></tr>";
  7. echo "<tr><td></td></tr>";
  8. echo "<tr><td>Dodał/-a: <a href='mailto:".$kom[$i][1]."'>".$kom[$i][0]."</a> dnia" .$kom[$i][2]. "</td></tr>";
  9. }
  10.  


Nie wiem jak podpiac get_count do tego wszystkiego
nowotny
Cytat(neoangin @ 12.09.2009, 12:10:21 ) *
mam jeszcze funkcje get_all ktora zwraca tablice:

No i tu masz prawidłowo użyte mysql_query czego nie masz w tamtej funkcji...
bim2
num rows tak jak fetch array potrzebuje wskaźnika zapytania.

Żeby poprawić twoje umiejętności, nie używa się count() w pętli for.
Albo użyj foreach albo
  1. $count = count($arr);
  2. for($i=0;$i<$count;$i++)
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.