Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z mysql_num_rows
Forum PHP.pl > Forum > Przedszkole
lobopol
Zrobiłem sobie taką klasę (nie cała, ale wszystko co potrzebne tongue.gif):
  1. class Database{
  2. private $dbHandler;
  3. public function __construct($dbLogin, $dbPassword, $dbHost, $dbName) {
  4. $this->dbHandler = @mysql_connect($dbHost,$dbLogin,$dbPassword) or $this->sql_error(mysql_error());
  5. mysql_select_db($dbName,$this->dbHandler);
  6. mysql_query('SET NAMES utf8');
  7. return true;
  8. }
  9. public function select($query){
  10. $data = @mysql_query($query,$this->dbHandler) or $this->sql_error($query.' | '.mysql_error());
  11. $value = array();
  12. while ($temp = mysql_fetch_array($data, MYSQL_ASSOC)) {
  13. $value[] = $temp;
  14. }
  15. return $value;
  16. }
  17. public function row($query){
  18. $result = $this->select($query);
  19. $result = mysql_num_rows($result);
  20. return $result;}}

I przy zapytaniu SELECT * FROM users (jak i innych) dostaje Warning: mysql_num_rows() expects parameter 1 to be resource, array given in adres klasy
gdzie przy użyciu :
  1. $link = mysql_connect("host", "user", "password");
  2. mysql_select_db("baza", $link);
  3. $result = mysql_query("SELECT * FROM users", $link);
  4. $result = mysql_num_rows($result);
  5. return $result;

zwraca mi dobrze liczbę wierszy, co robię źle? Metoda Row ma zwracać liczbę wierszy w konkretnej tabeli (numeracja stron itp.)
Meares
Database->select(); zwraca tablicę.
lobopol
Jaki ja czasem tępy jestem :/,

  1. $result = @mysql_query($query,$this->dbHandler);
  2. $num_rows = mysql_num_rows($result);
  3. return $num_rows;


teraz działa dobrze, ale czy to jest najlepszy sposób aby to zrobić?
Meares
Ja wolę używać COUNT(*) w samym zapytaniu, ale nie ma żadnej różnicy.
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.