Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Klasa sql
Forum PHP.pl > Forum > Gotowe rozwiązania
xero
Napisałem sobie klase do zarządzania mysql`em, na podstawie teskstu o sterowniku mysql na webcity... Tylko jest jeden problem.. Jedna z funkcji która mnie najbardziej interesuje nie działa a mianowicie mysql_num_rows :?
Tu kod mojej klasy:
[php:1:24988450df]
<?
//lib_mysql.php
class db {
//openc
var $connect_id;
var $db_name;
var $query_result;
function db($db_host, $db_name, $db_user, $db_pass) {
//openf db
$this->connect_id = @mysql_connect($db_host, $db_user, $db_pass);
if($this->connect_id) {
$dbselect = @mysql_select_db($db_name, $this->connect_id);
if($dbselect) {
$this->db_name = $db_name;
return true;
} else {
$this-> _error('dbselect');
mysql_close($this->connect_id);
return false;
}
} else {
$this -> _error('connect');
return false;
}
//closef db
}
function query($query) {
//openf query
$this->query_result = @mysql_db_query($this->db_name, $query, $this->connect_id);
if(!$this->query_result) {
$this-> _error('query');
return false;
} else {
return true;
}
//closef query
}
function fetch_array($query_result = ''){
//openf fetch_array
$query_result = (empty($query_result)) ? $this -> query_result : $query_result;
$array = mysql_fetch_array($query_result);
if($array) {
return $array;
} else {
return false;
}
//closef fetch_array
}
function num_rows($query_result = ''){
//openf num_rows
$query_result = (empty($query_result)) ? $this -> query_result : $query_result;
$numrows = mysql_num_rows($query_result);
if($array) {
return $numrows;
} else {
return false;
}
//closef num_rows
}
function close() {
//openf close
$dbclose = @mysql_close($this->connect_id);
if($dbclose) {
return true;
} else {
$this-> _error('close');
return false;
}
//closef close
}
function _error($type) {
//openf _error
$text = "<H2>Mysql Error</H2><BR>";
switch($type) {
case 'connect':
$text .= 'Wystąpił błąd podczas łączenia się z serwerem baz danych';
break;
case 'dbselect':
$text .= 'Wystąpił błąd podczas wybierania bazy danych';
break;
case 'query':
$text .= 'Wystąpił błąd podczas wykonywania zapytania SQL';
break;
case 'dbclose':
$text .= 'Wystąpił błąd podczas zamykania sesji MySQL';
break;
default:
$text .= 'Ogólny błąd MySQL';
}
$text .= '!<hr>MySQL said: <i>' . mysql_error() . '</i>';
die($text);
}
//closef _error
}
//closec db

?>
[/php:1:24988450df]
A wszystko wywołuję w te sposób:
[php:1:24988450df]<?php
require("incl/lib_mysql.php");
$db = new db("localhost", "nplay", "root", "krasnal");
$db->query("select * from category");
while($row = $db->fetch_array()){
//openw
echo "id: ".$row["id"]." name: ".$row["name"]."<BR>";
//closew
}
echo"Wyniki: ". $db->num_rows();
?>[/php:1:24988450df]
Wszystko działa gites, ale nie pechowe num_rows... Czy ktoś móglby mi wytłumaczyć jak zrobić aby to działało....
Cudi
[php:1:755fbd0874]<?php
$numrows = mysql_num_rows($query_result);
if($array) {
return $numrows;
} else {
return false;
}
?>[/php:1:755fbd0874]
Zamiast tego (skąd sie wzieła zmienna $array?!) daj:
[php:1:755fbd0874]<?php
return mysql_num_rows($query_result);
?>[/php:1:755fbd0874]
I będzie ok.
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.