Foros del Web » Programando para Internet » PHP »

Sacar datos aleatorios mediante consulta a MySQL con PHP ??

Estas en el tema de Sacar datos aleatorios mediante consulta a MySQL con PHP ?? en el foro de PHP en Foros del Web. Buenos Dias. Me gustaria saber como puedo estructurar la instruccion para sacar resultados aleatorios de una tabla en MySQL, esto es para mostrar enlaces aleatorios ...
  #1 (permalink)  
Antiguo 26/03/2005, 12:12
Avatar de antihem  
Fecha de Ingreso: mayo-2004
Ubicación: México
Mensajes: 227
Antigüedad: 13 años, 7 meses
Puntos: 0
Sacar datos aleatorios mediante consulta a MySQL con PHP ??

Buenos Dias.

Me gustaria saber como puedo estructurar la instruccion para sacar resultados aleatorios de una tabla en MySQL, esto es para mostrar enlaces aleatorios que tengo almacenados en la base de datos, pero no se como estructurar la instruccion para lograrlo.

Espero que me puedan ayudar.
Muchas gracias de ante mano.

Saludos!
__________________
- -
:neurotico eso fue un php warning ?
creo q si... :golpeado:
  #2 (permalink)  
Antiguo 26/03/2005, 13:53
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 14 años, 6 meses
Puntos: 2
Aqui te mando un codigo que usaba yo (basico) y que a su vez lo tome de algun tutorial que anda por ahi..

Código PHP:
<?
include("db.php");
$qbaney mysql_query("SELECT * FROM banners");
mt_srand(time());
$max mysql_num_rows($qbaney);
$rand mt_rand(1,$max);
$sqldo mysql_query("SELECT * FROM banners WHERE id='$rand'");
 while(
$ban mysql_fetch_assoc($sqldo)) {
echo 
$ban['url'];
 }
?>
en este caso la tabla en DB se llama banners y el campo que quiero obtener se llama url...
__________________
I Love Programming...
  #3 (permalink)  
Antiguo 26/03/2005, 14:32
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
MySQL tiene su propia función RAND()... así te evitarías hacer una doble consulta... y te ahorrarias mucho PHP. Prueba con
Código:
SELECT * FROM tabla ORDER BY RAND() LIMIT 0, 1"
... Si le daz una buscada en el foro de Base de Datos seguro encuentras más info... (de hecho esta cuestión debería de ir allá), aunque no hay mayor ciencia... cabias el limit para modificar el número de resultados a recuperar y listo!.

Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"

Última edición por jam1138; 26/03/2005 a las 15:37
  #4 (permalink)  
Antiguo 26/03/2005, 15:25
 
Fecha de Ingreso: marzo-2005
Ubicación: cd. victoria, tamps, mexico
Mensajes: 53
Antigüedad: 12 años, 8 meses
Puntos: 0
Sonrisa

Muy simple, a continuacion te explico como.... :

<?php
//Aqui va el nombre de tu tabla
$tabla = "nombre_de_tu_tabla";

/*Seleccionamos todo de tu tabla*/
$sql = mysql_query("SELECT * FROM $tabla");

//Sacamos el total de filas de tu tabla
$total = mysql_num_rows($sql);

//Activamos el random
srand((double)microtime()*100000);

//Sacamos un numero al azar entre el 1 hasta el numero total de filas
$random = rand(1,$total);

/*Ahora si, hacemos la consulta para que escojamos una imagen al azar mediante ID, recuerda que tu tabla debe de tener "ID", ¿para que?, simple... para que a la hora de seleccionar cuantas filas tengamos, por ejemplo cuente que tienes 10 filas, y si tienes 10 filas cada fila tenga su ID, la 1a fila con su ID 1, la 2da con el ID 2 y asi respectivamente, para asi, a la hora de hacer el random escojamos un margen entre 1 (que es el primer numero de todos) hasta el numero maximo de filas,en este caso el 10, y asi sacar un numero al azar entre 1 y 10, para posteriormente , elegir desde tu misma tabla, con un "WHERE", que especifique el numero de ID, y asi cada vez que alguien entre a la pagina habra un enlace distinto... MUY SIMPLE */

$query = mysql_query("SELECT * FROM $tabla WHERE id='$random'");

//Llamamos para imprimir el resultado correspondiente de la consulta query
$fet = mysql_fetch_array($query);

//Ahora sacamos el enlace que se escogio al azar, para despues imprimirlo...
$enlace = $fet["enlace"];

echo "<a href=\"$enlace\">$enlace</a>" <br>;
?>

Si quieres imprimir varios enlaces a la vez, pues pones...

while ( $fet = mysql_fetch_array($query) ){
$enlace = $fet["enlace"];
echo "<a href=\"$enlace\">$enlace</a>" <br>;
}

Y asi imprimiras todo pero... no creo que te sirva, en todo caso, recuerda que la variable $fet["enlace"] , en vez de enlace pon el nombre de tu columna...

Es todo!!! SAludosss
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 00:58.