PHP - Manipular array de una consulta a dos tablas

 
Vista:
Imágen de perfil de Fernando
Val: 9
Ha aumentado su posición en 14 puestos en PHP (en relación al último mes)
Gráfica de PHP

Manipular array de una consulta a dos tablas

Publicado por Fernando (3 intervenciones) el 29/09/2016 23:15:23
Buen dia jovenes! tengo un problema con armar un array o bucle de repeticion para una consulta con dos tablas, espero me entiendan! =)

Tabla 1 preguntas
Tabla 2 respuestas (con tres opciones para cada pregunta de la tabla 1, cada respuesta tiene un valor x)

En la tabla 1 para cada pregunta use un comun denominador que luego quiero sustituir por un select y alli crear el ciclo de repeticion de las repuestas por cada pregunta.

Hasta ahora lo tengo asi

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//Hago la consulta a ambas tablas (no se si es la mejor opcion)
$query_rec = $db->get_results("SELECT DISTINCT t1.idQuestion, t1.Question, t2.idAns, t2.Qans, t2.Ans, t2.value FROM placementQ as t1
INNER JOIN placementAns as t2 ON t1.idQuestion=t2.Qans GROUP BY t1.idQuestion");
foreach ($query_rec as $ky) {
 
//Reemplazo mi comun denominador opr el select
$cadena=$ky->Question;
 
$cadena_cambiada = str_replace("_____","<option value=' '>".$ky->Ans."</value> ",$cadena);
 
echo $cadena_cambiada."<br>";
 
}
 
placementQ (tabla1) -- Question es la pregunta que debe ser resuelta
idQuestion,Question
 
placementAns(tabla2) -- Ans es la respuesta posible a una respuesta y value el puntaje de esta
idAns,Ans,Value
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Manipular array de una consulta a dos tablas

Publicado por kip (877 intervenciones) el 30/09/2016 02:31:54
Hola, cual es el error que te muestra el codigo, a simple vista lo veo bien.

Por cierto, esta parte de aca que escribiste placementQ (tabla1) es codigo?

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Fernando
Val: 9
Ha aumentado su posición en 14 puestos en PHP (en relación al último mes)
Gráfica de PHP

Manipular array de una consulta a dos tablas

Publicado por Fernando (3 intervenciones) el 30/09/2016 19:04:42
Hola Kip... no me da error, lo que pasa esq me imprime tres veces la misma pregunta, si esta tiene tres respuestas posibles. Osea me imprime pregunta 1 respuesta 1 pregunta 1 respuesta 2, hay forma de manipularlo para que me imprima solo 1 pregunta y repita las tres respuestas en el option?

El dato placementQ es la tabla no es codigo, es para dar una idea de como es la tabla... gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Manipular array de una consulta a dos tablas

Publicado por kip (877 intervenciones) el 01/10/2016 01:47:11
Entiendo, lo que yo optaria por hacer en tu caso, dejando el codigo tal como esta ahora, es esto:

1
2
3
4
5
6
7
8
9
10
11
<?php
//Hago la consulta a ambas tablas (no se si es la mejor opcion)
$query_rec = $db->get_results("SELECT DISTINCT t1.idQuestion, t1.Question, t2.idAns, t2.Qans, t2.Ans, t2.value FROM placementQ as t1
INNER JOIN placementAns as t2 ON t1.idQuestion=t2.Qans GROUP BY t1.idQuestion");
$cadena = '';
foreach ($query_rec as $ky) {
    if ($cadena != $ky->Question) echo "<strong>{$ky->Question}</strong>";
    echo "<option value='{$ky->Ans}'>{$ky->Ans}</value>";
    $cadena = $ky->Question;
}
?>

Otra opcion es hacer dos consultas por separado.

Pruebalo y cuentanos si se ajusta a lo que necesitas.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar