Hola a todos!
Estoy estudiando a través de videotutoriales la programación orientada a objetos, y bueno, despues de varios capítulos decidi poner manos en el código porque mucha teoría y poca práctica no sirve. En fin, no llegue muy lejos, di dos pasos y ya me cai en un pozo....
Trato de hacer un loop for dentro de otro, haciendo dos consultas diferentes dentro de cada for pero que llaman a métodos dentro de la misma clase, les dejo el código para que entiendan mejor:
Esta es la clase "Lista"
Código PHP:
<?php
require_once("conectar.php");
class Lista
{
public function get_categorias()
{
$sql1="SELECT * FROM categorias ORDER BY orden ASC";
$ris=mysql_query($sql1,Conectar::con());
while($rig=mysql_fetch_assoc($ris))
{
$this->cat[]=$rig;
}
return $this->cat;
}
public function get_subcategorias($categoria)
{
$sql2="SELECT * FROM subcategorias WHERE id_cat='$categoria' ORDER BY orden ASC";
$res=mysql_query($sql2,Conectar::con());
while($reg=mysql_fetch_assoc($res))
{
$this->subcat[]=$reg;
}
return $this->subcat;
}
public function get_productos($subcategoria)
{
$sql3="SELECT * FROM articulos WHERE id_sub='$subcategoria'";
$ros=mysql_query($sql3,Conectar::con());
while($rog=mysql_fetch_assoc($ros))
{
$this->articulo[]=$rog;
}
return $this->articulo;
}
}
?>
y aca están los "for" donde llamo a los métodos de la clase "Lista"
Código HTML:
Ver original <?php
$sub_categoria=$lista->get_subcategorias(1);
for($e=0;$e<sizeof($sub_categoria);$e++)
{
?>
<li><a href="#" class="sub"><?php echo $sub_categoria[$e]["nombre_sub"]; ?></a> <?php
$productos=$lista->get_productos($sub_categoria[$e]["id_sub"]);
for($x=0;$x<sizeof($productos);$x++)
{
?>
<li><a href="#" class="art"><?php echo $sub_categoria[$e]["nombre_sub"]; ?> <?php echo $productos[$x]["marca"]; ?> -
<?php echo $productos[$x]["descripcion"]; ?></a></li> <?php } ?>
<?php } ?>
El caso es que devuelve resultados, me hace un listado pero es totalmente incoherente, la primera vuelta del loop la hace bien, pero despues me devuelve todos los resultados de la tabla sin filtrarlos por el id como ordena la consulta del método "get_subcategorias".
Ya les digo soy nuevo en POO, tal vez el problema sea muy estúpido pero yo no lo veo, espero que alguien con más visión que yo en esto me ayude a ver el camino a la solución.
Muchas gracias a todos!!