Foros del Web » Programando para Internet » PHP »

Resultado aleatorio por prioridades MYSQL y PHP

Estas en el tema de Resultado aleatorio por prioridades MYSQL y PHP en el foro de PHP en Foros del Web. ¿Como puedo hacer esto? id| Votos | Titulo 1 | 45 | Algo 2 | 12 | Algo 3 | 14 | Algo 4 | ...
  #1 (permalink)  
Antiguo 16/10/2009, 09:14
Avatar de Animeonx  
Fecha de Ingreso: agosto-2009
Ubicación: Debajo de tu Cama
Mensajes: 56
Antigüedad: 14 años, 8 meses
Puntos: 3
Resultado aleatorio por prioridades MYSQL y PHP

¿Como puedo hacer esto?

id| Votos | Titulo
1 | 45 | Algo
2 | 12 | Algo
3 | 14 | Algo
4 | 10 | Algo
5 | 98 | Algo
6 | 12 | Algo
7 | 16 | Algo
8 | 34 | Algo


Quiero que aparezca una fila aeatoriamentel, pero que las filas que tengan mas votos tengan mas posibilidades de aparecer.

id| Votos | Titulo
1 | 45 | Algo
5 | 98 | Algo
8 | 34 | Algo


<- Estos campos tienen mas posibilidades de aparecer. Usando MYSQL y PHP.
Espero y me puedan ayudar.

Última edición por Animeonx; 16/10/2009 a las 10:03
  #2 (permalink)  
Antiguo 16/10/2009, 09:43
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Resultado aleatorio por prioridades MYSQL y PHP

Puedes hacerlo de esta forma
Código mysql:
Ver original 
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 16/10/2009, 13:01
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 2 meses
Puntos: 535
Respuesta: Resultado aleatorio por prioridades MYSQL y PHP

Se me ocurre que generes un array que contenga tantos elementos como votos tenga cada registro y luego obtengas de él un elemento aleatoriamente. Así, para el ejemplo que pusiste, vas a tener un array formado por 241 elementos. Demás está decir que el valor de cada elemento del array es el identificador del registro.
__________________
...___...
  #4 (permalink)  
Antiguo 16/10/2009, 17:43
Avatar de Animeonx  
Fecha de Ingreso: agosto-2009
Ubicación: Debajo de tu Cama
Mensajes: 56
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: Resultado aleatorio por prioridades MYSQL y PHP

Um, no entiendo.

