webdesign 1 Denunciar post Postado Janeiro 3, 2013 é o seguinte tenho este codigo mas ele está a repetir 4x na ul tenho que fechar o loop mais acima, ja tenetei e nao deu? aparece 4 resultados todos iguais e depois aparece a repetir a ul outras 4 o que estou a fazer mal? <?php $noticias = mysql_query("SELECT id,actores,actores_slug,cat,thumb FROM up_actores WHERE cat = 'realizador' AND NOT actores_slug = '$posts' ORDER BY visitas ASC LIMIT 4") or die(mysql_error()); if(@mysql_num_rows($noticias) <= '0'){ echo "$info_not"; }else{ $numero = '0'; while($res_noticias=mysql_fetch_array($noticias)){ $id = $res_noticias[0]; $actores = $res_noticias[1]; $actores_slug = $res_noticias[2]; $cat = $res_noticias[3]; $thumb = $res_noticias[4]; ?> <div class="bloco entre"> <h2>entretenimento</h2> <ul class="inter"> <?php for($i=0;$i<4;$i++):?> <li class="bsshadow radius<?php if($i==3)echo ' last';?>"> <a href="#"><img src="<?php echo $urlbase_config;?>/uploads/<?php echo $cat; ?>/<?php echo $thumb;?>" alt="" title="" width="200" height="150" /></a> <p class="data">13/03/2012 16:37</p> <p class="titulo"><?php echo $actores;?></p> </li> <?php endfor;?> </ul> <?php } } ?> </div> Compartilhar este post Link para o post Compartilhar em outros sites
allex_carvalho 124 Denunciar post Postado Janeiro 3, 2013 Você está com dois laços de repetição, um while que vai daqui <div class="bloco entre"> até aqui </ul> e um for que pega as li. Então... Tendo mais de um item cadastrado (até 4, como você definiu aqui: LIMIT 4), o código vai fazer com que a div "bloco entre" se repita 4 vezes, assim, o for irá repetir as li 4 vezes. Ai fica a pergunta: A lógica é essa mesmo? Compartilhar este post Link para o post Compartilhar em outros sites
Reebeecaaa 0 Denunciar post Postado Janeiro 3, 2013 SELECT id,actores,actores_slug,cat,thumb FROM up_actores WHERE cat = 'realizador' AND NOT actores_slug = '$posts' ORDER BY visitas ASC LIMIT 4 Nesse sql você fala pra retornar com 4. Coloca o LIMIT como 1 Compartilhar este post Link para o post Compartilhar em outros sites
webdesign 1 Denunciar post Postado Janeiro 3, 2013 Você está com dois laços de repetição, um while que vai daqui <div class="bloco entre"> até aqui </ul> e um for que pega as li. Então... Tendo mais de um item cadastrado (até 4, como você definiu aqui: LIMIT 4), o código vai fazer com que a div "bloco entre" se repita 4 vezes, assim, o for irá repetir as li 4 vezes. Ai fica a pergunta: A lógica é essa mesmo? nao a logica é a aparecer 4 resultados, sem ser repetidos ele está a repetir a ul 4 e repete também os posts? SELECT id,actores,actores_slug,cat,thumb FROM up_actores WHERE cat = 'realizador' AND NOT actores_slug = '$posts' ORDER BY visitas ASC LIMIT 4 Nesse sql você fala pra retornar com 4. Coloca o LIMIT como 1 pus limit 1 assim já funcionou só que aparece repetidamente os 4 posts iguais o que poderei mudar, mas qual a melhor maneira Compartilhar este post Link para o post Compartilhar em outros sites
allex_carvalho 124 Denunciar post Postado Janeiro 3, 2013 Então coloca o while dentro da ul, pegando só as li. Compartilhar este post Link para o post Compartilhar em outros sites
webdesign 1 Denunciar post Postado Janeiro 3, 2013 funca igual repete sempre os primeiros 4 posts e tipo se tirar o limit ele na 2 li repete outros 4 posts assim sucessivamente Compartilhar este post Link para o post Compartilhar em outros sites
allex_carvalho 124 Denunciar post Postado Janeiro 3, 2013 Retira o for e veja se vai funcionar normalmente. Compartilhar este post Link para o post Compartilhar em outros sites
webdesign 1 Denunciar post Postado Janeiro 3, 2013 Retira o for e veja se vai funcionar normalmente. tenho que fazer de outra forma digame uma coisa o dá para fazer com foreach!? está a dar erro nesta linha foreach($noticias as $noticias): <div class="bloco entre"> <h2>entretenimento</h2> <ul class="inter"> <?php $noticias = mysql_query("SELECT id,actores,actores_slug,cat,thumb FROM up_actores WHERE cat = 'realizador' AND NOT actores_slug = '$posts' ORDER BY date ASC LIMIT 1"); foreach($noticias as $noticias): $e++; echo'<li class="bsshadow radius'; if($e==3)echo ' last'; echo '">'; echo'<a href="<?php echo $urlbase_config;?>/personalidades/<?php echo $cat;?>/<?php echo $actores_slug; ?>"><img src="<?php echo $urlbase_config;?>/uploads/<?php echo $cat; ?>/<?php echo $thumb;?>" alt="" title="" width="200" height="150" /></a>'; echo'<asp cls="data">13/03/2012 16:37</p>'; echo'<p class="titulo"><?php echo $actores;?></p>'; echo' </li> '; endforeach; ?> </ul> </div> Compartilhar este post Link para o post Compartilhar em outros sites
allex_carvalho 124 Denunciar post Postado Janeiro 3, 2013 Resolva inicialmente o problema das repetições. Até porque pelo que vejo você usa o for pra fazer uma contagem para comparação, isso dá pra fazer só com o while. Compartilhar este post Link para o post Compartilhar em outros sites
webdesign 1 Denunciar post Postado Janeiro 3, 2013 fiz com while <div class="bloco entre"> <h2>realizador</h2> <ul class="inter"> <?php $noticias = mysql_query("SELECT id,actores,actores_slug,cat,thumb,date FROM up_actores WHERE cat = 'realizador' AND NOT actores_slug = '$posts' ORDER BY date DESC LIMIT 4"); if(@mysql_num_rows($noticias) <= '0'){ }else{ while($res_noticias=mysql_fetch_array($noticias)){ $id = $res_noticias[0]; $actores = $res_noticias[1]; $actores_slug = $res_noticias[2]; $cat = $res_noticias[3]; $thumb = $res_noticias[4]; $date = $res_noticias[5]; $e++; echo'<li class="bsshadow radius'; if($e==3)echo ' last'; echo '">'; echo'<a href="'.$urlbase_config.'/personalidades/'.$cat.'/'.$actores_slug.'"><img src="'.$urlbase_config.'/uploads/'.$cat.'/'.$thumb.'" alt="" title="" width="200" height="150" /></a>'; echo'<asp cls="data">'.$date.'</p>'; echo'<p class="titulo">'.$actores.'</p>'; echo' </li> '; ?> <?php } } ?> </ul> </div> até aqui tudo bem funcou mas depois tenho outra div class <div class="bloco games"> <h2>games</h2> <ul class="inter"> <li class="bsshadow radius"> <a href="#"><img src="/midias/inter01.png" alt="" title="" width="200" height="150" /></a> <p class="data">13/03/2012 16:37</p> <p class="titulo">Com luvas de boxe, Gracyanne Barbosa posa como ring girl</p> </li> </ul> </div> Faço exactamente igual e uma imagem nao aparece correctamnete aparece em baixo coloco o while dentro da ul com outros resultados e funciona mal!? o que estou a errar? Compartilhar este post Link para o post Compartilhar em outros sites
allex_carvalho 124 Denunciar post Postado Janeiro 3, 2013 Como assim uma imagem não aparece corretamente? Já verificou o código-fonte pra ver se o caminho da imagem está ok? Compartilhar este post Link para o post Compartilhar em outros sites
webdesign 1 Denunciar post Postado Janeiro 4, 2013 resolvido eu nao posso usar a mesma letra para o auto incremente Compartilhar este post Link para o post Compartilhar em outros sites