y creo que sera mejor ilustralo con codigo.
basicamente he hecho esto con diferentes metodos
y he conseguido el resultado deseado pero ahora quiero separar totalmente
la programacion del diseno y es donde encuentro el problema
Tengo una base de datos para esta ilustracion seria asi:
Código:
La tabla categorias que contendra las categorias ___________ |Categorias | --------------- | cat_id | | cat_name | --------------- La tabla subcategorias que contendra todas las subcategorias realcionadas a su categoria y para esto le paso el id de la categoria .. "nada nuevo hasta ahora" _______________ | SubCategorias | |--------------------| | subcat_id | | subcat_name | | cat_id | ----------------------
Ok entonces lo que deseo es presentar en pantalla
todas las categorias con sus subcategorias debajo de cada
categoria ... ilustrandolo seria asi:
Código HTML:
Categoria1 subcategoria1 - pertenceiente a la categoria1 subcategoria2 subcategoria3 Categoria2 subcategoria4 - pertenceiente a la Categoria2 subcategoria5 subcategoria6
Muy bien entonces lo que hago es lo siguiente :
Trabajo.php
Código PHP:
class Categoria
{
private $get_list;
function __construct()
{
$this->get_list = array();
}
public function get_categories()
{
$sQuery= "SELECT *
FROM Categorias ";
$rsDatos = mysql_query ($sQuery)
or die ("Error for categorias".mysql_error());
//creo un array bidimencional con mysql_fetch_assoc
while($Datos = mysql_fetch_assoc($rsDatos))
{
$this->get_list[] = $Datos;
}
return $this->get_list;
}
}
para poder acceder a sus datos por medio de un FOR
en la parte del diseno.
Ahora para imprimir esto por pantalla lo voy a hacer
en otro documento para que se me entiendo mejor que la
presentacion la deseo trabajar totalmente separda de la programacion:
Index.php
Código PHP:
include("Trabajo.php");
$list = new Categoria();
$categorias_array = $list->get_categories();
//ahora llamo al array bidimencional para que me presente los datos.
for ($i=0; $i <count($categorias_array); $i++ )
{
echo $categorias_array[$i]["cat_name"] ;
echo "<br>"; //le creo un salto de linea para que los ponga en clumna
}
Código HTML:
Categoria1 Categoria2 Categoria3 Categoria4 Entre cada categoria deberia imprimir las subcategorias
anterior pasandole el id de la categoria al la instancia del objeto
que trae las subcategorias de esa categoria en especifico.
Alguien me podria decir cual seria la mejor manera de traer
las subcategorias debajo de cada categoria ..
Como dije antes yo podria popular las subcategorias debajo de
cada categoria pero yo imprimo las subcategorias dentro del objeto
.. osea asi :
Index.php
Código PHP:
include("Trabajo.php");
include("Subcategoria.php");
$list = new Categoria();
$categorias_array = $list->get_categories();
//ahora llamo al array multidimencional para que me presente los datos.
for ($i=0; $i <count($categorias_array); $i++ )
{
echo $categorias_array[$i]["cat_name"] ;
echo "<br>"; //le creo un salto de linea para que los ponga en clumna
$subcate_id = $categorias_array[$i]["cat_id"] ;
$subcategorias = new Subcategorias( $subcate_id );
}
Subcategoria.php
Código PHP:
class Subcategorias
{
protected $cat_id ;
function __construct( $cat_id )
{
$this->cat_id = $cat_id;
$this->get_subcategories();
}
public function get_subcategories()
{
$sQuery= "SELECT *
FROM SubCategorias where cat_id= $this->cat_id";
$rsDatos = mysql_query ($sQuery)
or die ("Error for subcategorias".mysql_error());
//creo un array bidimencional con mysql_fetch_assoc
while($Datos = mysql_fetch_array($rsDatos))
{
echo $Datos["subcat_name"];
echo "<br>";
}
}
}
en el diseno , pero cuando trato de hacerlo de la misma manera que llame
a las Categorias .. solo me muestra la primera categoria y las subcategorias de la
primera categoria ... luego se cicla y me da muchos mas errores ....
La verdad no se que estare haciendo mal
pero si alguien me podria decir como resolver esto
se lo agradeceria millon
Y estoy seguro que ayudara mucho a otras personas con el mismo problema
Gracias