Comunidad de diseño web y desarrollo en internet online

Rangos de números en base de datos

Citar            
MensajeEscrito el 08 May 2013 11:44 pm
Estoy desarrollando un sistema de inscripción de participantes a un evento. Los campos de la base de datos serán los típicos: Nombre, Apellido, Email, etc.

El evento tiene varias categorías, por ejemplo: Principiante, Amateur, Experto, etc. Necesito que cada participante, al inscribirse, obtenga su número de participante que será por rango según categorías. Ejemplo: Principiantes del 001 a 100; Amateurs del 101 al 200, Expertos de 201 a 300.

La salida al llenar el formulario de inscripción sería algo tipo:
Nombre: Fulano
Categoría: Principiante.
Su número de participantes es: 024.

Y así sucesivamente con cada nuevo participante.

¿Cómo logro decirle a MySQL, con PHP, que atribuya un nuevo número a cada participante según la categoría elegida, es decir, dentro de esos rangos?

Gracias.

Por elmaluf

Claber

243 de clabLevel

2 tutoriales

 

chrome
Citar            
MensajeEscrito el 09 May 2013 12:16 pm
¿Los números se asignan por orden de llegada a la inscripción o por otro criterio?.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 09 May 2013 01:01 pm
DriverOp, es como dices. El primer usuario de la Principiantes, tendrá el número 001, el segundo el 002, etc., hasta el 100. El primero de la categoría Amateur tendrá el 101, el segundo el 102, hasta el 200.

Por elmaluf

Claber

243 de clabLevel

2 tutoriales

 

chrome
Citar            
MensajeEscrito el 09 May 2013 06:21 pm
Agrega un campo más con la fecha y hora del momento de la inscripción (campo tipo DATETIME en SQL).

Luego lo que debes hacer es:

Código PHP :

$sql = "SELECT `numero_participante` FROM `registraciones` WHERE `categoria`  = 1 ORDER BY `fechahora_inscripcion` DESC LIMIT 1";


Al ejecutar esa consulta te devolverá el último número de participante, según la categoría que corresponda (en el ejemplo la 1) o nada en caso que nadie se haya inscripto en esa categoría aún.

Lo que resta es sumar 1 al número de participante (o poner el primer número de la categoría en caso que no haya inscriptos aún). Y ese número será el número del próximo participante.

¿Se entiende?.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 09 May 2013 07:46 pm
Se entiende, pero ¿cómo le digo a MySQL que el primer participante debe ser el 101 y no el 001 en la segunda categoría, o 201 en la tercera?

Por elmaluf

Claber

243 de clabLevel

2 tutoriales

 

chrome
Citar            
MensajeEscrito el 10 May 2013 12:20 pm
No se lo dices. Lo haces tú desde PHP.


Registraciones

Código :

fechahora                     categoria numero_participante
2013-05-06 14:45:32                1                                   1
2013-05-06 14:47:02                1                                   2
2013-05-06 14:49:02                1                                   3
2013-05-06 14:50:17                2                               101  


Dada esa tabla al ejecutarle la consulta ya mostrada más arriba resultará en que si estás consultando por la categoría 1, te devolverá un 3, si estás consultando la categoría 2, devolverá un 101 y si consultas la 3 devolverá nada. En este último caso tú sabes cuál es el primer número para la categoría 3: el 201.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 17 May 2013 10:13 pm
Amigo, lo que necesito es que el número de participante quede grabado en la base de datos y que cuando alguien se inscriba mediante un formulario, la interface le devuelva, por ejemplo: "Su número de participante es 902". En el caso de que me pidan un sistema de logueo para que los participantes recuperen sus datos, ese número debería mantenerse.

Por elmaluf

Claber

243 de clabLevel

2 tutoriales

 

chrome
Citar            
MensajeEscrito el 17 May 2013 11:34 pm
Ya he explicado cómo podrías hacer eso.

Por DriverOp

Claber

2510 de clabLevel



 

opera

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.