PHP - Numeros aleatorios || Base de dados

DarkWolfXP

Power Member
Boas, estou a desenvolver uma página que irá desenvolver numeros aleatórios, mas no entanto gostaria que eles não repetissem...
Existe alguma maneira de não usar uma base de dados para atingir esse objectivo?
Neste momento estou a utilizar uma base de dados e funciona quase perfeitamente, apenas tem um pequeno GRANDE bug :lol:.
Eu como não quero encher a base de dados de registos desses números coloquei um "while" para remover todos e quaisquer registos que o visitante produziu naquela página (depois de mostrar os numeros gerado é claro).
O problema está nesse ciclo, se o visitante quiser um grande quantidade de numeros aleatorios o ciclo irá demorar algum tempo e se por algum motivo o utilizador sair da página/parar o script, os registos não são eliminados e ficam acumulados na base de dados. Existe alguma maneira de prevenir isto? Eu agora estou a olhar para a função Trigger, talvez ajude...
Desde já obrigado
 
Funciona de modo semelhante ao random.org ...
O utilizador recebe multiplos numeros aleatórios ou apenas um é como o utilizador o definir. O problema está quando ele pretende obter por exemplo 500000 numeros aleatorios sem repetição, e caso ele pare ou quebre o ciclo do script enquanto estava a gerar os numeros, os registos ficam na base de dados e terei de apagar manualmente.
 
Mas se é temporário, não precisas de colocar na base de dados, no máximo numa session, tu inseres os numeros num array, mete o código que tens e secalhar é mais fácil te corrigirem, talvez mais logo coloque uma solução que funcione para qualquer quantidade de numeros.
 
Mas através de uma session irei conseguir fazer numeros aleatorios SEM repetição? Eu tive de recorrer à base de dados porque era a unica maneira que estava a ver para ultrapassar esta questão...O problema é que não vejo como fazer numeros aleatorios sem repetição sem usar a base de dados para verificar a existência de numeros ja feitos, eu procurei já no google sobre esta questão mas não encontrei:mad:

Cumprimentos
 
Obrigado desde já a todos que responderam :)

Bem experimentei o código do mcog_blaster, e funciona de facto, não me está a repetir os numeros... funciona perfeitamente adicionei o for each para ter mais numeros :) mais daqui a pouco edito para "limitar" os resultados.
A função o shuffle atribui a cada array um numero não havendo assim repetição :D Certo?
Cumprimentos
 
Ja tenho o script a limitar o número de colunas :D, e tentei por os numeros numa tabela ou seja, o utilizador depois escolhia o numero de colunas que pretende visualizar, com os numeros gerados.
<table>
<?
foreach ($numeros as $number) {
if($i <$results){
echo "<tr>";
if ($a <5){
echo "<td>$number</td>";
$a++;
}
echo "</tr>";
$i++;
}else{
break;
}
}
}
}
?>
</table>
Neste código o numero 5 é o numero de colunas que devia de aparecer...
Eu tentei algo deste genero mas não está a funcionar como eu queria... não fico com as colunas, agora se eu substituir o if ($a<5) por while($a<5); obtenho as 5 colunas mas com o numeros repetidos como é obvio... Existe alguma maneira de contornar este problema ;)?

Cumprimentos
 
Já consegui organizar a informação numa tabela o problema era na mudança de linha... quando mudava da ultima coluna para a 1º perdia um número :lol:
Eu para não criar outro tópico, e como ainda tem haver com números... gostaria de perguntar:

Se existe alguma maneira de criar TXT's temporários e únicos??
Neste momento, consigo criar apenas 1 TXT e não é temporário...
Agradecia que me dessem umas luzes neste âmbito, eu nunca utilizei o PHP para gravar a informação num ficheiro temporário e estou curioso para aprender como fazê-lo :)

Cumprimentos
 
Já consegui organizar a informação numa tabela o problema era na mudança de linha... quando mudava da ultima coluna para a 1º perdia um número :lol:
Eu para não criar outro tópico, e como ainda tem haver com números... gostaria de perguntar:

Se existe alguma maneira de criar TXT's temporários e únicos??
Neste momento, consigo criar apenas 1 TXT e não é temporário...
Agradecia que me dessem umas luzes neste âmbito, eu nunca utilizei o PHP para gravar a informação num ficheiro temporário e estou curioso para aprender como fazê-lo :)

Cumprimentos

tempnam

tmpfile
 
Que te interessa a extensão? são todos iguais. Estás a guardar os resultados com que intuito? Para outros utilizarem? Para se voltarem a pedir o mesmo?
 
Eu gostaria que os utilizadores após gerarem os seus números pudessem fazer download dos resultados (desses numeros) num ficheiro TXT...
Mas possivelmente torna-se redundante =/
 
Aconselho-te então a usar sessions que também são temporárias e criares um ficheiro tipo download.php

Hm, para variar n tinha pensado nisso :lol:
Acho que já estou a perceber, ao utilizar as sessions a página download.php irá verificar a sessão do utilizador e indicar o ficheiro que ele irá sacar é isso?

Cumprimentos
 
Não, podes guardar arrays na session e é só enviares para output e mudares o header
ex.:
PHP:
header('Content-Disposition: inline; filename="'.$name.'"');
header('Content-Type: application/x-download');
echo $numeros;
E ele vai fazer download do ficheiro $name que pode ser "ficheiro.txt" com o que está na variável numeros que pode ser algo do género "2;5;7"
Se for um array, para ficar como disse atrás fazes:
PHP:
echo implode(";", $numeros);
 
OMG :wow: nunca tinha visto algo assim lol, incrivel, isso simplifica o processo que queria fazer 100x! Funciona perfeitamente, mais daqui a pouco vou ver o que fazem concretamente cada linha das headers para perceber e aprender :D
anjo2 muito obrigado... ;)

Cumprimentos
 
Back
Topo