Foros del Web » Programando para Internet » PHP »

fila aleatoria?

Estas en el tema de fila aleatoria? en el foro de PHP en Foros del Web. Hola, tengo un script de noticias, i en un lugar de la web me gustaria poner una aleatoria. el codigo actual para mostrarlas es este: ...
  #1 (permalink)  
Antiguo 15/05/2003, 13:58
 
Fecha de Ingreso: febrero-2003
Mensajes: 54
Antigüedad: 21 años, 2 meses
Puntos: 0
fila aleatoria?

Hola, tengo un script de noticias, i en un lugar de la web me gustaria poner una aleatoria. el codigo actual para mostrarlas es este:

Código PHP:

<? 

$colorCabecera
="#FFC184"
$colorNoticia="#FFEEDD";

include 
"conexion.php"

$a=mysql_query("select * from noticias WHERE `id` = '$noticia' order by id desc limit 1"); 

//AQUI, como hago el rand???

while ($b=mysql_fetch_row($a)) { 
echo 
"<br><table width=\"275\" border=0 cellspacing=1 cellpadding=2 style=\"font-size:11px;font-family:tahoma;bordeR:1px solid black\"><tbody> 
<tr style=\"background:$colorCabecera\"><td>• $b[1]</td><td style=\"width:10%;text-align:center\">$b[2]</td></tr><tr style=\"background:$colorNoticia\"><td colspan=2>$b[3]</td></tr></tbody></table>"



?><br>
aqui como veis le digo yo el total de noticias a mostrar, que sería uno para la aleatoria, pero entonces como hago un rand entre todas las ids para que me muestre una aleatoria?? podria hacer un rand entre uno i diez por ejemplo, pero lo que yo quisiera es que me cogiera el el valor maximo (osea, la id mas grande de la base de datos), i que me hiciera el rand con esa como máxima

muchas gracias!
  #2 (permalink)  
Antiguo 15/05/2003, 14:30
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Usa:
Código PHP:
$a=mysql_query("select * from noticias order by RAND() limit 1"); 
Esto lo que hace es crear una columna ficticia que asigna un valor aleatorio a cada registro y lo ordena por esa columna.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 15/05/2003, 14:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Usa RAND() de Msyql .. en tu consulta:

<editado> .. Usalo como te comenta josemi .. xDD </editado>

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 15/05/2003 a las 14:33
  #4 (permalink)  
Antiguo 15/05/2003, 15:11
 
Fecha de Ingreso: febrero-2003
Mensajes: 54
Antigüedad: 21 años, 2 meses
Puntos: 0
josemi, muchas gracias, pero tal i como lo pones tu, siempre sale el mismo, el primero que hay, id 1.

Alguna sugerencia? Gracuas
  #5 (permalink)  
Antiguo 15/05/2003, 15:15
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
¿Cuantos registros tienes? Si no son muchos, la secuencia no suele ser muy aleatoria. Para pocos registros (menos de diez) he tenido que usar "order by RAND(),RAND() desc,RAND()" para aumentar la aletoriedad. El un problema de la aletoriedad en los ordenadores. Tampoco se ahora mismo que usa MySQL como semilla.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 17:42.