Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/06/2013, 14:27
Avatar de ArmandoDippet
ArmandoDippet
 
Fecha de Ingreso: mayo-2013
Mensajes: 4
Antigüedad: 11 años, 6 meses
Puntos: 0
Por favor, necesito 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...

Código PHP:
Ver original
  1. public function obtener_paises($continente)
  2. {
  3. $sql_paises="select id, nombre,continente from paises where continente = $continente";
  4. $res_paises=mysql_query($sql_paises);
  5.  
  6. while($reg_paises=mysql_fetch_assoc($res_paises))
  7. {
  8. $this->user[]=$reg_paises;
  9. }
  10. return $this->user;
  11. }
  12.  
  13.  
  14. public function obtener_lista_si_tiene_productos($continente,$tipo )
  15. {
  16. $sql_productos="select pais,continente,tipo from producto where continente = $continente and tipo = $tipo group by (pais)";
  17. $res_productos=mysql_query($sql_productos);
  18.  
  19. while($reg_productos=mysql_fetch_assoc($res_produc tos))
  20. {
  21. $this->user[]=$reg_productos;
  22. }
  23. return $this->user;
  24. }
  25.  
  26. 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...
  27.  
  28. $paises=$u->obtener_paises(1);
  29.  
  30. $productos=$u->obtener_lista_si_tiene_productos(1,$_GET["valor"]);
  31.  
  32. Y los imprimo así mediante un Doble ciclo for
  33.  
  34. <?php
  35.  
  36. for($i=0;$i<sizeof($paises);$i++)
  37. {
  38. for($j=0;$j<sizeof($productos);$j++)
  39. {
  40. if($paises[$i]["id"]==$productos[$j]["pais"])
  41. {
  42. ?>
  43. <li><a class="invarseColor" href="#"><strong><?php echo $paises[$i]["nombre"]; ?></strong></a></li>
  44. <?php
  45. }else{
  46. ?>
  47. <li><?php echo $paises[$i]["nombre"]; ?></li>
  48. <?php
  49. }
  50.  
  51. }
  52.  
  53. }
  54.  
  55. ?>
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!.