Bagaimana cara menggunakan GROUP BY pada while (perulangan) PHP?

Saya memiliki database dengan nama table adalah 'siswa' yang memiliki kolom seperti berikut

image.png

dan table keadaan_siswa yang memiliki kolom berikut

image.png

Lalu saya ingin mencari seperti table berikut,

image.png

terlihat pada foto ke-3 berhasil menampilkan data yang sesuai diinginkan. Tetapi saat saya menambah data siswa dengan kecamatan yang berbeda maka akan muncul seperti gambar berikut,

image.png

terlihat pada lingkaran biru tidak muncul nama kecamatan siswa yang baru saja di tambahkan. Sehingga tabel hancur

Saya mempunyai sebanyak 3 macam perulangan didalam 1 table,

dan setiap perulangannya sudah berhasil menampilkan data yang diingkan (berhasil),

yang jadi pertanyaan adalah bagaimana caranya agar bisa GROUP BY id_kecamatan?

berikut adalah codingan saya

<table id="example" class="stripe row-border order-column display table table-striped table-bordered" cellspacing="0" width="100%"><!--table 2-->
<thead>
<tr>
<th rowspan="3" colspan=""><center>KECAMATAN</center></th>
<th rowspan="2" colspan="2"><center>KELAS ROMBEL</center></th>
<th colspan="3"><center>BULAN LALU</center></th>
<th colspan="2"><center>KELUAR</center></th>
<th colspan="2"><center>MASUK</center></th>
<th colspan="3"><center>BULAN INI</center></th>
<th colspan="7"><center>SISWA MENURUT AGAMA</center></th>
<th colspan="8"><center>SISWA MENURUT UMUR (TAHUN)</center></th>
</tr>

<tr>
<th><center>L</center></th>
<th><center>P</center></th>
<th><center>JLH</center></th>

<th><center>L</center></th>
<th><center>P</center></th>

<th><center>L</center></th>
<th><center>P</center></th>

<th><center>L</center></th>
<th><center>P</center></th>
<th><center>JLH</center></th>

<th><center>ISLAM</center></th>
<th><center>KRISTEN PROTESTAN</center></th>
<th><center>KRISTEN KATOLIK</center></th>
<th><center>HINDU</center></th>
<th><center>BUDHA</center></th>
<th><center>KONGHUCU</center></th>
<th><center>JLH</center></th>
<th><center>=/<11</center></th>
<th><center>12</center></th>
<th><center>13</center></th>
<th><center>14</center></th>
<th><center>15</center></th>
<th><center>16</center></th>
<th><center>=/>17</center></th>
<th><center>JLH</center></th>
</tr>

<tr>
<th><center><i>1</i></center></th>
<th><center><i>2</i></center></th>
<th><center><i>3</i></center></th>
<th><center><i>4</i></center></th>
<th><center><i>5</i></center></th>

<th><center><i>6</i></center></th>
<th><center><i>7</i></center></th>
<th><center><i>8</i></center></th>
<th><center><i>9</i></center></th>
<th><center><i>10</i></center></th>

<th><center><i>11</i></center></th>
<th><center><i>12</i></center></th>
<th><center><i>13</i></center></th>
<th><center><i>14</i></center></th>
<th><center><i>15</i></center></th>

<th><center><i>16</i></center></th>
<th><center><i>17</i></center></th>
<th><center><i>18</i></center></th>
<th><center><i>19</i></center></th>
<th><center><i>20</i></center></th>

<th><center><i>21</i></center></th>
<th><center><i>22</i></center></th>
<th><center><i>23</i></center></th>
<th><center><i>24</i></center></th>
<th><center><i>25</i></center></th>

<th><center><i>26</i></center></th>
<th><center><i>27</i></center></th>
</tr>
</thead>

