Foros del Web » Programando para Internet » PHP »

Por favor, necesito Listar Paises que Tengan Artículos Publicados Php

Estas en el tema de Por favor, necesito 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, 14:27
Avatar de ArmandoDippet  
Fecha de Ingreso: mayo-2013
Mensajes: 4
Antigüedad: 10 años, 9 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!.
  #2 (permalink)  
Antiguo 01/06/2013, 18:12
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 4 meses
Puntos: 84
Respuesta: Por favor, necesito Listar Paises que Tengan Artículos Publicados Php

Cita:
Iniciado por ArmandoDippet Ver Mensaje
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!.
he intentado comprender tu código. lo que te voy a decir es en base a lo que he entendido que está mal en él.

1º realizas dos consultas cuando deberías realizar solamente una (utilizando inner join).

2º si imprimes todos los datos de productos siendo que cada producto tiene asociado un país, es normal que ese país termine repitiéndose.
para solucionar esto no imprimas el campo país de cada producto y problema solucionado.

3º si quieres aplicar estilos distintos tienes dos formas: javascript junto con css3 o algo más rústico con css3 controlado con php.

no puedo ayudarte en más puesto que tus preguntas no están claras, no te explicas lo suficientemente bien.

si no entiendes nada de nada, ni con una ayuda genérica, lo mejor al final es que lo haga alguien que entienda.

saludos.
  #3 (permalink)  
Antiguo 01/06/2013, 19:52
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 9 meses
Puntos: 181
Respuesta: Por favor, necesito Listar Paises que Tengan Artículos Publicados Php

Abrir el tema mas veces no hara que solucionarlo sea mas facil. Si despues de abrirlo en tres ocasiones no das con la solución es porque definitivamente no sabes expresarte o porque no sabes analizar las respuestas que te dan.

Si en lugar de abrir de manera indefinida el tema te tomaras la molestia de entender las ideas que te dan y trataras de modificar el codigo basado en las ideas y respuestas que te dan seria mucho mas facil ayudarte. No esperes que algun alma caritativa te va a resolver tu problema si tu no le pones empeño y te esfuerzas un poco.

creo que guardarmicorreo resume muy bien lo que yo digo:

Cita:
no puedo ayudarte en más puesto que tus preguntas no están claras, no te explicas lo suficientemente bien.

si no entiendes nada de nada, ni con una ayuda genérica, lo mejor al final es que lo haga alguien que entienda.
__________________
Blog de humor http://elcuasatar.net63.net/

Etiquetas: lista, países, productos
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 15:22.