我有代码显示表格水平。
我希望能像这样显示表格。
12/15/2014 || 12/16/2014
Rumah ATM ............ YA .................. || YA ..............等
</tr>
<?php
$nip= $_REQUEST["txtcar"];
include ("../connect.php");
$query1 = "SELECT ambilmk.tgl,ambilmk.nim,ambilmk.kodeMK,ambilmk.nilai,list.kom,list.id_check
FROM ambilmk
LEFT JOIN list
ON ambilmk.kodemk=list.id_check
where nim='1'
";
$hasil1 = mysql_query($query1);
$no = 1;
while ($row1 = mysql_fetch_array($hasil1))
{?>
<tr align="center">
<td><?php echo $row1["tgl"]; ?></td>
<td><?php echo $row1["kom"]; ?></td>
<td><?php echo $row1["nilai"]; ?></td>
</tr>
<?php } ?>
</table>
答案 0 :(得分:0)
在HTML-Table中你需要先编写一个ROW然后编写第二行并且你有一个ROW但想要显示在不同的行中垂直...所以你需要将行存储在变量中。
让我告诉你如何。假设你有MySQL列有3列(如你的代码),那么:
$row_1='<tr align="center">';
$row_2='<tr align="center">';
$row_3='<tr align="center">';
while ($row1 = mysql_fetch_array($hasil1))
{
$row_1.="<td>".$row1["tgl"]."</td>";
$row_2.="<td>".$row1["kom"]."</td>";
$row_3.="<td>".$row1["nilai"]."</td>";
}
echo $row_1."</tr>";
echo $row_1."</tr>";
echo $row_1."</tr>";
编辑:AS OP需要Pivot
[以上答案不正确的原因:]如果需要group by
,则上述代码无法实现(我将其留给未来的用户使用)&amp;免费的MySQL不支持PIVOT ......
和
通过静态查询,您无法执行tgl
的任何非静态/固定值。因此,您需要使用动态查询,第二个选项是创建存储过程。
在这个问题中解释了这两种方法:Pivot table in MySQL - convert to pivot table with values in varchar format
编辑2:在分析上述链接后,通过PHP完成了这个工作:
$result = mysql_query("SELECT DISTINCT tgl FROM ambilmk WHERE nim='1';");
$tgls_col="";
while($row = mysql_fetch_array($result)){
$tgls_col.=",MAX(CASE WHEN ambilmk.tgl = '".$row[0]."' THEN ambilmk.nilai END) `".$row[0]."`";
}
$query1 = "SELECT list.kom as Kom ".$tgls_col." FROM ambilmk LEFT JOIN list
ON ambilmk.kodemk=list.id_check where nim='1' GROUP BY ambilmk.tgl,list.kom;";
$hasil1 = mysql_query($query1);
$fields=mysql_fetch_fields($hasil1);
echo '<tr>';
foreach ($fields as $col) {
echo '<th>'.$col->name.'</th>';
}
echo '</tr>';
$fields=count($fields);
while($row=mysql_fetch_array($hasil1)){
echo '<tr>';
for($I=0;$I<$fields;I++){
echo "<td>".$row[$I].'</td>';
}
echo '</tr>';
}
HERE 您可以在list.kom
和ambilmk.nilai
之间切换,并且可以将聚合函数MAX
更改为您想要的任何其他COUNT
等等。切换GROUP BY caluse中列的顺序以获得所需结果。 由于您的列名称使用不同的语言,这就是为什么无法理解其中的内容,因此您需要执行这些建议的变体。并且也无法测试,因为它不具有您的表格结构。