Escoger preguntas de forma aleatoria

edited septiembre 2007 in SQL y RDBMS
Hola amigos, resulta y pasa que estoy desarrollando un sistema de informacion con kumbia y mysql, que realiza cuestionarios a traves de simulacros, la pregunta mia, es:

1- Si yo tengo Areas(Ej: Ing de Software), y las areas tienen componentes(Desarrollo de software), y en cada componente hay un numero de preguntas con sus posibles respuestas y la clave, mi pregunta es: Cómo a traves de kumbia y con una consulta SQL puedo yo permitir en la vista que escojan la hora de inicio, de fin, nombre del simulacro, area, componente, y numero de preguntas con los # que existen imprimiendolo al lado y poniendole un checkbox a esas preguntas y estableciendo cuantas voy a escoger del total de preguntas que existen en ese componente?

2. Esto lo podria hacer con el ejemplo que realizo nuestro compañero deivinson de combos anidados ajax, pero en aplication controller?, porque el lo realizo con standardform.

Saludos

PD: Espero respuestas, y weno tambien estuve investigando acerca del metodo de mysql RAND(); pero no doy aun.

Comentarios

  • Hola,

    yo cuando uso aleatorios, lo combino conjuntamente con LIMIT 1. Así me aseguro de un random unico, sino te devuelve un registro bastante grande.
  • es que precisamente se trata de eso, que cuando el usuario digite en la casillita de al lado el numero de preguntas a escoger del total que hay, se le genere aleatoriamente.

    Me hago entender?

    Saludos!
  • es que precisamente se trata de eso, que cuando el usuario digite en la casillita de al lado el numero de preguntas a escoger del total que hay, se le genere aleatoriamente.

    Me hago entender?

    Saludos!

    1- Si. Podrías colocar un boton al lado del texfield, para que luego de que el usuario digite el numero de preguntas a generar, deba presionar el boton. Me parece que la solicitud quedaria muy bien "via ajax".

    2- Para obtener un determinado numero de registros aleatorios de una tabla puedes emplear la funcion RAND(), ejemplo:
    $select = "SELECT * FROM Clientes ORDER BY RAND() LIMIT 10";
    

    Y si quieres una consulta realmente aleatoria, puedes colocar como semilla el tiempo, para ello utilizas la funcion time(), asi:
    $select = “SELECT * FROM Clientes ORDER BY RAND(” . time() . ” * ” . time() . “) LIMIT 10″;
    

    Con el parametro LIMIT especificas el numero de registros aleatorios que deseas obtener. La funcion RAND() es muy costosa, asi que hay que tener cuidado al utilizarla.
Sign In or Register to comment.