Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Bases de Datos General (http://www.forosdelweb.com/f21/)
-   -   ayuda con arrays y otros códigos para consulta a base de datos (http://www.forosdelweb.com/f21/ayuda-con-arrays-otros-codigos-para-consulta-base-datos-599331/)

arielcasanova 23/06/2008 13:23

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

GatorV 23/06/2008 14:47

Respuesta: ayuda con arrays y otros códigos para consulta a base de datos
 
Tema trasladado a Bases de Datos.

jurena 24/06/2008 11:49

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...

arielcasanova 24/06/2008 15:54

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!

jurena 24/06/2008 16:13

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.

arielcasanova 24/06/2008 16:16

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,

jurena 24/06/2008 16:33

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.

arielcasanova 25/06/2008 06:30

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?


La zona horaria es GMT -6. Ahora son las 22:33.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.