Código PHP:
array ('Votos' => 'algo',
Votos' => 'algo',
Votos' 
=> 'algo',
Votos' => 'algo',
Votos' 
=> 'algo'
¿Uso una especia de rand dentro de la matriz?
Pero si es asi, ¿no seria mas facil hacerlo como lo expuso abimaelrc?

Código PHP:
$res $sql->query('SELECT * FROM tabla ORDER BY RAND()');
$res->fetch_array(MYSQL_ASSOC); 
<- Esto me devolvería un array.

¿Pero entonces como filtro los resultados para que los que tengas mas votos tengan mas probabilidades de aparecer?

A mi en primera instancia se me había ocurrido utilizar una especie de calculo de promedio, pero creo que es inaplicable a este caso.

Última edición por Animeonx; 16/10/2009 a las 17:52
  #5 (permalink)  
Antiguo 16/10/2009, 17:55
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Resultado aleatorio por prioridades MYSQL y PHP

Leete alguito
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #6 (permalink)  
Antiguo 16/10/2009, 18:01
Avatar de Animeonx  
Fecha de Ingreso: agosto-2009
Ubicación: Debajo de tu Cama
Mensajes: 56
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: Resultado aleatorio por prioridades MYSQL y PHP

Se ve interesante, pero entonces ahora el problema seria la ecuación... jaja, no soy muy bueno en matemáticas.

Me voy a pensar una.
  #7 (permalink)  
Antiguo 16/10/2009, 23:37
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 2 meses
Puntos: 535
Respuesta: Resultado aleatorio por prioridades MYSQL y PHP

Código:
id | cupones | nombre
 1 |       3 | Montoto
 2 |       2 | Sultano
 3 |       1 | Cadorna
A ver, mi idea fue la siguiente: Supongamos (ver tabla anterior) que Montoto pone 3 cupones en una bolsa. Sultano pone 2 y Cadorna sólo 1:

Código:
$array = array(1,1,1,2,2,3);
Esos 6 cupones se mezclan en la bolsa y, escribano mediante, se saca un cupón (array_rand). Bingo!!!

Cita:
Iniciado por loncho_rojas
Leete alguito
Che... ahí falta algo... no sé... ¿una fórmula matemática/estadística a la cuál aplicar las funciones de agregado, agrupamiento o como sea que se llamen? De lo contrario, ese léete alguito no aporta mucho. Y si hay algo que no estoy viendo, por favor instruíme!
__________________
...___...
  #8 (permalink)  
Antiguo 17/10/2009, 02:47
Avatar de Animeonx  
Fecha de Ingreso: agosto-2009
Ubicación: Debajo de tu Cama
Mensajes: 56
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: Resultado aleatorio por prioridades MYSQL y PHP

Muchas gracias AlZuwaga ese ya me es un escalon mas estable para partir, pero aun continuo con el problema de que, por ejemplo.

Hago una serie de consultas, supongamos unas mil.

Pero de esas mil.
Código:
1 |       3 | Montoto
que tiene mas 'cupones' debe salir 500 veces.
y sultano
Código:
2 |       2 | Sultano
que tiene un poco menos de cupones debe salir unas 400 veces.

y finalmente
Código:
 3 |       1 | Cadorna
que es el que tiene menos cupones solo saldría 100 veces.

... puede que ya lo hayas explicado, pero soy algo lento para estas cosas.
  #9 (permalink)  
Antiguo 17/10/2009, 09:01
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: Resultado aleatorio por prioridades MYSQL y PHP

La idea de AlZuwaga (si la entendi bien), es que con los resultados de tu consulta hagas otro array que tendra todos los resultados, donde cada elemento se repetira tantas veces como cupones (o votos segun tu post original) tenga segun la consulta. Y de este array nuevo obtengas un numero aleatoriamente (y como los que tengan mas votos van a estar repetidos mas veces, seria mas probable que 'salgan')
  #10 (permalink)  
Antiguo 17/10/2009, 09:19
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Resultado aleatorio por prioridades MYSQL y PHP

Cita:
POR AlZuwaga:
Che... ahí falta algo... no sé... ¿una fórmula matemática/estadística a la cuál aplicar las funciones de agregado, agrupamiento o como sea que se llamen? De lo contrario, ese léete alguito no aporta mucho. Y si hay algo que no estoy viendo, por favor instruíme!
Solo respondi esto, pues queria sacar el valor mayor dentro de alguna tabla, o promedio:
Cita:
POR Animeonx:
¿Pero entonces como filtro los resultados para que los que tengas mas votos tengan mas probabilidades de aparecer?
Lo de calculos matematicos se los dejo a él... mil veces hice prengutas que necesitaba orientacion precisa, y me respondían cosas como: "Prueba traer unos array"... "crea una sentencia SQL que te los filtre", e implemente esas minimas orientaciones para resolver mis problemas, y tampoco era muy bueno para las matematicas y los códigos

En sintesis.. con las funciones que muestran en esa Web te podrías inventar alguito, y ver si es aplicable con otro algoritmo.. no prentendi resolverle todos los problemas, solo aportar la mitad de un grano de arena..

Y respondiendo a lo ultimo, no prentendo instruírte porque se que sabes mucho. Ademas no soy un astro programador y no juego competencia... si crees que no es aporte alguno, como moderador puedes removerlo sin problema.

Ahora bien, existen formas y formas de aportar, puedes pasarle en Pseudocodigo todo, puedes pasar script hechos, puedes crear otro medio, pero al final tampoco viene mal un poco de investigacion. Como dije, era solo la mitad de un grano de arena.
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
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 10:35.