Foros del Web » Programando para Internet » PHP »

funcion para randon

Estas en el tema de funcion para randon en el foro de PHP en Foros del Web. hoa estoy haciendo un sitio que tiene una base de datos con imagenes pero en el home quiero que me saque una aleatoriamente cadabes que ...
  #1 (permalink)  
Antiguo 29/03/2005, 12:08
Avatar de alexjnm  
Fecha de Ingreso: octubre-2004
Ubicación: cuba
Mensajes: 218
Antigüedad: 13 años, 1 mes
Puntos: 1
funcion para randon

hoa estoy haciendo un sitio que tiene una base de datos con imagenes pero en el home quiero que me saque una aleatoriamente cadabes que entre al sitio

estoy utilisando rand() pero el problema es que la base de dato ahora tiene 20 registros pero va ha ir aumetando como podria hacer para que en el rand() automatico el sitio sepa la cantidad de registros que hay en la BD y me ponga entonses la cantidad de registros que hay en la BD

saludos alex
__________________
__________________________________________________ _________
A beses el camino mas largo es la solución mas eficaz :)
  #2 (permalink)  
Antiguo 29/03/2005, 13:00
 
Fecha de Ingreso: agosto-2004
Ubicación: Valencia
Mensajes: 149
Antigüedad: 13 años, 4 meses
Puntos: 0
Si quieres que saque sólo una consulta no tienes que hacer nada, simplemente hacer la consulta, limitarla a 1 y ordenarla por el rand().
Código PHP:
$ssql "SELECT * FROM tabla ORDER BY RAND() LIMIT 1"
Salu2.
  #3 (permalink)  
Antiguo 29/03/2005, 14:00
 
Fecha de Ingreso: marzo-2005
Ubicación: cd. victoria, tamps, mexico
Mensajes: 53
Antigüedad: 12 años, 8 meses
Puntos: 0
yo e usado funciones mysql asi y no funcionan, mejor intenta usar el

srand((double)microtime()*10000);

$sql = mysql_query("select * from tabla");
$total = mysql_num_rows($sql);

$random = rand(1,$total);

Aqui lo que hicimos fue escoger todo, y tener ya un numero al azar

$query = mysql_query("select * from tabla where id='$random'");

Random tiene un numeor, ese numero indicara que resultado sacara segun su id, en la tabla sql donde tengas guardadas tus imagenes de preferencia trata de que tenga el campo id int not null auto_increment, para que cada vez que agregues un registro se automatize el numero, y a la hora de seleccionar todo, te den 20 id ordenados , y a la hora del aleatorio, selecciona un numro entre 1 y 20, despues, ahces otra consulta pero esta vez le especificas el id y asi sacas un resultado al azar, cada vez que alguien entre te sacar un resultado distinto... si tienes dudas, avisame :D

SAludos !!
  #4 (permalink)  
Antiguo 29/03/2005, 14:21
 
Fecha de Ingreso: julio-2003
Ubicación: Colombia
Mensajes: 591
Antigüedad: 14 años, 4 meses
Puntos: 7
lo mismo que dice ricardo17 solo que en vez de select * .. para saber el total de registros usa select count(*), es una consulta mas rapida y apropiada para lo que quieres...

de esta manera..
$sql = mysql_query("select count(*) from tabla");
$total = mysql_fetch_array($sql);

$random = rand(1,$total[0]);


Chaop!
  #5 (permalink)  
Antiguo 29/03/2005, 14:32
Avatar de ostrasjo  
Fecha de Ingreso: diciembre-2004
Mensajes: 165
Antigüedad: 13 años
Puntos: 0
Cita:
Iniciado por adimensional
Si quieres que saque sólo una consulta no tienes que hacer nada, simplemente hacer la consulta, limitarla a 1 y ordenarla por el rand().
Código PHP:
$ssql "SELECT * FROM tabla ORDER BY RAND() LIMIT 1"
Salu2.
Usa esta ya que si usas el código de ricardo17 si borras algun registro te dará un error.
No se por que te falla el código de adimensional, igual no está bien escrito. Yo lo utilizo en una web en muchísimas ocasiones y nunca me da un solo error.

Un saludo
  #6 (permalink)  
Antiguo 29/03/2005, 16:20
 
Fecha de Ingreso: agosto-2004
Ubicación: Valencia
Mensajes: 149
Antigüedad: 13 años, 4 meses
Puntos: 0
Funciona por que está operativa en varias webs, simplemente es acoplarla a la web en cuestión.
Salu2.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:16.