Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

webdesign

[Resolvido] pessoal o que está errado neste codigo

Recommended Posts

é 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

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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.