Estoy creando una serie de clases bastante sencillas pero cuando aplico herencia no consigo que me funcionen los metodos de la clase padre.
La clase padre es 'Categoria' mientras que la clase hija es 'Articulo', simplemente defino un metodo llamado showCategories() en la clase padre para mostrar una lista de categorias y en la clase hijo llamo a este metodo a la hora de mostrar un formulario pero por algun motivo cuando llega a la parte en que se llama al metodo, se rompe la ejecucion y no me muestra nada mas:
Categoria.class.php
Código PHP:
<?php
class Categoria{
private $category_items = array();
public function showCategories($id = NULL){
if(!isset($id)){
$sql = sprintf("SELECT * FROM categories ORDER BY id_category DESC");
}
else{
$sql = sprintf("SELECT * FROM categories WHERE id_category = '%s' ORDER BY id_category DESC", mysql_real_escape_string($id));
}
$result = mysql_query($sql);
while($fila = mysql_fetch_assoc($result)){
$this->category_items[] = $fila;
}
return $this->category_items;
}
?>
Código PHP:
<?php
require_once('categoria.class.php');
class Articulo extends Categoria{
private $articulo = array();
public static function showInsertArticuloForm($id = NULL, $name = NULL, $code = NULL, $active = NULL, $desc = NULL){
echo "
<form method='post' action='insert-article.php' name='fInsertArticle'>";
if(isset($id))
echo "<input type='hidden' name='id_art' value='".$id."' />";
echo "<p>Name: <input type='text' name='art_name' size='35' ";
if(isset($name)) echo "value='".$name."'";
echo "/></p>
<p>Code: <input type='text' name='art_code' size='36' ";
if(isset($code)) echo "value='".$code."'";
echo "/></p>
<p>Active?: <input type='checkbox' name='art_active' ";
if(isset($active)) echo "checked='checked'";
echo "/></p>
<p>Category for this item:
<select name='art_cat'>";
// Heredado de Categoria, aqui es donde falla
$cat_items = parent::showCategories();
for($i = 0; $i < count($cat_items); $i++){
echo "<option value='".$cat_items[$i]['id_category']."'>".$cat_items[$i]['name_category']."</option>";
}
echo "</select>
</p>
<p>Description: </p>
<p><textarea name='art_desc' id='art_desc' rows='30' cols='60'>";
if(isset($desc)) echo stripslashes($desc);
echo "</textarea></p>
<input type='button' value='Insert New Item' onClick='checkInsertArticleForm();' class='submit' />
</form>
";
}
?>
Un saludo y gracias de antemano!