Znalazłem
tutaj prostą klasę do obsługi bazy mysql, ale klasa nie ma obsługi mysql_num_rows i mysql_fetch_array więc postanowiłem dodać, ale nie działa jak powinna, mogę prosić o sprawdzenie i naprowadzenie co jest nie tak?
Baza.class.php
<?
class db {
private $db_host = DB_HOST;
private $db_name = DB_NAME;
private $db_user = DB_USER;
private $db_passw = DB_PASSW;
// zmienne publiczne - dostępne poza klasą
public $connection; // połączenie
public $error; // ew. błąd zwrócony przez bazę danych
public function connect(){
if ($connection = mysql_connect($this->db_host, $this->db_user, $this->db_passw)) { $this->connection = $connection;
return true;
} else {
return false;
}
} else {
return false;
}
} // eof connect()
public function select($sql) {
if ($this->connection) {
mysql_set_charset('utf8', $this->connection);
if (isset($sql) && $sql != '') { return $result;
} else {
return false;
}
} else {
$this->error = 'Błąd zapytania SQL';
return false;}
} else {
$this->error = 'Brak połączenia z bazą danych';
return false;}
} // eof select()
public function query($sql){
if (isset($sql) && $sql != '') { if ($this->connection) {
mysql_set_charset('utf8', $this->connection);
return true;
} else {
return false;}
} else {
$this->error = 'Brak połączenia z bazą danych';
return false;}
} else {
$this->error = 'Błąd zapytania SQL';
return false;}
} // eof query()
// start dodane przeze mnie ======================================================
public function numrows($sql){
if ($this->connection) {
mysql_set_charset('utf8', $this->connection);
if (isset($sql) && $sql != '') { return $result;
} else {
return false;}
} else {
$this->error = 'Błąd zapytania SQL';
return false;}
} else {
$this->error = 'Brak połączenia z bazą danych';
return false;}
} // eof numrows()
public function fetcharray($sql){
if ($this->connection) {
mysql_set_charset('utf8', $this->connection);
if (isset($sql) && $sql != '') { return $result;
} else {
return false;
}
} else {
$this->error = 'Błąd zapytania SQL';
return false;
}
} else {
$this->error = 'Brak połączenia z bazą danych';
return false;}
} // eof fetcharray()
// koniec - dodane przeze mnie ======================================================
public function close(){
if ($this->connection){
return true;
} else {
return false;}
} else {
$this->error = 'Brak aktywnego połączenia';
return false;}
} // eof close()
}
fragment kodu php z index.php (wcześniej inicjuje połączenie $db->connect() i definiuje zmienną $db odnoszącą się do klasy)
$sql = "SELECT wid,czas,podpis FROM tabela WHERE status = '1' ORDER BY 'czas' DESC;";
if ($db->select($sql)){
if ($db->numrows($sql) == 0) {
} else {
$wierszy = $db->numrows($sql);
for ($i=0;$i<$wierszy;$i++) {
$dane = $db->fetcharray($sql);
echo $dane['wid'].$dane['czas'].$dane['podpis'];} }
}
ten fragment pokazuje mi 17 razy jeden wiersz. Znalezionych wierszy jest 17 i to jest prawidłowy wynik, co jest nie tak że tylko jeden wiersz w pętle wrzuca? db