Foros del Web » Programando para Internet » PHP »

consulta con bucle anidado

Estas en el tema de consulta con bucle anidado en el foro de PHP en Foros del Web. Hola, tengo el siguiente problema Tengo 10 usuarios de una página web ordenados por los puntos que han obtenido por su participación en la web, ...
  #1 (permalink)  
Antiguo 21/02/2010, 15:03
bombadil2100
Invitado
 
Mensajes: n/a
Puntos:
consulta con bucle anidado

Hola, tengo el siguiente problema

Tengo 10 usuarios de una página web ordenados por los puntos que han obtenido por su participación en la web, y tengo 10 regalos a repartir entre ellos en función de sus puntos.

He realizado un formulario web para que recoja las preferencias de cada usuario hacia los regalos:

usuario:
regalo 1:
regalo 2:
...
regalo 10:

con un desplegable para que cada uno escoja aquel regalo que prefiere.

Lo almaceno en una base de datos de forma que queda:

puesto regalo orden
1 sudadera 1
2 sudadera 1
2 camiseta 2
3 camiseta 1
3 boligrafo 2
3 sudadera 3
...

Cada usuario tiene que escoger tantos regalos como puestos en los que haya quedado. Así el usuario que ocupe el tercer puesto tendrá que escoger 3 regalos y el que ocupe el puesto 9 deberá escoger 9 regalos

Hasta aquí todo bien, ahora viene el problema. ¿Qué consulta sql puedo usar para sacar que regalo se lleva cada usuario?

He probado un bucle anidado del tipo:

for($j=1;$j<=10;$j++) {
for($i=1;$i<=10;$i++) {

$sql="SELECT * FROM orden where puesto='".$j."' and orden='".$i."' ORDER BY puesto ASC";

} }

pero no me funciona. Podéis aconsejarme algo? Gracias
  #2 (permalink)  
Antiguo 21/02/2010, 21:38
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 1 mes
Puntos: 260
Sonrisa Respuesta: consulta con bucle anidado

Hola,

Posiblemente ...

Código SQL:
Ver original
  1. SELECT puesto, regalo, orden
  2. FROM (SELECT * FROM datos ORDER BY regalo ASC, puesto ASC) datos
  3. GROUP BY regalo
  4. ORDER BY puesto
Debería devolver algo así:
Código SQL:
Ver original
  1. 1, 'sudadera', 1
  2. 2, 'camiseta', 2
  3. 3, 'boligrafo', 2
Saludos,
  #3 (permalink)  
Antiguo 22/02/2010, 15:36
bombadil2100
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: consulta con bucle anidado

gracias hackmanC.

Al final lo he hecho mediante un arrays y bucles, no creo que se pueda hacer directamente mediante una consulta o por lo menos a mi no me ha salido.


Por ejemplo en este caso:

puesto regalo orden
6 sudadera 1
6 camisa 2
6 camiseta 3
...
8 sudadera 1
8 camisa 2
8 camiseta 3
...
La consulta que tu propones me devuelve:
6 sudadera 1
6 camisa 2
6 camiseta 3

y me debería devolver:
6 sudadera 1
8 camisa 2
  #4 (permalink)  
Antiguo 22/02/2010, 18:23
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 1 mes
Puntos: 260
Sonrisa Respuesta: consulta con bucle anidado

Hola,

Cita:
Iniciado por bombadil2100 Ver Mensaje
... no creo que se pueda hacer directamente mediante una consulta o por lo menos a mi no me ha salido.
Tienes toda la razón, en ese caso no es posible hacerlo con una sola consulta, creo que no había comprendido bien la pregunta.

Saludos,

Etiquetas: bucle, anidados
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 20:06.