没有人知道如何从表连接中旋转结果表吗?
更好地解释
最后这是我的代码:
<div id="encuesta">
<?php
$y = 0;
$Query1 = $Conexion->query("SELECT ID_Encuesta,Encuesta_Nombre FROM encuestas");
while($row1 = $Query1->fetch_assoc())
{
$y++;
$x = 0;
?>
<h4><?php echo $y; ?> - <?php echo $row1['Encuesta_Nombre']; ?></h4>
<table class="table table-bordered" id="table<?php echo $row1["ID_Encuesta"]; ?>">
<tbody>
<?php
$Query2 = $Conexion->query("SELECT ID_Pregunta,Pregunta_Nombre,Pregunta_Pregunta,Pregunta_Tipo FROM preguntas WHERE pregunta_encuesta = '$row1[ID_Encuesta]'");
while($row2 = $Query2->fetch_assoc())
{
echo '<tr>';
echo '<td class="bg-primary" style="color:white;">'.$row2['Pregunta_Nombre'].' </td>';
$Query3 = $Conexion->query("
SELECT
(
CASE
WHEN A.Pregunta_Tipo = '1' THEN C.Etiqueta_Numero
WHEN A.Pregunta_Tipo = '2' THEN B.Respuesta_Respuesta
WHEN A.Pregunta_Tipo = '3' THEN B.Respuesta_Respuesta
WHEN A.Pregunta_Tipo = '4' THEN C.Etiqueta_Numero
ELSE 1
END) AS Respuesta
FROM preguntas AS A
JOIN respuestas AS B
ON A.ID_Pregunta = B.Respuesta_Pregunta
LEFT JOIN etiquetas AS C
ON B.Respuesta_Respuesta = C.ID_Etiqueta
WHERE B.Respuesta_Pregunta = '$row2[ID_Pregunta]'
");
while($row3 = $Query3->fetch_assoc())
{
echo '<td>'.$row3['Respuesta'].'</td>';
}
echo '</tr>';
}
?>
</tbody>
</table>
<?php
}
?>
好吧,为了解释我的代码,第一个$Query1
是对encuestas
表的咨询,以获取thead
以及与$Query2
的关系,
$Query3
以获取我需要在tbody
上显示的值。
这是我的数据库SQL Fidle
答案 0 :(得分:0)
您有两个选择:
您可以更改查询
或者您可以更改您的PHP代码。
while($row3 = $Query3->fetch_assoc())
{
echo '<td>'.$row3['Respuesta'].'</td>';
}
要更改查询,我需要查看数据库的外观等等。
对于php代码
您可以将代码推送到数组列表中。 然后将arraylist推入表格。
我建议您更改查询。
答案 1 :(得分:0)
您需要使用结果创建一个数组并调用此方法,它将转置数组,然后再次打印表格,请查看此示例https://3v4l.org/v9VsV
function transposeArray($array)
{
$i = 0;
$transpose = [];
while ($columns = array_column($array, $i++))
{
$transpose[] = $columns;
}
return $transpose;
}