<tbody>
<?php
$sql = mysql_query("SELECT a.*, b.nm_kecamatan AS nm_kecamatan, c.nm_sekolah AS nm_sekolah,
sum(a.bulan_lalu_laki_vii) AS bulan_lalu_laki_vii, sum(a.bulan_lalu_perempuan_vii) AS bulan_lalu_perempuan_vii, sum(a.keluar_laki_vii) AS keluar_laki_vii, sum(a.keluar_perempuan_vii) AS keluar_perempuan_vii, sum(a.masuk_laki_vii) AS masuk_laki_vii, sum(a.masuk_perempuan_vii) AS masuk_perempuan_vii, sum(a.bulan_ini_laki_vii) AS bulan_ini_laki_vii, sum(a.bulan_ini_perempuan_vii) AS bulan_ini_perempuan_vii,
sum(a.bulan_lalu_laki_viii) AS bulan_lalu_laki_viii, sum(a.bulan_lalu_perempuan_viii) AS bulan_lalu_perempuan_viii, sum(a.keluar_laki_viii) AS keluar_laki_viii, sum(a.keluar_perempuan_viii) AS keluar_perempuan_viii, sum(a.masuk_laki_viii) AS masuk_laki_viii, sum(a.masuk_perempuan_viii) AS masuk_perempuan_viii, sum(a.bulan_ini_laki_viii) AS bulan_ini_laki_viii, sum(a.bulan_ini_perempuan_viii) AS bulan_ini_perempuan_viii,
sum(a.bulan_lalu_laki_ix) AS bulan_lalu_laki_ix, sum(a.bulan_lalu_perempuan_ix) AS bulan_lalu_perempuan_ix, sum(a.keluar_laki_ix) AS keluar_laki_ix, sum(a.keluar_perempuan_ix) AS keluar_perempuan_ix, sum(a.masuk_laki_ix) AS masuk_laki_ix, sum(a.masuk_perempuan_ix) AS masuk_perempuan_ix, sum(a.bulan_ini_laki_ix) AS bulan_ini_laki_ix, sum(a.bulan_ini_perempuan_ix) AS bulan_ini_perempuan_ix
FROM keadaan_siswa a
JOIN kecamatan b ON a.id_kecamatan = b.id_kecamatan
JOIN sekolah c ON a.id_sekolah = c.id_sekolah
GROUP BY id_kecamatan
ORDER BY id_kecamatan ASC");

while ($data = mysql_fetch_assoc($sql))
{
?>
<tr>
<td rowspan="3"><?php echo $data['nm_kecamatan'];?></td>

<td><center>VII</center></td>
<td><center>0</center></td>
<td><center><?php echo $data['bulan_lalu_laki_vii'];?></center></td>
<td><center><?php echo $data['bulan_lalu_perempuan_vii'];?></center></td>
<th><center><?php echo $data['bulan_lalu_laki_vii']+$data['bulan_lalu_perempuan_vii'];?></center></th>

<td><center><?php echo $data['keluar_laki_vii'];?></center></td>
<td><center><?php echo $data['keluar_perempuan_vii'];?></center></td>
<td><center><?php echo $data['masuk_laki_vii'];?></center></td>
<td><center><?php echo $data['masuk_perempuan_vii'];?></center></td>

<td><center><?php echo $data['bulan_ini_laki_vii'];?></center></td>
<td><center><?php echo $data['bulan_ini_perempuan_vii'];?></center></td>
<th><center><?php echo $data['bulan_ini_laki_vii']+$data['bulan_ini_perempuan_vii'];?></center></th>

<?php
$sql1 = mysql_query("SELECT a.*, b.nm_kecamatan AS nm_kecamatan, c.nm_sekolah AS nm_sekolah,
sum(a.agama_siswa='Islam' AND rombel_siswa='VII') AS agama_siswa_islam_vii, sum(a.agama_siswa='Protestan' AND rombel_siswa='VII') AS agama_siswa_protestan_vii, sum(a.agama_siswa='Katolik' AND rombel_siswa='VII') AS agama_siswa_katolik_vii, sum(a.agama_siswa='Buddha' AND rombel_siswa='VII') AS agama_siswa_buddha_vii, sum(a.agama_siswa='Hindu'AND rombel_siswa='VII') AS agama_siswa_hindu_vii, sum(a.agama_siswa='Konghucu' AND rombel_siswa='VII') AS agama_siswa_konghucu_vii,
sum(a.agama_siswa='Islam' AND rombel_siswa='VIII') AS agama_siswa_islam_viii, sum(a.agama_siswa='Protestan' AND rombel_siswa='VIII') AS agama_siswa_protestan_viii, sum(a.agama_siswa='Katolik' AND rombel_siswa='VIII') AS agama_siswa_katolik_viii, sum(a.agama_siswa='Buddha' AND rombel_siswa='VIII') AS agama_siswa_buddha_viii, sum(a.agama_siswa='Hindu'AND rombel_siswa='VIII') AS agama_siswa_hindu_viii, sum(a.agama_siswa='Konghucu' AND rombel_siswa='VIII') AS agama_siswa_konghucu_viii,
sum(a.agama_siswa='Islam' AND rombel_siswa='IX') AS agama_siswa_islam_ix, sum(a.agama_siswa='Protestan' AND rombel_siswa='IX') AS agama_siswa_protestan_ix, sum(a.agama_siswa='Katolik' AND rombel_siswa='IX') AS agama_siswa_katolik_ix, sum(a.agama_siswa='Buddha' AND rombel_siswa='IX') AS agama_siswa_buddha_ix, sum(a.agama_siswa='Hindu'AND rombel_siswa='IX') AS agama_siswa_hindu_ix, sum(a.agama_siswa='Konghucu' AND rombel_siswa='IX') AS agama_siswa_konghucu_ix
FROM siswa a
JOIN kecamatan b ON a.id_kecamatan = b.id_kecamatan
JOIN sekolah c ON a.id_sekolah = c.id_sekolah
GROUP BY id_kecamatan
ORDER BY id_kecamatan ASC");
while ($data1 = mysql_fetch_assoc($sql1))
{

?>

<td><center><?php echo $data1['agama_siswa_islam_vii'];?></center></td>
<td><center><?php echo $data1['agama_siswa_protestan_vii'];?></center></td>
<td><center><?php echo $data1['agama_siswa_katolik_vii'];?></center></td>
<td><center><?php echo $data1['agama_siswa_buddha_vii'];?></center></td>
<td><center><?php echo $data1['agama_siswa_hindu_vii'];?></center></td>
<td><center><?php echo $data1['agama_siswa_konghucu_vii'];?></center></td>
<th><center><?php echo $data1['agama_siswa_islam_vii']+$data1['agama_siswa_protestan_vii']+$data1['agama_siswa_katolik_vii']+$data1['agama_siswa_buddha_vii']+$data1['agama_siswa_hindu_vii']+$data1['agama_siswa_konghucu_vii'];?></center></th>

<?php
$sql_umur = mysql_query("SELECT
COUNT(IF(a.umur <=11,1,NULL)) AS umur11,
COUNT(IF(a.umur=12,1,NULL)) AS umur12,
COUNT(IF(a.umur=13,1,NULL)) AS umur13,
COUNT(IF(a.umur=14,1,NULL)) AS umur14,
COUNT(IF(a.umur=15,1,NULL)) AS umur15,
COUNT(IF(a.umur=16,1,NULL)) AS umur16,
COUNT(IF(a.umur>=17,1,NULL)) AS umur17
FROM (SELECT TIMESTAMPDIFF(YEAR, tanggal_lahir, CURDATE())
AS umur
FROM siswa
WHERE rombel_siswa = 'VII' AND id_kecamatan = '$data1[id_kecamatan]' ) a
");
while ($data_umur = mysql_fetch_assoc($sql_umur))
{
?>

<td><center><?php echo $data_umur['umur11'];?></center></td>
<td><center><?php echo $data_umur['umur12'];?></center></td>
<td><center><?php echo $data_umur['umur13'];?></center></td>

<td><center><?php echo $data_umur['umur14'];?></center></td>
<td><center><?php echo $data_umur['umur15'];?></center></td>
<td><center><?php echo $data_umur['umur16'];?></center></td>
<td><center><?php echo $data_umur['umur17'];?></center></td>
<td><center>x</center></td>
<?php
}
?>
</tr>

<tr>
<td><center>VIII</center></td>
<td><center>0</center></td>
<td><center><?php echo $data['bulan_lalu_laki_viii'];?></center></td>
<td><center><?php echo $data['bulan_lalu_perempuan_viii'];?></center></td>
<th><center><?php echo $data['bulan_lalu_laki_viii']+$data['bulan_lalu_perempuan_viii'];?></center></th>

<td><center><?php echo $data['keluar_laki_viii'];?></center></td>
<td><center><?php echo $data['keluar_perempuan_viii'];?></center></td>
<td><center><?php echo $data['masuk_laki_viii'];?></center></td>
<td><center><?php echo $data['masuk_perempuan_viii'];?></center></td>

<td><center><?php echo $data['bulan_ini_laki_viii'];?></center></td>
<td><center><?php echo $data['bulan_ini_perempuan_viii'];?></center></td>
<th><center><?php echo $data['bulan_ini_laki_viii']+$data['bulan_ini_perempuan_viii'];?></center></th>

<td><center><?php echo $data1['agama_siswa_islam_viii'];?></center></td>
<td><center><?php echo $data1['agama_siswa_protestan_viii'];?></center></td>
<td><center><?php echo $data1['agama_siswa_katolik_viii'];?></center></td>
<td><center><?php echo $data1['agama_siswa_buddha_viii'];?></center></td>
<td><center><?php echo $data1['agama_siswa_hindu_viii'];?></center></td>
<td><center><?php echo $data1['agama_siswa_konghucu_viii'];?></center></td>
<th><center><?php echo $data1['agama_siswa_islam_viii']+$data1['agama_siswa_protestan_viii']+$data1['agama_siswa_katolik_viii']+$data1['agama_siswa_buddha_viii']+$data1['agama_siswa_hindu_viii']+$data1['agama_siswa_konghucu_viii'];?></center></th>

<?php
$sql_umur = mysql_query("SELECT
COUNT(IF(a.umur <=11,1,NULL)) AS umur11,
COUNT(IF(a.umur=12,1,NULL)) AS umur12,
COUNT(IF(a.umur=13,1,NULL)) AS umur13,
COUNT(IF(a.umur=14,1,NULL)) AS umur14,
COUNT(IF(a.umur=15,1,NULL)) AS umur15,
COUNT(IF(a.umur=16,1,NULL)) AS umur16,
COUNT(IF(a.umur>=17,1,NULL)) AS umur17
FROM (SELECT TIMESTAMPDIFF(YEAR, tanggal_lahir, CURDATE())
AS umur FROM siswa
WHERE rombel_siswa = 'VIII'
AND id_kecamatan = '$data1[id_kecamatan]' ) a
");
while ($data_umur = mysql_fetch_assoc($sql_umur))
{
?>

<td><?php echo $data_umur['umur11'];?></td>
<td><?php echo $data_umur['umur12'];?></td>
<td><?php echo $data_umur['umur13'];?></td>

<td><?php echo $data_umur['umur14'];?></td>
<td><?php echo $data_umur['umur15'];?></td>
<td><?php echo $data_umur['umur16'];?></td>
<td><?php echo $data_umur['umur17'];?></td>
<td><?php echo $data_umur['umur17'];?></td>
<?php
}
?>
</tr>

<tr>
<td><center>IX</center></td>
<td><center>0</center></td>
<td><center><?php echo $data['bulan_lalu_laki_ix'];?></center></td>
<td><center><?php echo $data['bulan_lalu_perempuan_ix'];?></center></td>
<th><center><?php echo $data['bulan_lalu_laki_ix']+$data['bulan_lalu_perempuan_ix'];?></center></th>

<td><center><?php echo $data['keluar_laki_ix'];?></center></td>
<td><center><?php echo $data['keluar_perempuan_ix'];?></center></td>
<td><center><?php echo $data['masuk_laki_ix'];?></center></td>
<td><center><?php echo $data['masuk_perempuan_ix'];?></center></td>

<td><center><?php echo $data['bulan_ini_laki_ix'];?></center></td>
<td><center><?php echo $data['bulan_ini_perempuan_ix'];?></center></td>
<th><center><?php echo $data['bulan_ini_laki_ix']+$data['bulan_ini_perempuan_ix'];?></center></th>

<td><center><?php echo $data1['agama_siswa_islam_ix'];?></center></td>
<td><center><?php echo $data1['agama_siswa_protestan_ix'];?></center></td>
<td><center><?php echo $data1['agama_siswa_katolik_ix'];?></center></td>
<td><center><?php echo $data1['agama_siswa_buddha_ix'];?></center></td>
<td><center><?php echo $data1['agama_siswa_hindu_ix'];?></center></td>
<td><center><?php echo $data1['agama_siswa_konghucu_ix'];?></center></td>
<th><center><?php echo $data1['agama_siswa_islam_ix']+$data1['agama_siswa_protestan_ix']+$data1['agama_siswa_katolik_ix']+$data1['agama_siswa_buddha_ix']+$data1['agama_siswa_hindu_ix']+$data1['agama_siswa_konghucu_ix'];?></center></th>

<?php
$sql_umur = mysql_query("SELECT
COUNT(IF(a.umur <=11,1,NULL)) AS umur11,
COUNT(IF(a.umur=12,1,NULL)) AS umur12,
COUNT(IF(a.umur=13,1,NULL)) AS umur13,
COUNT(IF(a.umur=14,1,NULL)) AS umur14,
COUNT(IF(a.umur=15,1,NULL)) AS umur15,
COUNT(IF(a.umur=16,1,NULL)) AS umur16,
COUNT(IF(a.umur>=17,1,NULL)) AS umur17
FROM (SELECT TIMESTAMPDIFF(YEAR, tanggal_lahir, CURDATE())
AS umur
FROM siswa
WHERE rombel_siswa = 'IX'
AND id_kecamatan = '$data1[id_kecamatan]' ) a
");
while ($data_umur = mysql_fetch_assoc($sql_umur))
{
?>

<td><?php echo $data_umur['umur11'];?></td>
<td><?php echo $data_umur['umur12'];?></td>
<td><?php echo $data_umur['umur13'];?></td>

<td><?php echo $data_umur['umur14'];?></td>
<td><?php echo $data_umur['umur15'];?></td>
<td><?php echo $data_umur['umur16'];?></td>
<td><?php echo $data_umur['umur17'];?></td>
<td>x</td>
<?php
}
?>
</tr>
<?php

}
}
?>
</tbody>
</table>

saya sudah mencoba untuk menambahkan GROUP BY id_kecamatan ke semua query tetapi masalah yang muncul

image.png

mohon bantuannya gan?

avatar barkah03
@barkah03

33 Kontribusi 9 Poin

Dipost 2 tahun yang lalu

Tanggapan

bukan ga mau bantu kak,,, aku aja ampe pusing nyari tutupnya while dimana XD

atau, coba saja,,, 1 per 1 sql nya di jalankan di mysql,,, hasilnya sesuai yang di mau atau tidak,,, karena while kan intinya menampilkan yang di sqlnya itu,,, kalo dah sesuai,,, ya kemungkinan di while nya itu,,,,

di teliti kembali {} nya sesuai dengan yang di mau atau tidak,,,

semoga membantu ^^

Belum ada Jawaban. Jadi yang pertama Jawaban

Login untuk ikut Jawaban