Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

ayuda con arrays y otros códigos para consulta a base de datos

Estas en el tema de ayuda con arrays y otros códigos para consulta a base de datos en el foro de Bases de Datos General en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 23/06/2008, 13:23
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 19 años, 6 meses
Puntos: 1
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
  #2 (permalink)  
Antiguo 23/06/2008, 14:47
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: ayuda con arrays y otros códigos para consulta a base de datos

Tema trasladado a Bases de Datos.
  #3 (permalink)  
Antiguo 24/06/2008, 11:49
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
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...
  #4 (permalink)  
Antiguo 24/06/2008, 15:54
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 19 años, 6 meses
Puntos: 1
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
  #5 (permalink)  
Antiguo 24/06/2008, 16:13
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
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.
  #6 (permalink)  
Antiguo 24/06/2008, 16:16
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 19 años, 6 meses
Puntos: 1
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
  #7 (permalink)  
Antiguo 24/06/2008, 16:33
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
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.
  #8 (permalink)  
Antiguo 25/06/2008, 06:30
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 19 años, 6 meses
Puntos: 1
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
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:11.