Retroceder   Foros del Web > Programación para sitios web > Bases de Datos

Respuesta
 
Herramientas Desplegado
Antiguo 23-jun-2008, 13:23   #1 (permalink)
arielcasanova ha deshabilitado el karma
 
Avatar de arielcasanova
 
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 160
ayuda con arrays y otros códigos para consulta a base de datos

Tengo una encuesta, que puede tener varias preguntas y cada pregunta puede tener varias respuestas. Necesito que de acuerdo a un numero de id, el usuario visualice el grupo de preguntas y respuestas, y pueda responder a través de un formulario.

Resulta que realizo esta consulta:

select p.pregunta as pregunta, r.respuesta as respuesta
from encuestas_modelospreguntas p
inner join
encuestas_modelosrespuestas r
on p.id=r.id_pregunta
where p.id_modelo='$id'

y me devuelve, por cada respuesta de cada pregunta, el par de pregunta y respuesta.
o sea:

pregunta: playa o montaña?
respuestas:
a) playa
b) montaña

la consulta me devuelte:

playa o montaña? playa
playa o montaña? montaña

No sé de qué manera realizar un array, con un while supongo, que por cada pregunta me dé todas las respuestas, y luego pase a la siguiente pregunta, y así.

¿alquien quiere o puede ayudarme?

gracias
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar
arielcasanova está desconectado   Responder Citando
Antiguo 23-jun-2008, 14:47   #2 (permalink)
Moderador
GatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradable
 
Avatar de GatorV
 
Fecha de Ingreso: mayo-2006
Ubicación: Queretaro, Mexico
Mensajes: 12.594
Respuesta: ayuda con arrays y otros códigos para consulta a base de datos

Tema trasladado a Bases de Datos.
__________________
Blog Web
GatorV está desconectado   Responder Citando
Antiguo 24-jun-2008, 11:49   #3 (permalink)
jurena tiene algunos puntos positivos de karma
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 589
Respuesta: ayuda con arrays y otros códigos para consulta a base de datos

La mayor parte de las soluciones pasan, a mi juicio, por programación:
1) mediante if que controle una variable $acumulador donde cargas en el bucle el valor de la pregunta y que al ser distinta de la anterior hace que el bucle sólo muestre la respuesta:
ejemplo
$acumulador = "";
mostrar hasta el final todos los datos recogidos en la consulta
if contenidopregunta <> $acumulador
{muestra contenidopregunta / muestracontenidorespuesta / $acumulador = contenidopregunta}
else {muestra contenidorespuesta}
y eso hasta el final
2) cargando los datos en array y trabajando sobre ellos, haciendo algo parecido con un acumulador y recorriendo el array...
3) haciendo primero una selección de los datos de pregunta, y luego al iterar con un while dentro de otro while lanzar otra consulta que busque según el id de la pregunta las respuestas y las muestre.
4) hacer una consulta con group_concat de respuestas y agrupando por pregunta, y luego, mediante un explode en programación, cargar las respuestas en un array y mostrarlas.
Creo que existe alguna más, pero debes decidir por alguna y pedir ayuda en el foro correspondiente...
jurena está desconectado   Responder Citando
Antiguo 24-jun-2008, 15:54   #4 (permalink)
arielcasanova ha deshabilitado el karma
 
Avatar de arielcasanova
 
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 160
Respuesta: ayuda con arrays y otros códigos para consulta a base de datos

Jurena: estaba segurísimo de que no podía anidar una consulta dentro de otra con un while... no sé por qué.
finalmente, hice eso, y el resultado fue:

Código PHP:
$sql="select * from encuestas_modelospreguntas";
$result=mysql_query($sql);
while(
$preg mysql_fetch_array($result))
{
$pregunta=$preg['pregunta'];
    echo 
"<p>".$preg['pregunta']."</p>
    <select name=\""
.$row['pregunta']."\">
<option value=\"\" selected=\"selected\">Seleccione</option>"
;
    
$sql2="select * from encuestas_modelosrespuestas where id_pregunta=".$preg['id'];
    
$result2=mysql_query($sql2);
    while(
$resp mysql_fetch_array($result2))
    {
        echo 
"<option value=\"$pregunta:".$resp['respuesta']."\" selected=\"selected\">".$resp['respuesta']."</option>             
"
;
    }

echo 
"</select>
"
;

Muchas gracias!
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar
arielcasanova está desconectado   Responder Citando
Antiguo 24-jun-2008, 16:13   #5 (permalink)
jurena tiene algunos puntos positivos de karma
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 589
Respuesta: ayuda con arrays y otros códigos para consulta a base de datos

Me alegro de que te funcionara la solución 3, Ariel, pero ese código, con razón, nos lo van a quitar los moderadores de este foro: recuerda que este no es el sitio.
jurena está desconectado   Responder Citando
Antiguo 24-jun-2008, 16:16   #6 (permalink)
arielcasanova ha deshabilitado el karma
 
Avatar de arielcasanova
 
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 160
Respuesta: ayuda con arrays y otros códigos para consulta a base de datos

es que yo iniciè esto en el foro de php! me lo mudó el moderador GatorV. No sé cómo se muda todo el tema.
Esta misma solución estoy aplicando para la otra consulta que te hice días atrás.
Gracias de nuevo Jurena.
un saludo,
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar
arielcasanova está desconectado   Responder Citando
Antiguo 24-jun-2008, 16:33   #7 (permalink)
jurena tiene algunos puntos positivos de karma
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 589
Respuesta: ayuda con arrays y otros códigos para consulta a base de datos

Como verás, viene a ser lo que te dijo Quimfv en el otro post del que me hablas. Seguramente alguna de sus propuestas sea más eficiente. Pon a prueba alguna de ellas, pues es cierto que esta requiere más consultas a la base: una para las preguntas y una por cada pregunta.
Por lo demás, es cierto que el post vino de otro foro, pero aún así conviene ajustarse a las normas y no usar código de programación en este.
Enhorabuena, Ariel.
jurena está desconectado   Responder Citando
Antiguo 25-jun-2008, 06:30   #8 (permalink)
arielcasanova ha deshabilitado el karma
 
Avatar de arielcasanova
 
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 160
Respuesta: ayuda con arrays y otros códigos para consulta a base de datos

Entendido. ¿Tenemos alguna forma de mudar todo este código de php que puse acá, al foro correspondiente? ¿O eso corresponde a los moderadores?
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar
arielcasanova está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 20:23.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93