Cytat(abcd @ 22.03.2009, 15:59:23 )

Nie wiem co robię źle
Klasa Polaczenie:
<?php
$polacz;
public function __construct()
{
$this->query(\"SET NAMES latin2\");
}
public function zapytanie($sql)
{
}
?>
Klasa Ksiazka:
<?php
public function ileKsiazek()
{
$polaczenie = new Polaczenie();
$sql = \"SELECT * FROM ksiazki WHERE tytul = 'jjj'\";
$zapytanie = $polaczenie->query($sql);
$liczba_wierszy=$zapytanie->num_rows;
return $liczba_wierszy;
}
?>
Nic nie jest zwracane, co robię źle ?
Na moje oko to nie ma prawa działąć ponieważ robisz coś co można nazwać "sztywnym łączem do bazy danych" co wogule takie nie przypomina. Sprubuj coś takiego: (piszę od reki więc mogę zrobić literówe)
CODE
/*Klasa obsługi połączenia.*/
class klasa{
public function __construct(){
$Baza="localhost"; //przykłądowo.
}
public function query($sql){ //metoda do wykonania zapytania
$polaczenie=mysql_connect($Baza,"user","password")or die("Nie mogę się połączyć

"); //połączenie z bazą danych
mysql_select_db("baza",$polaczenie)or die("nie mam takiej bazy

"); //wybór bazy
$Wynik=mysql_query($sql, $polaczenie) or die("Wystąpił błąd ".mysql_error()); //funkcja mysql_error() zwraca komunikat w razie błędu.
mysql_close($polaczenie); //Pamiętaj o zamykaniu połączenia ! silnik robi to automatycznie tylko jeżeli jest tak skonfigurowany , jeżeli nie kożystasz z CGI to możesz zrobić przepełnienie !.
return($Wynik); // no i zwrot wyników .
} //koniec metody query.
}// koniec klasy/
Wywołąnie takiej metody możesz zrobić np tak:
CODE
$Polaczenie= new klasa(); //deklaracja zmiennej obiektowej
$Wynik=$Polaczenie->query("SELECT * FROM `Tabela`"); // Tu wykoanie zapytania
whille($W=mysql_fetch_array($Wynik)){ //pętla
foreach($W as $Klucz=>$Wartość){ // chyba nie muszę tłumaczyć.
echo("Twoj klucz to :$Klucz, a wartość to: $Wartość <br />\n");
}
}
mam nadzieje, że o to chodziło. Pozdro.