Inner join / PDO
bom eu tenho o seguinte código em msql_*
$db->query( "select * from albuns order by album_name asc" )->fetchAll();
if ( $db->rows >= 1 )
{
$albuns = $db->data;
foreach ( $albuns as $album )
{
$a = ( object ) $album;
$db->query( "select * from fotos where foto_album = $a->album_id order by foto_pos asc" )->fetchAll();
if ( $db->rows >= 1 )
{
$f = ( object ) $db->data[0];
?>
<div class="box-detail box-alb" id="<?= $a->album_id ?>">
<div class="box-inner-alb">
<a href="album.php?id=<?= $a->album_id ?>" > <img src="thumb.php?img=fotos/<?= $f->foto_url ?>">
</a>
</div>
</div>
<?php
}
}
}
no caso ele só me retorna as a quantidade de imagens da tabela fotos conforme a quantidade de album que tem na tabela album.
>
foreach ( $albuns as $album ) { $a = ( object ) $album;
select * from fotos where foto_album = $a->album_id order by foto_pos asc
no caso eu fuçando na net vi sobre o INNER JOIN.
e fim o seguinte:
$stmtO = $pdo->prepare('SELECT obra_id, foto_album, foto_url
FROM obras AS o
INNER JOIN fotos AS f ON o.obra_id = f.foto_album
WHERE foto_album = $o->obra_id
ORDER BY foto_pos ASC'
);
$stmtO->execute();
$obras = $stmtO->fetchAll(PDO::FETCH_ASSOC);
if ( $stmtO->rowCount() >= 1 )
{
foreach ( $obras as $o )
{
sei que aqui nessa linha esta errado **WHERE foto_album = $o->obra_id** pois ele está antes do "foreach" o que eu gostaria de saber é como fazer ae no caso pra ele me retornar somente a primeira imagem da tabela **fotos** que no caso seria a capa de cada album/obra.
bom não sei se deu pra entender é que é dificil explicar. :)
mas desde ja obrigado!
Discussão (12)
Carregando comentários...