我想从表中循环记录字段。我在查询中使用LEFT JOIN,在GROUP BY中使用它来防止结果出现双重循环。查询成功,但是结果如下:
===========================================
|No|Nama Sekolah|Alamat|Telepon|Kompetensi|
===========================================
|1 |SMP 1 |JKT |021231 | 1.TIK1 |
|2 |SMP 2 |BDG |021232 | 1.RPL1 |
===========================================
如果即时通讯不使用GROUP BY,结果将如下所示:
===========================================
|No|Nama Sekolah|Alamat|Telepon|Kompetensi|
===========================================
|1 |SMP 1 |JKT |021231 | 1.TIK1 |
|2 |SMP 1 |JKT |021231 | 1.TIK2 |
|3 |SMP 2 |BDG |021232 | 1.RPL1 |
|4 |SMP 2 |BDG |021232 | 1.RPL2 |
===========================================
我想要这样的结果:
===========================================
|No|Nama Sekolah|Alamat|Telepon|Kompetensi|
===========================================
|1 |SMP 1 |JKT |021231 | 1.TIK1 |
| | | | | 2.TIK2 |
|2 |SMP 2 |BDG |021232 | 1.RPL1 |
| | | | | 2.RPL2 |
===========================================
我正在使用codeigniter框架。
这是我的看法:
<table class='table table-bordered'>
<thead>
<tr>
<td>No</td>
<td>Lokasi</td>
<td>Alamat</td>
<td>Telepon</td>
<td>Kompetensi</td>
</tr>
</thead>
<?php
$i = 0;
foreach ($row as $row) {
$i++;
echo"<tr>
<td>".$i."</td>
<td>".$row->nama_sekolah."</td>
<td>".$row->alamat."</td>
<td>".$row->no_telp."</td>
<td><ol>
<li>".$row->nama_jurusan."</li>
</ol>
</td>
</tr>";
}
?>
</table>
这是模型:
function getlokasi($jenjang){
$sql = "SELECT s.nama_sekolah, s.alamat, s.no_telp, j.nama_jurusan FROM sekolah s LEFT JOIN jurusan j ON j.id_sekolah = s.id_sekolah WHERE s.id_jenjang = '".$jenjang."' GROUP BY s.id_sekolah";
$q = $this->db->query($sql);
return $q->result();
}
请帮我。谢谢!
所以基本上您想展示ol
TKL1,TKL2。如果是第一次使用group_concat
的j.nama_jurusan
像
GROUP_CONCAT(DISTINCT j.nama_jurusan SEPARATOR ',')
在您的查询中
然后在视图中分解来自的值,
,然后使用foreach循环将其打印在li
只是一个猜测,希望对您有所帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句