Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
fala ai pessoal...
estou tentando fazer um loop usando foreach, mas não esta funcionando como esperado..
estou usando uma classe para conexão com banco de dados e PDO para o mesmo..
veja, o que estou tentando sem sucesso é isso:
<?php
if ($recuperar == 'destaque') {
$tabela = '`jre_video_aulas`';
$ordem = 'data_hora DESC';
$limite = 1;
} elseif ($recuperar == 'recentes') {
$tabela = '`jre_video_aulas`';
$ordem = 'ORDER BY data_hora DESC';
$limite = '1, 6';
}
$videoAula = BD::conn()->prepare("SELECT * FROM
$tabela
WHERE status = ?
ORDER BY $ordem
LIMIT $limite");
$videoAula->execute(array('on'));
if($videoAula->rowCount() < 1) {
echo 'sem dados';
} else {
$videoAulasDados = $videoAula->fetchObject();
}
if ($recuperar == 'destaque') {
?>
<img alt="<?php echo $videoAulasDados->titulo; ?>" src="http://localhost/siteJunior/scripts/timthumb.php?src=<?php echo $videoAulasDados->miniatura; ?>&h=180&w=300&zc=1" />
<h3><a title="<?php echo $videoAulasDados->titulo; ?>" href="falta_o_link"><?php echo $videoAulasDados->titulo; ?></a></h3>
<p><?php echo limitaTexto($videoAulasDados->descricao, 360); ?></p>
<?php$i = 0;
// aqui esta o meu loop
foreach ($videoAulasDados as $videoAulasDados1) {
if ($i % 2 == 0) {
$margin = 'style="margin-right: 30px;"';
} else {
$margin = 'style="margin-right: 0;"';
}
?>
<li <?php echo $margin; ?>>
<img alt="<?php echo $videoAulasDados1->titulo; ?>" src="http://localhost/siteJunior/scripts/timthumb.php?src=<?php echo $videoAulasDados1->miniatura; ?>&h=84&w=143&zc=1" />
<a href="falta_link" title="<?php echo $videoAulasDados1->titulo; ?>"><?php echo limitaTexto($videoAulasDados1->titulo, 80); ?></a>
</li>
<?php
}
}
?>debuguei e a resposta foi essa:
sem dados
object(stdClass)[3]
public 'id' => string '15' (length=2)
public 'autor' => string 'Junior Eberhardt' (length=16)
public 'email' => string 'junior.eberhardt@gmail.com' (length=26)
public 'site' => string 'http://www.google.com' (length=21)
public 'titulo' => string 'esta eh a video aula mais recente, adicionada por mim' (length=53)
public 'data_hora' => string '2012-01-08 16:15:13' (length=19)
public 'miniatura' => string 'http://i1.ytimg.com/vi/GchctYX9i2o/0.jpg' (length=40)
public 'descricao' => string 'O YouTube NextUp está chegando no Brasil e o Denis Lee explica quais são as regras do programa. Não se esqueça de ler todo o regulamento antes de enviar seu ...O YouTube NextUp está chegando no Brasil e o Denis Lee explica quais são as regras do programa. Não se esqueça de ler todo o regulamento antes de enviar seu ...O YouTube NextUp está chegando no Brasil e o Denis Lee explica quais são as regras do programa. Não se esqueça de ler todo o regulamento antes de enviar seu ...O YouTube NextUp est'... (length=1804)
public 'embed' => string '_sSV_sW1IKU' (length=11)
public 'categoria' => string 'photoshop' (length=9)
public 'visitas' => string '25' (length=2)
public 'status' => string 'on' (length=2)sua consulta está retornando um objeto, não um array de objetos.
Faça um teste antes do foreach:
if(is_array($videoAulasDados)):
foreach($videoAulasDados as $videoAula):
//código
endforeach;
else:
// escreve os valores de $videoAulasDados
endif;
menino levado, eu consegui resolver assim:
while ($videoAulasDados1 = $videoAula->fetchObject()) {
testei o que você disse, mas ele retorna apenas um resultado, e eu preciso de vários...
Você já debugou a variável $videoAulasDados antes do foreach para verificar se ela possui os dados/estrutura que você espera ter?