Allá va:
Código PHP:
if($id_categoria or $id_marca){
// 1) Buscamos id_relacion
$where = array();
if($id_categoria) $where[] = "id_categoria=$id_categoria";
if($id_marca) $where[] = "id_marca=$id_marca";
$where_string = (count($where)>0)? "WHERE ".implode(' AND ', $where):"";
$conn = db_connect();
$query_r = " SELECT id_relacion FROM relaciones $where_string";
$result_r = @$conn->query($query_r);
$num_rows_r = $result_r->num_rows;
echo "Relaciones encontradas: ";
echo $num_rows_r;
echo "<br />";
// 2) Buscamos la marca, sección, categoria y productos
if($num_rows_r){
$res_query = array();
while($row = $result_r->fetch_assoc()) {
$res_query[] = $row['id_relacion'];
}
$query_producto =
"
SELECT *
FROM productos
WHERE id_relacion IN (".implode(",",$res_query).")
ORDER BY $orden ASC
";
$result_producto=@$conn->query($query_producto);
$num_rows = $result_producto->num_rows;
// 2.1) Extraigo la sección y categoría a la que pertenecen los productos
if ($num_rows!=0){
$id_relacion = $v['id_relacion'];
$conn = db_connect();
$query_mc =
"
SELECT *
FROM marcas, categorias, relaciones, secciones
WHERE secciones.id_seccion=$id_seccion
AND relaciones.id_relacion=$id_relacion
AND relaciones.id_marca=marcas.id_marca
AND relaciones.id_categoria=categorias.id_categoria
";
$result_mc = @$conn->query($query_mc);
$row_mc = $result_mc->fetch_assoc();
}
// 2.2) Extraigo los datos de los productos
while($row_producto=$result_producto->fetch_assoc())
{
/*DATOS PRODUCTOS*/
}
}
else{
echo "<br />No se han encontrado productos<br />";
}
}