Foros del Web » Programando para Internet » PHP »

Como hacer un query para mostrar al azar los ultimos 3 campos ingresados en mi bd

Estas en el tema de Como hacer un query para mostrar al azar los ultimos 3 campos ingresados en mi bd en el foro de PHP en Foros del Web. Como hacer un query para mostrar al azar los ultimos 3 campos ingresados en mi bd... solo necesito que me muestre un resultado a la ...
  #1 (permalink)  
Antiguo 21/10/2008, 23:53
Avatar de Capimaster  
Fecha de Ingreso: agosto-2004
Mensajes: 494
Antigüedad: 19 años, 8 meses
Puntos: 2
Como hacer un query para mostrar al azar los ultimos 3 campos ingresados en mi bd

Como hacer un query para mostrar al azar los ultimos 3 campos ingresados en mi bd...

solo necesito que me muestre un resultado a la vez.. pero no kiero que ese resultado sea el ulitmo id ingresado a mi bd (ORDERY BY id DESC)esto no... mas bien quiero que me muestre uno al azar entre los ultimos 3 registros ingresados

Gracias anticipadas
__________________
http://www.elcapitolio.com.mx - Ocotlán, Jalisco, México
  #2 (permalink)  
Antiguo 22/10/2008, 00:07
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Como hacer un query para mostrar al azar los ultimos 3 campos ingresados e

Bueno ... a mi se me ocurre hacer lo siguiente:

Sacar los resultados de los 3 ultimos ID con una consulta como la siguiente:
SELECT * FROM tabla ORDER BY id DESC LIMIT 3

Luego crear un numero aleatorio entre 0 y 2 (Puede ser 0, 1 o 2) con la funcion rand().

Y usar mysql_data_seek junto con el numero aleatorio para recoger una de las 3 ultimas filas al azar. Ya luego es mostrar los resultados con un mysql_fetch_array.

http://www.php.net/manual/es/functio...-data-seek.php
http://www.php.net/manual/es/function.rand.php
  #3 (permalink)  
Antiguo 22/10/2008, 01:08
Avatar de Capimaster  
Fecha de Ingreso: agosto-2004
Mensajes: 494
Antigüedad: 19 años, 8 meses
Puntos: 2
Respuesta: Como hacer un query para mostrar al azar los ultimos 3 campos ingresados e

Mira decidi hacer esto... se me hizo mas facil... pero solo me muestra 2 diferentes... en vez de mostrarme 4 que puse como LIMIT

Código PHP:
mysql_select_db($database_noticias$noticias);
$query_banns "SELECT * FROM banner_galery ORDER BY id DESC LIMIT 4";
$banns mysql_query($query_banns$noticias) or die(mysql_error());
$row_banns mysql_fetch_assoc($banns);
$totalRows_banns mysql_num_rows($banns);



$i=1
while(
$row mysql_fetch_assoc($banns)) 

    
$matriz[$i]=$row['source'];
    
$matrix[$i]=$row['ruta'];
    
$matrizx[$i]=$row['codigo']; 
    
$i++; 

$N count($matriz); 
$azar mt_rand(1$N); 
__________________
http://www.elcapitolio.com.mx - Ocotlán, Jalisco, México
  #4 (permalink)  
Antiguo 22/10/2008, 01:35
 
Fecha de Ingreso: junio-2005
Mensajes: 343
Antigüedad: 18 años, 10 meses
Puntos: 10
Respuesta: Como hacer un query para mostrar al azar los ultimos 3 campos ingresados e

Esto sería lo mismo sin tener que inventarte nada:

select * from (SELECT * FROM banner_galery ORDER BY id DESC LIMIT 3) tbl order by rand limit 1
  #5 (permalink)  
Antiguo 22/10/2008, 05:37
Avatar de Capimaster  
Fecha de Ingreso: agosto-2004
Mensajes: 494
Antigüedad: 19 años, 8 meses
Puntos: 2
Respuesta: Como hacer un query para mostrar al azar los ultimos 3 campos ingresados e

order by rand limit 1
??

---

aaaaa ok ok es rand()

y con esto termine mi scip rotador de banners... Gracias por la ayuda!
__________________
http://www.elcapitolio.com.mx - Ocotlán, Jalisco, México

Última edición por Capimaster; 22/10/2008 a las 05:41 Razón: falto parentesis...
  #6 (permalink)  
Antiguo 23/10/2008, 04:29
 
Fecha de Ingreso: junio-2005
Mensajes: 343
Antigüedad: 18 años, 10 meses
Puntos: 10
Respuesta: Como hacer un query para mostrar al azar los ultimos 3 campos ingresados e

de nada, me comi los parentesis de la función
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 23:48.