Ver Mensaje Individual
  #6 (permalink)  
Antiguo 02/08/2003, 23:25
Avatar de Manoloweb
Manoloweb
 
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 2 meses
Puntos: 5
Otra buena idea sería que buscaras la manera de que ese random fuera lo mas "espaciado" posible, es decir, que limites al máximo la cantidad de repeticiones "cercanas"...

Yo he usado la funcion rand() tanto de PHP como de MySQL, y realmente, sin saber como trabajan internamente esas funciones, creo que tienen algunas carencias... por ejemplo, en un listado de 40 "comentarios", obtuve 5 veces el mismo registro en tan solo 15 intentos...

Como lo he solucionado??

Bueno, tal vez no sea un random real ni mucho menos, pero me ha servido para que no me salga ni un solo repetido en 40 intentos...

Código PHP:
$qr=mysql_query("select ID,comentario from comentarios order by vistas,ID limit 1");
$rs=mysql_fetch_array($qr);
$comentario=$rs["comentario"];
$comID=$rs["ID"];
mysql_query("update comentarios set vistas=vistas+1 where ID=$comID"); 
Lo unico de lo que debes tener cuidado es que cuando agregas un nuevo "comentario" a la BD, debes poner en el campo "vistas" el mismo valor que el maximo existente, para que así lo metas "al final de la fila".

[edicion]
Quizas a alguien se le ocurra que el numero de "vistas" pudiera crecer estratosfericamente y sin control. Y tendría razón. Pero una solucion muy sencilla es de vez en cuando hacer un...

update comentarios set vistas=0

Lo simple y llano de la solución lo permite...
[/edicion]

GOT IT???

Saludos!
__________________
Manoloweb

Última edición por Manoloweb; 02/08/2003 a las 23:39