Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/07/2011, 14:39
Avatar de dvbeaumont
dvbeaumont
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 145
Antigüedad: 13 años, 1 mes
Puntos: 1
Pregunta Ocultar campos que no posean información de otra tabla

Buenas! tengo el siguiente problema.

Tengo dos tablas.
  • Marcas
  • Modelos

Hago la siguiente consulta de la base de datos.


Código PHP:
$subtipo=$row["id_subtipo"];     
 
$result_m=mysql_query("select * from t_marca WHERE id_subtipo=".$subtipo." ORDER BY id_marca",$linke); 
   while(
$row_m mysql_fetch_array($result_m)) { 
          echo
"<li><a href='detalle-producto.php?id_modelo=".$row_m["ma_name"]."'>".$row_m["ma_name"]."</a></li>"
  
$marca=$row_m["id_marca"]; 
  
$result_e=mysql_query("select * from t_modelos WHERE  id_subtipo=".$subtipo." AND id_marca=".$marca." AND t_modelos.id_marca != 0 ORDER BY id_modelo ;",$linke)  or die( "Error en query: $linke, el error  es: " mysql_error() );   
        while (
$row_e mysql_fetch_array($result_e)){ 
        if(
$marca==$row_e["id_marca"]){ 
echo
"<li><a href='detalle-producto.php?id_modelo=".$row_e["id_modelo"]."'>".$row_e["mo_titulo"]."</a></li>"
    } else { 
echo
""
    }}} 
   echo
"</ul></div></li>";} 
    
   echo
"</ul></li>";} 
Sucede que no logro hacer que las marcas que no posean modelos dejen de aparecer. Pues este comando:

Código PHP:
  $result_e=mysql_query("select * from t_modelos WHERE  id_subtipo=".$subtipo." AND id_marca=".$marca." AND t_modelos.id_marca != 0 ORDER BY id_modelo ;",$linke)  or die( "Error en query: $linke, el error  es: " mysql_error() ); 
Me indica que si la marca no posee modelos no aparecerá.

Esto solo aplica si coloco la llamada dentro del while que esta en ella.

Código PHP:
  $result_e=mysql_query("select * from t_modelos WHERE  id_subtipo=".$subtipo." AND id_marca=".$marca." AND t_modelos.id_marca != 0 ORDER BY id_modelo ;",$linke)  or die( "Error en query: $linke, el error  es: " mysql_error() );   
        while (
$row_e mysql_fetch_array($result_e)){
          echo
"<li><a href='detalle-producto.php?id_modelo=".$row_m["ma_name"]."'>".$row_m["ma_name"]."</a></li>"
 
        if(
$marca==$row_e["id_marca"]){ 
echo
"<li><a href='detalle-producto.php?id_modelo=".$row_e["id_modelo"]."'>".$row_e["mo_titulo"]."</a></li>"
    } else { 
echo
""

Pero lo que ocasiona es que cada vez que salga un modelo salga encima el nombre de la marca. en vez de listar asi:

Marca1
  • Modelo1
  • modelo2
  • modelo3
Marca2
  • modelo1
  • modelo2
Marca3



Cuando pongo la secuencia que mostre hace rato me sale esto:

Marca1
modelo1
Marca1
Modelo2
Marca2
Modelo1

(pero si evita que salga la marca3)

Deseo que evite que salga la marca 3 pero que me los liste por orden de marca.