jnejunior 1 Denunciar post Postado Janeiro 10, 2012 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 } elseif ($recuperar == 'recentes') { $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 } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Janeiro 10, 2012 Você já debugou a variável $videoAulasDados antes do foreach para verificar se ela possui os dados/estrutura que você espera ter? <?php echo '<pre>'; var_dump( $videoAulasDados ); exit; foreach( $videoAulasDados as $videoAulasDados1 ) { continua... Compartilhar este post Link para o post Compartilhar em outros sites
jnejunior 1 Denunciar post Postado Janeiro 10, 2012 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) Compartilhar este post Link para o post Compartilhar em outros sites
vieira.rrafael 2 Denunciar post Postado Janeiro 11, 2012 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; Compartilhar este post Link para o post Compartilhar em outros sites
jnejunior 1 Denunciar post Postado Janeiro 11, 2012 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... Compartilhar este post Link para o post Compartilhar em outros sites