Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/01/2014, 16:10
jacoboprol
 
Fecha de Ingreso: mayo-2012
Ubicación: Canarias
Mensajes: 3
Antigüedad: 12 años, 6 meses
Puntos: 0
Pregunta Recuperar datos de dos tablas relacionadas entre si

Hola a tod@s.
Estoy intentando recuperar datos de dos tablas, relacionadas por el campo 'idProyecto', para que se muestren todos los registros, y a su vez, las imágenes de cada proyecto. Para recuperar de la primera tabla utilizo un ciclo for. El problema lo tengo a la hora de intentar traer las imágenes de cada proyecto, ya que dentro del ciclo for si hago otro ciclo for me descontrola todo.

<?php
// Las consultas a la base de datos

//Recupero los datos de los proyectos

public function get_proyectos_index()
{
$sql=sprintf(
" SELECT "
." * "
." FROM "
." tblproyectos "
." INNER JOIN tblcategorias ON tblproyectos.idCategoria = tblcategorias.idCategoria "
." WHERE "
." intEstado=1 "
." ORDER BY "
." fchFecha DESC "
." LIMIT 3 ");
$res=mysql_query($sql,Conectar::con());
while ($reg=mysql_fetch_assoc($res))
{
$this->proyectosIndex[]=$reg;
}
return $this->proyectosIndex;
}



//Recupero las imágenes

public function get_imagenes_por_id($id)
{
$sql=sprintf(" SELECT "
." * "
." FROM "
." tblimagenproyectos "
." WHERE "
." idProyecto='$id' ");
$res=mysql_query($sql,Conectar::con());
while ($reg=mysql_fetch_assoc($res))
{
$this->imagenId[]=$reg;
}
return $this->imagenId;
}



//Ahora trato de que esto funcione...

$pro = new Proyecto();
$index = $pro -> get_proyectos_index();


<ul class="proyectos">
<?php
for ($i=0;$i<sizeof($index);$i++)
{
?>
<li>
<?php echo $index[$i]["strNombre"];?>
//Aquí quería recuperar por otro ciclo for las imágenes, lo hago de esta manera pero no funciona

<?php
for ($i = 0; $i < sizeof($imagenes); $i++)
{
$imagenes = $pro->get_imagenes_por_id($index[$i]["idProyecto"]);
?>

<img src="archivos/proyectos/full/<?php echo $imagenes[$i]["strUrl"];?>" alt="<?php echo $imagenes[$i]["strNombreImagen"];?>">

<?php
}
?>
</li>
<?php
}
?>
</ul>





Muchas gracias de antemano.