Foros del Web » Programando para Internet » PHP »

Como hago una consulta en mysql como random

Estas en el tema de Como hago una consulta en mysql como random en el foro de PHP en Foros del Web. Hago una consulta en mysql que los datos cambien como random...
  #1 (permalink)  
Antiguo 21/06/2002, 11:48
hat
 
Fecha de Ingreso: mayo-2002
Mensajes: 75
Antigüedad: 21 años, 11 meses
Puntos: 0
Como hago una consulta en mysql como random

Hago una consulta en mysql que los datos cambien como random
  #2 (permalink)  
Antiguo 21/06/2002, 17:40
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 3 meses
Puntos: 17
Re: Como hago una consulta en mysql como random

ORDER BY rand()

Joe Tawers,
<a href="http://www.ilimit.com/towers">http://www.ilimit.com/towers</a>
  #3 (permalink)  
Antiguo 03/02/2003, 02:55
Avatar de t0m|ta  
Fecha de Ingreso: julio-2002
Ubicación: Madrid
Mensajes: 369
Antigüedad: 21 años, 8 meses
Puntos: 3
Holas

Yo tengo una query hecha así pero el 90% me saca el mismo resultado Digamos que es un random un poco repetitivo.

¿hay alguna manera de que el random sea un poco más random?

Código PHP:
$sql "SELECT 
topic_id,
topic_title,
topic_time,
topic_views, 
username, 
forum_id 

FROM manual_topics, phpbb_users 

WHERE forum_id = 28 AND user_id = topic_poster  

ORDER BY Rand() LIMIT 0, 1"


Saludos y gracias
__________________
:ojotes: t0m|ta - IHQ :ojotes:
No tengo palabras
Instrucciones de andar por casa
  #4 (permalink)  
Antiguo 03/02/2003, 06:01
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 3 meses
Puntos: 17
¿No será que tienes pocos registros donde escoger?

En realidad el random es todo lo aleatorio que puede ser, teniendo en cuenta que hablamos de máquinas sin subjetividad. Por lo general, los randoms de cualquier programa o entorno operativo nunca son realmente aleatorios, sino que toman en consideración cosas como el microtime, el id de sesion, algúna extraña combinación del nombre de usuario o algo similar.
__________________
M a l d i t o F r i k i
  #5 (permalink)  
Antiguo 03/02/2003, 06:59
Avatar de t0m|ta  
Fecha de Ingreso: julio-2002
Ubicación: Madrid
Mensajes: 369
Antigüedad: 21 años, 8 meses
Puntos: 3
jeje, no tengo pocos, hay unos 20, de los cuales elijo uno, y siempre me sale el mismo.

Me temo que no voy a tener más remedio que hacerlo diario en vez de random algo así como el artículo del día, pero es ya es musho pa mí, así me iré al hotscripts a ver si veo algo

Gracias
__________________
:ojotes: t0m|ta - IHQ :ojotes:
No tengo palabras
Instrucciones de andar por casa
  #6 (permalink)  
Antiguo 03/02/2003, 08:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En el manual de Mysql .. dicen q rand() (de Mysql) no es muy aleatorio ..

Si quieres controlar mejor esa "aleatoriedad" . usa PHP para generar es "ID" de tu noticia a mostrar ..

usa sdran() .. y rand() (aunque dice php.net q a partir de php 4.2 no es necesario usar sdran() ...)

Prueba algo tipo ... (ajusta tus rangos segun el nº de registros max. de tu consulta .. )

Código PHP:
<?
srand
((double)microtime()*1000000);
$seed rand(1000000,9999999);
srand((double)microtime()*$seed);
$yadda rand (1,100);
?>
Código extraido de los comentarios de los usuarios de:
http://www.php.net/manual/en/function.srand.php

Un saludo,
  #7 (permalink)  
Antiguo 03/02/2003, 09:06
Avatar de t0m|ta  
Fecha de Ingreso: julio-2002
Ubicación: Madrid
Mensajes: 369
Antigüedad: 21 años, 8 meses
Puntos: 3
Eso tiene muy buena pinta, esta noche a ver si tengo un ratillo y me pongo a hacer probatinas.

A este paso seguro que acabo aprendiendo php y todo

Muchas gracias
__________________
:ojotes: t0m|ta - IHQ :ojotes:
No tengo palabras
Instrucciones de andar por casa
  #8 (permalink)  
Antiguo 03/02/2003, 09:24
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 22 años, 8 meses
Puntos: 9
Código PHP:
srand((double)microtime()*1000000);
$seed rand(1000000,9999999);
srand((double)microtime()*$seed);
$yadda rand (1,100);


$bdsql "SELECT 
topic_id,
topic_title,
topic_time,
topic_views, 
username, 
forum_id 

FROM manual_topics, phpbb_users 

WHERE forum_id = 28 AND user_id = topic_poster  

ORDER BY $yadda LIMIT 0, 1"

Mejor, ¿no?
  #9 (permalink)  
Antiguo 03/02/2003, 15:11
Avatar de t0m|ta  
Fecha de Ingreso: julio-2002
Ubicación: Madrid
Mensajes: 369
Antigüedad: 21 años, 8 meses
Puntos: 3
Gracias

Tengo que estudiarme bien como funciona esto, para mi no es evidente :P

El problema que tengo es que los mensajes no tienen un id consecutivo, y no sé si me servirá o no, pero para saberlo tengo que estudiar como rula este código

__________________
:ojotes: t0m|ta - IHQ :ojotes:
No tengo palabras
Instrucciones de andar por casa
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 01:27.