Ir al contenido


Foto

¿Ciclo FOR dentro de otro ciclo FOR?


  • Por favor identifícate para responder
2 respuestas en este tema

#1 ikobas

ikobas

    Newbie

  • Miembros
  • Pip
  • 3 mensajes

Escrito 01 febrero 2014 - 02:20

Hola a Tod@s.
Antes de nada darles las gracias de antemano por leer mi pregunta.

Llevo varios días intentando recuperar datos de dos tablas, tblproyectos y tblimagenproyectos. En la segunda tabla se almacenan varias imágenes de cada proyecto, que se identifican por idProyecto.

Lo que quiero es mostrar todos los proyectos con sus imágenes correspondientes a través de un ciclo FOR.

¿Es posible?

Les dejo el código con el que estoy trabajando. Muchas gracias.





php
  1. // Las consultas a la base de datos
  2.  
  3. public function get_proyectos_index()
  4. {
  5. $sql=sprintf(
  6. " SELECT "
  7. ." * "
  8. ." FROM "
  9. ." tblproyectos "
  10. ." INNER JOIN tblcategorias ON tblproyectos.idCategoria = tblcategorias.idCategoria "
  11. ." WHERE "
  12. ." intEstado=1 "
  13. ." ORDER BY "
  14. ." fchFecha DESC "
  15. ." LIMIT 3 ");
  16. $res=mysql_query($sql,Conectar::con());
  17. while ($reg=mysql_fetch_assoc($res))
  18. {
  19. $this->proyectosIndex[]=$reg;
  20. }
  21. return $this->proyectosIndex;
  22. }
  23.  
  24.  
  25.  
  26. //Recupero las imágenes
  27.  
  28. public function get_imagenes_por_id($id)
  29. {
  30. $sql=sprintf(" SELECT "
  31. ." * "
  32. ." FROM "
  33. ." tblimagenproyectos "
  34. ." WHERE "
  35. ." idProyecto='$id' ");
  36. $res=mysql_query($sql,Conectar::con());
  37. while ($reg=mysql_fetch_assoc($res))
  38. {
  39. $this->imagenId[]=$reg;
  40. }
  41. return $this->imagenId;
  42. }
  43.  
  44.  
  45.  
  46. //Ahora trato de que esto funcione...
  47.  
  48. $pro = new Proyecto();
  49. $index = $pro -> get_proyectos_index();
  50.  
  51.  
  52. <ul class="proyectos">
  53.     <?php
  54.     for ($i=0;$i<sizeof($index);$i++)
  55.     {
  56.     ?>
  57.     <li>
  58.         <?php echo $index[$i]["strNombre"];?>
  59.         //Aquí quería recuperar por otro ciclo for las imágenes, lo hago de esta manera pero no funciona
  60.        
  61.         <?php
  62.         for ($i = 0; $i < sizeof($imagenes); $i++)
  63.         {
  64.         $imagenes = $pro->get_imagenes_por_id($index[$i]["idProyecto"]);
  65.         ?>
  66.        
  67.         <img src="archivos/proyectos/full/<?php echo $imagenes[$i]["strUrl"];?>" alt="<?php echo $imagenes[$i]["strNombreImagen"];?>">
  68.  
  69.         <?php
  70.         }
  71.         ?>
  72.     </li>
  73.     <?php
  74.     }
  75.     ?>
  76. </ul>


  • 0

#2 Sephiroth_801

Sephiroth_801

    Member

  • Miembros
  • PipPip
  • 26 mensajes

Escrito 07 febrero 2014 - 07:59

Para empezar, podrías colocar otra letra al segundo ciclo for, por ejemplo "$j" y tienes:  "$imagenes = $pro->get_imagenes_por_id($index[$i]["idProyecto"]);" después del ciclo for, tiene que ser antes, porque estás intentando recorrer un variable(array $imagenes) que todavía no está declarada.
  • 0

#3 ikobas

ikobas

    Newbie

  • Miembros
  • Pip
  • 3 mensajes

Escrito 07 febrero 2014 - 08:22

Tienes toda la razón!
Muchas gracias, voy a probarlo!!
  • 0




IP.Board spam blocked by CleanTalk.