Estoy empezando a utilizar Clases, Namespaces y demas usando Php 5.3
Quisiera saber si es una buena practica utilizar consultas dentro de los metodos de una clase.
Por ejemplo algo asi (En el ejemplo esta puesto con mysql_ pero voy a utilizar la clase mysqli),
class Categoria
{
private $nombre, $id;
function __construct()
{
$this->id=0;
$this->nombre="";
}
function Initialize($cod=0)
{
$this->id=intval($cod);
if($this->id!=0)
{
//Obtengo todos los datos de la categoria
$query="SELECT * FROM Categorias WHERE cat_id=".$this->id;
$result=mysql_query($query);
if(mysql_num_rows($result)>0)
{
$cat=mysql_fetch_assoc($result);
$this->nombre=$cat['cat_name'];
}else
{
$this->id=0;
}
mysql_free_result($result);
}
}
function Get_Id()
{
return $this->id;
}
function Get_Name()
{
return $this->nombre;
}
function Set_Name($name="")
{
if(trim($name)!="")
{
$this->nombre=htmlentities(trim($name),ENT_QUOTES);;
}
}
function Get_Item_List()
{
//Obtengo todos los articulos correspondientes a la categoria
$query="SELECT art_id AS id FROM Articulos WHERE art_cat_id=".$this->id;
$result=mysql_query($query);
if(mysql_num_rows($result)>0)
{
$listado=array();
$i=0;
while($i < mysql_num_rows($result))
{
$aux=mysql_fetch_assoc($result);
$art= new Articulo;
$art->Initialize($aux['id']);
$listado[]=$art;
$i++;
}
return $listado;
}
}
function Get_Total()
{
if($this->id!=0)
{
$query="SELECT COUNT(*) AS Total FROM Articulos WHERE art_cat_id=".$this->id;
$result=mysql_query($query);
$tot=mysql_fetch_assoc($result);
return $tot['Total'];
}else
{
return 0;
}
}
function Get_Total_Ofertas()
{
if($this->id!=0)
{
$query="SELECT COUNT(*) AS Total FROM Articulos WHERE art_cat_id=".$this->id." AND art_oft_id IS NOT NULL";
$result=mysql_query($query);
$tot=mysql_fetch_assoc($result);
return $tot['Total'];
}else
{
return 0;
}
}
function Get_Total_Disabled()
{
if($this->id!=0)
{
$query="SELECT COUNT(*) AS Total FROM Articulos WHERE art_cat_id=".$this->id." AND art_est_id=0";
$result=mysql_query($query);
$tot=mysql_fetch_assoc($result);
return $tot['Total'];
}else
{
return 0;
}
}
private function Exist()
{
if($this->nombre!="")
{
$query="SELECT * FROM Categorias WHERE cat_name LIKE '".$this->nombre."'";
$result=mysql_query($query);
return (mysql_num_rows($result)>0)? true : false;
}else
{
//Aca va un objeto Error
return false;
}
}
private function Insert()
{
if(!$this->Exist())
{
$query="INSERT INTO Categorias(cat_name) VALUES ('".$this->nombre."')";
$result=mysql_query($query);
return (mysql_errno()==0)?true:false;
}else
{
return false;
}
}
function Save()
{
if($this->id==0)
{
return $this->Insert();
}
}
function Delete()
{
if($this->Exist())
{
$query="DELETE FROM Categorias WHERE cat_id=".$this->id;
$result=mysql_query($query);
return (mysql_errno()==0)?true:false;
}else
{
return false;
}
}
}