有:
我想创建带有1行(tr)的表(如树的标头和其他行)为cicle数组,其中父id =第一行(标头);但是查询的结果建立了cicle header1-content1 header1-contet2(并将为header1-content1-content2-content3)
文件中的PHP代码:
$query = "SELECT cafedra.*, facultet.f_name FROM cafedra,facultet WHERE facultet_id = facultet.id";
$row = $db->select($query);
$cafedra = "";
foreach($row as $r) {
$result = "<tr class='info'>
<td colspan='5'>$r[f_name]</td>
</tr>
<tr>
<td class='span1' > $r[code] </td>
<td style='text-align:left;'> $r[c_name]</td>
<td><a id='view-$r[id]' href='/facultet/$r[id]' class='btn btn-mini btn-success'><i class='icon-desktop icon-large'></i></a></td>
<td><button id='edit-$r[id]' class='btn btn-mini btn-warning' ><i class='icon-pencil icon-large'></i></button></td>
<td><button id='delete-$r[id]' class='btn btn-mini btn-danger' ><i class='icon-trash icon-large'></i></button></td>
</tr>";
$cafedra .= $result;
}
文件中的HTML代码:
<br/>
<h1> </h1>
<br/><br/>
<div class="row-fluid">
<div id="facultet" class="span9 offset1">
<table class="table table-hover">
<tbody>
<?php echo $cafedra; ?>
</tbody>
</table>
</div>
</div>
需要:
最佳答案
有多种方法可以完成此操作,但是最简单的方法之一就是对数据进行排序。
首先,您必须按自己的喜好对数据进行排序:
SELECT cafedra.*, facultet.f_name FROM cafedra,facultet WHERE facultet_id = facultet.id ORDER BY facultet.f_name ASC ;
然后在PHP中进行整理:
$data = array() ;
foreach($row as $key => $value){
$f_name = $value['f_name'] ;
if (!isset($data[$f_name]){
$data[$f_name] = array() ;
}
$data[$f_name][] = $value ;
}
然后输出:
foreach($data as $header => $rows){
$result = "<tr class='info'>
<td colspan='5'>$r[f_name]</td>
</tr> " ;
foreach($rows as $row){
$result .= "
<tr>
<td class='span1' > $r[code] </td>
<td style='text-align:left;'> $r[c_name]</td>
<td><a id='view-$r[id]' href='/facultet/$r[id]' class='btn btn-mini btn-success'><i class='icon-desktop icon-large'></i></a></td>
<td><button id='edit-$r[id]' class='btn btn-mini btn-warning' ><i class='icon-pencil icon-large'></i></button></td>
<td><button id='delete-$r[id]' class='btn btn-mini btn-danger' ><i class='icon-trash icon-large'></i></button></td>
</tr>";
}
$cafedra .= $result;
}