Foros del Web » Programando para Internet » PHP »

Listar Paises que Tengan Artículos Publicados Php

Estas en el tema de Listar Paises que Tengan Artículos Publicados Php en el foro de PHP en Foros del Web. Hola, muy buenas comunidad!. Hoy vengo con una consulta que me está sacando canas verdes... Les comento mi problema... Yo tengo un menú dinámico, el ...
  #1 (permalink)  
Antiguo 01/06/2013, 11:10
Avatar de ArmandoDippet  
Fecha de Ingreso: mayo-2013
Mensajes: 4
Antigüedad: 6 años, 5 meses
Puntos: 0
Listar Paises que Tengan Artículos Publicados Php

Hola, muy buenas comunidad!.
Hoy vengo con una consulta que me está sacando canas verdes...
Les comento mi problema... Yo tengo un menú dinámico, el cual aparecen primero los continentes, luego, al clikear sobre un continente aparecen todos los países de éste.
Pero mi problema está en que quiero hacer aparecer a los países que tienen publicados productos con un estilo y a los que no tienen artículos publicados de otro.

Les comento que tengo dos tablas, una con los países y otra con los productos, ambas se relacionan por medio de un id_pais. Lo que yo hago es hacer dos consultas por medio de dos funciones...

public function obtener_paises($continente)
{
$sql_paises="select id, nombre,continente from paises where continente = $continente";
$res_paises=mysql_query($sql_paises);

while($reg_paises=mysql_fetch_assoc($res_paises))
{
$this->user[]=$reg_paises;
}
return $this->user;
}


public function obtener_lista_si_tiene_productos($continente,$tipo )
{
$sql_productos="select pais,continente,tipo from producto where continente = $continente and tipo = $tipo group by (pais)";
$res_productos=mysql_query($sql_productos);

while($reg_productos=mysql_fetch_assoc($res_produc tos))
{
$this->user[]=$reg_productos;
}
return $this->user;
}

Bien, por ahora todo bien con esto... Ahora los llevo a imprimir en pantalla al archivo en el cual lo necesito siguiendo este código...

$paises=$u->obtener_paises(1);

$productos=$u->obtener_lista_si_tiene_productos(1,$_GET["valor"]);

Y los imprimo así mediante un Doble ciclo for

<?php

for($i=0;$i<sizeof($paises);$i++)
{
for($j=0;$j<sizeof($productos);$j++)
{
if($paises[$i]["id"]==$productos[$j]["pais"])
{
?>
<li><a class="invarseColor" href="#"><strong><?php echo $paises[$i]["nombre"]; ?></strong></a></li>
<?php
}else{
?>
<li><?php echo $paises[$i]["nombre"]; ?></li>
<?php
}

}

}

?>
Espero se entienda, la cosa es que me imprime lo que yo quiero, pero me repite el país tantas veces como artículos haya (por más de que sean distintos paises)...

Bueno, espero que un alma bondadosa me pueda ayudar en esto, le estaré realmente agradecido... Muchas gracias de antemano!.
  #2 (permalink)  
Antiguo 01/06/2013, 11:47
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 8 años, 4 meses
Puntos: 181
Respuesta: Listar Paises que Tengan Artículos Publicados Php

Pues no he leido tu codigo pero por la descripcion de tu problema es tan sencillo como usar un distinct en tu consulta.

Código SQL:
Ver original
  1. SELECT DISTINCT aqui colocar el resto de tu consulta

De esa manera no se mostraran los datos repetidos.

Yo creeria que con eso se deberia solucionar el problema.

p.s. Pon el codigo en colores, una de las causas por las cuales no lei tu codigo es ese, de esa manera es mas facil para todos mirar el codigo, mi sugerencia solo viene por la descripcion del problema no el analisis del codigo.
__________________
Blog de humor http://elcuasatar.net63.net/

Etiquetas: articulos, países
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 06:27.