• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

darky_miguel

resultados aleatorios

6 mensagens neste tópico

pessoal eu quero ir a base de dados buscar 10 rows aleatoriamente eu fiz assim

if ($accao=="aoacaso")

{

$sql="SELECT * FROM filmes";

$result=mysql_query($sql);

while($row=mysql_fetch_assoc($result))

{

$ids[]=$row['cod_filme'];

}

for ($i=0;$i<11;$i++)

{

$numerorand=mt_rand(0, 10);

$final[]=$ids[$numerorand];

}

print_r($final);

}

mas isto tem bug pk me returna rows repetidos e eu nao queria essa situaçao podem me ajudar ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Usa a cláusula DISTINCT no sql... assim elimina-te os duplicados.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

os duplicados nao vem do sql vem do for

for ($i=0;$i<11;$i++)

{

$numerorand=mt_rand(0, 10);

$final[]=$ids[$numerorand];

}

mas nao sei como fazer para o rand nao me gerar numeros iguais

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
$sql = "SELECT * FROM abc ORDER BY RAND() LIMIT 100";

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

obrigado funionou mas eu ja arranjei uma alternativa eu ja meto aqui

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
function aleatorio($min,$max,$count)
{
  $new_array=array();
//tratamento de erros se o count ultrapassar o intervalo
  if($count>=($max-$min))
   {
    $count=$max-$min;
    }
for($i=0;$i<=$count;$i++)
{
$num=mt_rand($min,$max);

while(in_array($num,$new_array))
{

$num=mt_rand($min,$max);
}
$new_array[$i]=$num;
}

esta funçao foi um colega meu que fez e eu adaptei para mim 




if ($accao=="aoacaso")
{

$sql="SELECT * FROM filmes where visivel = 1";
$result=mysql_query($sql);
while($row=mysql_fetch_assoc($result))
{
$ids[]=$row['cod_filme'];
}
$var=aleatorio(1,10,12);

for ($i=0;$i<12;$i++)
{
$final[]=$ids[$var[$i]];
}
?>
<table  border="0">
<tr>
<?php
$i=0;
foreach ($final as $linha)
{
echo "<td>";
if (!nome_filme($linha)=="")
{
$i++;
echo nome_filme($linha);
echo "<br>"; ?>
<img src="<?php echo substr(capa_filme($linha),3); ?>" width="90"  height="140" />
<?php
echo "</td>";
}
if($i%6==0)
{
echo "<tr><td coslpan=5> </td></tr></tr><tr>";
}
}
?>
</tr></table>
<?php
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora