Foros del Web » Programando para Internet » PHP »

Un texto 'random'

Estas en el tema de Un texto 'random' en el foro de PHP en Foros del Web. Pues me gustaría k me dijeran como podría hacer lo siguiente [no me traten como novato porke yo +/- se de PHp MysQL] Trato de ...
  #1 (permalink)  
Antiguo 02/08/2003, 21:25
Avatar de peachman  
Fecha de Ingreso: noviembre-2002
Ubicación: Macondo
Mensajes: 423
Antigüedad: 21 años, 5 meses
Puntos: 0
Un texto 'random'

Pues me gustaría k me dijeran como podría hacer lo siguiente [no me traten como novato porke yo +/- se de PHp MysQL]


Trato de hacer un script que cargue un texto aleatorio de una base de datos algo sencillo. Pues mi idea es que debajo de cada artículo de despliegue un chiste corto o anécdota divertida [así como en la revista Selecciones, espero k a nadie le de por hacer lo mismo ]

Lo único k necesitaría sería una rchivo k llame el chiste aleatoriamente desde MySQL.


Espero k me puedan ayudar
  #2 (permalink)  
Antiguo 02/08/2003, 21:36
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 21 años, 8 meses
Puntos: 8
El select seria maso menos asi:
Código:
SELECT campo FROM tabla ORDER BY RAND() LIMIT 1
Saludos.
  #3 (permalink)  
Antiguo 02/08/2003, 21:37
Avatar de biblio  
Fecha de Ingreso: enero-2002
Ubicación: Urano
Mensajes: 577
Antigüedad: 22 años, 3 meses
Puntos: 0
Cita:
Pues me gustaría k me dijeran como podría hacer lo siguiente [no me traten como novato porke yo +/- se de PHp MysQL]

Dicen que el pescado muere por su propia boca.

select * from tu_tabla order by RAND() limit 1

Asi de sencillo.


Saludos
  #4 (permalink)  
Antiguo 02/08/2003, 22:34
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
www.mysql.com .. así de fácil .. xDDD

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 02/08/2003, 23:11
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 3 meses
Puntos: 5
Creo que voy a hacer lo mismo en mi web!!

__________________
Manoloweb
  #6 (permalink)  
Antiguo 02/08/2003, 23:25
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 3 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
  #7 (permalink)  
Antiguo 02/08/2003, 23:53
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 21 años, 8 meses
Puntos: 8
Manoloweb, no caigo!
Si hay 39 conexiones a la BD al mismo tiempo, ¿un usuario no podria ver el mismo mensaje seguido?

Explicame si me equivoco...
  #8 (permalink)  
Antiguo 02/08/2003, 23:59
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 3 meses
Puntos: 5
Asi es...

pero se requeriría exactamente de 39 usuarios simultaneos (todos dando click casi al mismo tiempo) y exactamente 40 mensajes para que eso sucediera...

Creo que las posibilidades de que eso suceda son menores que las posibilidades que te brinda el rand()... muuucho menores.

Es cuestion de evaluar todas las variantes que influyen en el comportamiento del script y entonces determinar si es una buena opción dependiendo de cada caso...

__________________
Manoloweb
  #9 (permalink)  
Antiguo 04/08/2003, 16:57
Avatar de peachman  
Fecha de Ingreso: noviembre-2002
Ubicación: Macondo
Mensajes: 423
Antigüedad: 21 años, 5 meses
Puntos: 0
Cita:
Mensaje Original por Manoloweb
Creo que voy a hacer lo mismo en mi web!!

Déjenme expresar un profundo: * *



Sin mebargo gracias por la ashuda


  #10 (permalink)  
Antiguo 04/08/2003, 17:34
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 3 meses
Puntos: 5
Je je... no es necesario que expreses profundos * *'s

En mi web yo vendo mis servicios de desarrollo... de nada me valdría poner chistes...

En todo caso, serían los del Reader's Digest quienes deberían sentirse profundamente ´s




__________________
Manoloweb
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 15:12.