Ir para conteúdo

POWERED BY:

Arquivado

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

Keitaro

randon select mysql

Recommended Posts

você pode fazer o seguinte$inicio = rand(1,999);$fim = 5;isso vai fazer com que a variável $inicio receba um valor alatório entre 1 e 999, mas o ideal é você no lugar do 999 colocar o número de registros da sua tabela... para não haver problemas dele pegar um número maior que o número de registros da sua tabela.... e a variável $fm vai armazenar o número de resultados que você quer que apareça, depois use a seguinte query:"SELECT * FROM sua_tabela LIMIT $inicio, $fim"com isso ele vai fazer uma consulta a partir do número aleatório, pegando os próximos cinco registros....

Compartilhar este post


Link para o post
Compartilhar em outros sites

mto obrigado pela ajuda de ambos..vou optar pela propria definicao do mysql...vlw.. estou aprendendo ainda.. e tem mta coisa q precisa aprender.. obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu fiz um teste com o SELECT * FROM tablename ORDER BY RAND() LIMIT 1mas n ha randon registro.. ele so exibe o registro de ID 1...do contrario se eu usar o citado por fincerti haveria algum meio de eu buscar o numero total de registros.. sem q eu tenha q ficar alterando sempre q adicionar um novo registro??eu n sei ql eh o problema do ORDER BY RAND() eu chequei no PHP.net e tb eh citado este exemplo.. mas aki n funciona.. o DB tem 4 registros mas so aparece o no 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

$result = mysql_query("SELECT * FROM banner ORDER BY id");$reg = mysql_num_rows($result);$inicio = RAND(0, $reg);$sql = "SELECT * FROM banner LIMIT $inicio, 1";eu achei essa solucao.. se vcs tiverem outras (melhores) eu aceito com prazer :rolleyes:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde amigo. O RAND() funciona sim,eu mesmo já imprimi relatórios randomicamente com ele e foi tranquilo, você não precisa puxar a impressão pelo numero do id é só imprimir enquanto houver dados com o while. Eu aconselho a você utilizar PDO mais como está utilizando mysql_connect vou te dar um exemplo de forma procedural.

$consulta = mysql_query("SELECT * FROM $tabela WHERE $filtro ORDER BY RAND()") or die (mysql_error());

while($reg = mysql_fetch_array($consulta)){

    //imprimi aqui seus registros
    echo $reg['id'].'<br>';
    echo $reg['campo_1'].'<br>';
    echo $reg['campo_2'].'<br>';
    echo $reg['campo_3'].'<br>';
    echo $reg['campo_4'];

}

Ta ai amigo espero ter ajudado

Compartilhar este post


Link para o post
Compartilhar em outros sites

O "ORDER BY RAND()" sempre funcionou, sim.

Se quiser exibir apenas um registro, use "ORDER BY RAND() LIMIT 1"

 

Não faz sentido selecionar tudo, pra depois pegar o total e fazer outro SELECT de um só registro. Sua aplicação perderá todo o desempenho.

 

Pra finalizar, vale lembrar que funções mysql_* estão obsoletas desde o PHP 5.5 e serão removidas do PHP em breve. Prefira usar MySQLi ou PDO. Veja mais aqui: http://www.ultimatephp.com.br/php-por-que-nao-utilizar-funcoes-mysql

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mano Beraldo vc ta me perseguindo, o código do cara está em mysql_ vc quer que eu responda oque, já alertei ele para usar PDO.

 

E agora que eu percebi que acabei resussitando um post de mais de 12 anos atrás, tudo porque passei a página errado, e até aqui vc me persegue aaaaaaaaaaaaaaaaaaaaaaa.

 

Que isso man suahauhss

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.