Foros del Web » Programando para Internet » PHP »

mostrar consulta separada por categorias

Estas en el tema de mostrar consulta separada por categorias en el foro de PHP en Foros del Web. Hola amigos, necesito una ayudita...(trabajo con Mysql y php) tengo una BD que tiene categorías de automoviles de carrera con una tabla que guarda la ...
  #1 (permalink)  
Antiguo 21/06/2008, 09:24
 
Fecha de Ingreso: marzo-2007
Ubicación: Argentina
Mensajes: 26
Antigüedad: 17 años, 1 mes
Puntos: 0
mostrar consulta separada por categorias

Hola amigos, necesito una ayudita...(trabajo con Mysql y php)

tengo una BD que tiene categorías de automoviles de carrera

con una tabla que guarda la categoría
ej categ: A5, N4, N5, etc...

y otra tabla que guarda los pilotos (con una referencia a la categoría que pertenece)
ej

piloto: pepe ludo categ: A5
piloto: pedro bello categ: N4

necesito mostrar los datos de modo que muestre la categoría seguido de todos los pilotos de esa categoía, luego otra categoría con sus respectivos pilotos, etc.
ej:

-A5
piloto1 (categ A5)
piloto2 (categ A5)
piloto3 (categ A5)

-N4
piloto4 (categ N4)
piloto5 (categ N4)
piloto6 (categ N4)

-N5
piloto7 (categ N5)
piloto8 (categ N5)
piloto9 (categ N5)

¿como hago ésta muestra? ¿con "for"?

desde ya muchas gracias.!
  #2 (permalink)  
Antiguo 21/06/2008, 10:30
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 1 mes
Puntos: 52
Respuesta: mostrar consulta separada por categorias

Hola

Podrias hacerlo con dos consultas a la BD y dos WHILE uno dentro del otro.


$query= SELECT * FROM cateforias
$result = mysql_query($query)


while($row = mysql_fetch_array($result)){

$id_categoria = $row[id]; //extrae el campo donde este almacenada la categoria

echo $id_categoria;

$query2= SELECT * FROM pilotos WHERE id_categoria = $id_categoria
$result2 = mysql_query($query2)

while($row2 = mysql_fetch_array($result2)){

//muestras los resultados de pilotos por categoria.

}
}

Mas o menos asi, no es codigo, es una explicacion.

Espero haberme explicado

Un saludo
  #3 (permalink)  
Antiguo 21/06/2008, 10:58
 
Fecha de Ingreso: julio-2006
Mensajes: 13
Antigüedad: 17 años, 9 meses
Puntos: 1
Respuesta: mostrar consulta separada por categorias

aca te dejo un trozo de codigo ara que pruebes, puede que tenga errores, ya que lo arme con partes de una funcion que usaba en mi pagina que era un poco mas extensa y no lo probe, creo se entiende bastante bien, si nos mostras como esta armada la BD se podria hacer algo mas armadito ^^, a este codigo le falta pulir pero para hacer pruebas se puede, es muy parecido al que puso jaronu,practicamente lo mismo pero con una tabla y separado por columnas.

Código PHP:

<?php

//Listado de categorias
function Mostrar_categorias()
{
//incluyo el archivo de configuraciones
include("configuraciones.php");
//me conecto a la bd y hago la consulta de las categorias principales
$sql="SELECT categoria FROM categoria_principal";
$result mysql_query($sql,$connection) or die(mysql_error());

//creo la tabla para los contenidos
?>            
<table>
<?
//hago un wile para largar las categorias principales
while($rs mysql_fetch_assoc($result)){
//asigno el valor de categoria principal
$categoria_principal $rs['categoria'];
//la muestro
?>
<tr><h3><?php echo $categoria_principal;?></h3></tr>
<?
//hago otra consulta a las subcategorias
$sql="SELECT id,piloto,categoria FROM pilotos WHERE categoria = '$categoria_principal'";
$resultado=mysql_query($sql,$connection) or die(mysql_error());
//largo los resultados en columnas
while($rs mysql_fetch_assoc($resultado)){
$columnas 3;
$resto = ($n $columnas);
if (
$resto == 0) {?> <tr>
<?}
//muestro el contenido
?>
<td align="center" width="230" ><?php echo $rs['piloto'];?></td>
<?

//sumo 1 a $n
    
$n++;

}    
//cierro la tabla
?>
<tr></table>
<?
}
}
//cierro todo y arranca el bucle con la proxima categoria principal y sus respectivos pilotos
?>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:03.