Stworzylem klase ktora sluzy do przechowywania informacji o kategoriach:
<?php
// Klasa Kategorie
class TCategories
{
private $count; //ilosc kategorii
private $tablename; // nazwa tabeli w bazie mysql
public $categories=array(); //tablica obiektow 'kategoria'
public function __construct($tab_name) //Konstruktor klasy TCategories
{
$i=0;
$this->tablename=$tab_name;
$query=mysql_query(\"SELECT * FROM $tab_name ORDER BY id\") or die(mysql_error()); {
$this->categories[$i]= new TCategory($result->id,$result->name);
$i++;
}
}
public function GetTableName()
{
return $this->tablename;
}
}
?>
I klasę przechowującą informacje o danej kategorii:
<?php
class TCategory extends TCategories
{
private $id;
private $name;
public function __construct($id,$name2)
{
$this->id=$id; $this->name=$name2;
print \"Dodano kategorie id: \".$this->id.\" nazwa:\".$this->name.\"<br>\"; }
public function ChangeName($name)
{
{
$tab=$this->tablename;
print \"this = \".$tab; $query=\"UPDATE \".parent::GetTableName().\" SET name = '\".$name.\"' WHERE `id` = \".$this->GetID().\" LIMIT 1;\";
$this->name=$name;
return true;
} else return false;
}
public function GetID()
{
return $this->id;
}
}
?>
dla wyjasnienia TCategory->categories[] to jest tablica obiektow klasy TCategory.
Tworze obiekt:
<?php
$categories= new TCategories(\"categories\");
?>
W bazie znajduja juz sie dane wiec do $categories->categories[] ladowane sa informacje z bazy danych. Problem jest gdy chce zmienic nazwe danej kategorii. Chodzi dokladnie o ta linie w metodzie ChangeName() klasy TCategory:
<?php
$query=\"UPDATE \".parent::GetTableName().\" SET name = '\".$name.\"' WHERE `id` = \".$this->GetID().\" LIMIT 1;\";
?>
parent:GetTableName() jest pusta zmienna. Chyba w takim razie tak nie mozna. Wiec jak powienienem sie odwolac do wlasnosci klasy TCategories w klasie TCategory?
Ten post edytował ikioloak 6.03.2005, 00:00:40