Keitaro 0 Denunciar post Postado Fevereiro 28, 2003 Como eu posso fazer uma exbicao randomica de um banco de dados.Digamos q eu queira exbir algum dos dados aleatoriamente como fazer isso? Compartilhar este post Link para o post Compartilhar em outros sites
fincerti 1 Denunciar post Postado Fevereiro 28, 2003 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
Keitaro 0 Denunciar post Postado Fevereiro 28, 2003 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
Keitaro 0 Denunciar post Postado Fevereiro 28, 2003 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
Keitaro 0 Denunciar post Postado Fevereiro 28, 2003 $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
renpanvil 7 Denunciar post Postado Agosto 18, 2015 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
Beraldo 864 Denunciar post Postado Agosto 18, 2015 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
renpanvil 7 Denunciar post Postado Agosto 18, 2015 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