Foros del Web » Programando para Internet » PHP »

impresion de registros al azar

Estas en el tema de impresion de registros al azar en el foro de PHP en Foros del Web. Hola. Necesito construir un script de noticias destacadas para implementar en cada seccion del sitio. me pidieron de urgencia que diseñe un sistema de noticias ...
  #1 (permalink)  
Antiguo 04/10/2004, 08:48
 
Fecha de Ingreso: noviembre-2003
Ubicación: mar del plata
Mensajes: 107
Antigüedad: 20 años, 3 meses
Puntos: 0
impresion de registros al azar

Hola. Necesito construir un script de noticias destacadas para implementar en cada seccion del sitio.

me pidieron de urgencia que diseñe un sistema de noticias o novedades que trabaje de la siguiente forma : cada vez que se ingresa a una seccion en una columna lateral se imprime una noticia / novedad al azar de una tabla. Por su puesto teniendo un administrador que ingrese las noticias . ( eso ya lo se hacer)

lo que no se me ocurre es como imprimir un registro de la tabla al azar . o sea cada vez que entre a la seccion se imprime una novedad si pongo actualizar desde el browser, se imprime otra.

Gracias amigos espero que me ayuden ya que es por trabajo.
  #2 (permalink)  
Antiguo 04/10/2004, 09:03
 
Fecha de Ingreso: septiembre-2004
Mensajes: 72
Antigüedad: 19 años, 6 meses
Puntos: 0
Hola,

Primero, yo pondria un campo en la tabla que sea autonumerico y lo unico que tendrias que hacer para el azar seria:

1-Vemos cual es el max del campo autonumerico
2-Hacemos un Rnd(1,max del campo autonumerico)
3-Hacemos el query donde el where preguntaria si el campo autonumerico = al numero que me dio el RND

Asi de simple,
el problema es que siempre deberias saber la cantidad de registros antes de hacer el azar, sino puedes sobrepasarte.

En caso que no quieras poner el compo en la tabla, entonces usa LIMIT de MySql, y lo que harias es Ver la cantidad de registros de la tabla, hacer el RND y en el query pones en el LIMIT cual quieres leer.

NOTA:
$CUANTOS seria el RowCount que te da MySql.

$CUANTOS=1000; 'Aqui puse 1000 para el Ejemplo, ok!
$HASTA=RND(1,$CUANTOS);
$DESDE=$HASTA-1;

$QUERY="SELECT * FROM TABLA LIMIT $DESDE,$HASTA"
ese query te daria solo el registro que el RND elijio.

Espero que te sirva,
Saludos!
__________________
Pablo F. Savino
---------------

Para aficionados a la Simulacion Aerea Virtual ,
visiten:
http://www.cargovirtual.com
  #3 (permalink)  
Antiguo 04/10/2004, 10:01
 
Fecha de Ingreso: noviembre-2003
Ubicación: mar del plata
Mensajes: 107
Antigüedad: 20 años, 3 meses
Puntos: 0
entonces el RND es el ID (campo numerico) del ultimo registro de la tabla ? eso es lo que no me queda muy claro.

disculpame.

graciass !
  #4 (permalink)  
Antiguo 23/10/2005, 11:23
 
Fecha de Ingreso: octubre-2005
Mensajes: 1
Antigüedad: 18 años, 5 meses
Puntos: 0
Cita:
Iniciado por ale21ale
entonces el RND es el ID (campo numerico) del ultimo registro de la tabla ? eso es lo que no me queda muy claro.

disculpame.

graciass !

creo que fue pesimo el consejo ... osea fue excelente en caso de no tener ID ... pero ale21ale si usa Id en las noticas y por logica todo sistema de noticia susa ID :)

asi que, por lo ke tentendi si quiere elegir una tabla al azar tienes ke usar RAND()

ejemplo:

mysql_query("SELECT id,titulo,cuerpo,author FROM noticias ORDER BY RAND() ");

y lo demas ya lo sabes, puedes agregar LIMIT pake no buske en todo ... o nose ahi ves tu... acepta otras clausulas .. obviente ke sean logicas no vas a phoner tonteras.

;)

www.death.cl - www.death.cl/filmsbox
  #5 (permalink)  
Antiguo 23/10/2005, 13:19
 
Fecha de Ingreso: diciembre-2003
Mensajes: 65
Antigüedad: 20 años, 3 meses
Puntos: 1
Seria algo asi creo yo:
$noticias = mysql_quey("SELECT * FROM noticias");
$total_noticias = mysql_num_rows($noticias);
$id_azar = rand(1,$total_noticias);
$query = "SELECT id FROM noticias where id= '$id_azar' ";
$noticia_azar = mysql_query($query);
$datos_noticia = mysql_fetch_array($noticia_azar);
  #6 (permalink)  
Antiguo 23/10/2005, 13:55
 
Fecha de Ingreso: julio-2005
Ubicación: Guatemala
Mensajes: 165
Antigüedad: 18 años, 7 meses
Puntos: 0
Lo más fácil

Entre los ejemplos que estan puestos, el mejor es el que dice el usuario death.cl por que los otros ejemplos dicen que hay que saber el id máximo, y usar funciones PHP.... NO, NO, NO, no se hagan líos ya la consuta usando RAND() hace todo el trabajo.

Un saludo a todos, que la pasen bien.
  #7 (permalink)  
Antiguo 23/10/2005, 23:35
 
Fecha de Ingreso: mayo-2004
Mensajes: 393
Antigüedad: 19 años, 10 meses
Puntos: 0
Y si lo quieres más fácil, y no crear ni tan siquiera la variable, sencillamente pones en la consulta:
Código PHP:
...........order by rand 
Esto te ordena aleatoriamente los campos de una consulta, pero como solo mostrarás uno, este siempre será distinto.
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 11:38.