Sebagai studi kasus, kita akan mengambil data tentang mahasiswa. Adapun struktur tabel untuk menyimpan data mahasiswa ini adalah sebagai berikut:
1.
CREATE
TABLE
mahasiswa (
2.
nim
varchar
(8),
3.
namaMhs
varchar
(20),
4.
PRIMARY
KEY
(nim)
5.
)
1.
CREATE
TABLE
jurusan (
2.
kodeJurusan
varchar
(3),
3.
namaJurusan
varchar
(10),
4.
PRIMARY
KEY
(kodeJurusan)
5.
)
01.
insert
Â
into
mahasiswa
values
02.
(
'M0197001'
,
'A'
),
03.
(
'M0197002'
,
'B'
),
04.
(
'M0197003'
,
'C'
),
05.
(
'M0197004'
,
'D'
),
06.
(
'M0198001'
,
'E'
),
07.
(
'M0198002'
,
'F'
),
08.
(
'M0199001'
,
'G'
),
09.
(
'M0199002'
,
'H'
),
10.
(
'M0199003'
,
'I'
),
11.
(
'M0297001'
,
'J'
),
12.
(
'M0297002'
,
'K'
),
13.
(
'M0297003'
,
'L'
),
14.
(
'M0298001'
,
'M'
),
15.
(
'M0298002'
,
'N'
),
16.
(
'M0298003'
,
'O'
),
17.
(
'M0298004'
,
'P'
),
18.
(
'M0298005'
,
'Q'
),
19.
(
'M0299001'
,
'R'
),
20.
(
'M0299002'
,
'S'
),
21.
(
'M0299003'
,
'T'
),
22.
(
'M0397001'
,
'U'
),
23.
(
'M0397002'
,
'V'
),
24.
(
'M0398001'
,
'W'
),
25.
(
'M0398002'
,
'X'
),
26.
(
'M0399001'
,
'Y'
),
27.
(
'M0399002'
,
'Z'
);
1.
insert
into
jurusan
values
2.
(
'M01'
,
'Matematika'
),
3.
(
'M02'
,
'Fisika'
),
4.
(
'M03'
,
'Kimia'
);
OK… bagaimana ide untuk membuat rekap di atas? Mudah kok, hanya butuh 2 langkah, yaitu:
- Langkah pertama adalah membuat judul kolom tabel untuk NO. dan NAMA JURUSAN, sedangkan kolom tahun angkatan kita buat dinamis yaitu dengan membaca data dari tabel mahasiswa. Untuk mengetahui tahun angkatan berapa saja dalam tabel mahasiswa, kita memanfaatkan query SQL. Tahun angkatan biasa terdapat dalam NIM mahasiswa, dalam contoh ini angkatan ditunjukkan pada digit 4 dan 5. Sehingga kita gunakan SUBSTRING dalam SQL nya. Setelah NO, NAMA JURUSAN, dan TAHUN ANGKATAN sudah dibuat, kolom yang terakhir adalah kolom JUMLAH.
- Langkah kedua kita mulai membuat baris dalam tabel. Adapun baris tabel menunjukkan nama masing-masing jurusan dan jumlah mahasiswa per angkatannya. Untuk membuat ini, kita membuat 2 buah looping. Looping yang pertama untuk menampilkan nama Jurusan. Nah… untuk setiap jurusan, kita hitung jumlah mahasiswa per angkatan. Untuk menghitung ini, kita gunakan looping yang kedua.
001.
<?php
002.
003.
// koneksi ke mysql
004.
005.
mysql_connect(
"localhost"
,
"root"
,
"root"
);
006.
mysql_select_db(
"data"
);
007.
?>
008.
009.
<h1>Rekap Data Mahasiswa</h1>
010.
011.
<table border=
"1"
>
012.
013.
<!-- membuat nama kolom untuk No Urut dan Nama Jurusan -->
014.
015.
<tr>
016.
<td>No</td>
017.
<td>Nama Jurusan</td>
018.
019.
<?php
020.
021.
// query untuk mencari tahun angkatan berapa saja
022.
// dari mahasiswa
023.
024.
$query
= "SELECT DISTINCT substring(nim, 4, 2)
as
angkatan
025.
FROM mahasiswa";
026.
$hasil
= mysql_query(
$query
);
027.
while
(
$data
= mysql_fetch_array(
$hasil
))
028.
{
029.
030.
// menampilkan nama kolom untuk setiap angkatan yang ada
031.
032.
echo
"<td>Angkatan "
.
$data
[
'angkatan'
].
"</td>"
;
033.
}
034.
?>
035.
036.
<!-- membuat nama kolom untuk Jumlah -->
037.
038.
<td>Jumlah</td>
039.
</tr>
040.
041.
<?php
042.
043.
// nilai awal untuk no. urut
044.
045.
$no
= 1;
046.
047.
// query untuk menampilkan nama masing-masing jurusan
048.
049.
$query
=
"SELECT * FROM jurusan"
;
050.
$hasil
= mysql_query(
$query
);
051.
052.
// looping pertama untuk menampilkan nama jurusan
053.
054.
while
(
$data
= mysql_fetch_array(
$hasil
))
055.
{
056.
057.
// kode jurusan diambil untuk query mencari jumlah
058.
// mahasiswa per angkatan
059.
060.
$kodeJurusan
=
$data
[
'kodeJurusan'
];
061.
062.
echo
"<tr>"
;
063.
064.
// menampilkan no. urut dan nama jurusan
065.
066.
echo
"<td>"
.
$no
.
"</td><td>"
.
$data
[
'namaJurusan'
].
"</td>"
;
067.
068.
// query untuk menampilkan angkatan berapa saja dalam
069.
// tabel mahasiswa
070.
071.
$query2
= "SELECT DISTINCT substring(nim, 4, 2)
as
angkatan
072.
FROM mahasiswa";
073.
$hasil2
= mysql_query(
$query2
);
074.
075.
// nilai awal untuk menjumlahkan mahasiswa per angkatan
076.
077.
$jumMhsPerJurusan
= 0;
078.
079.
// looping kedua untuk menampilkan jumlah mhs per angkatan
080.
081.
while
(
$data2
= mysql_fetch_array(
$hasil2
))
082.
{
083.
$angkatan
=
$data2
[
'angkatan'
];
084.
085.
// query untuk mencari jumlah mhs per angkatan per jurusan
086.
087.
$query3
= "SELECT
count
(*)
as
jumlah
088.
FROM mahasiswa
089.
WHERE substring(nim, 4, 2) =
'$angkatan'
AND
090.
substring(nim, 1, 3) =
'$kodeJurusan'
";
091.
$hasil3
= mysql_query(
$query3
);
092.
$data3
= mysql_fetch_array(
$hasil3
);
093.
094.
// menghitung total mahasiswa per jurusan
095.
// (gunakan increment)
096.
097.
$jumMhsPerJurusan
+=
$data3
[
'jumlah'
];
098.
099.
// menampilkan jumlah mahasiswa per angkatan per jurusan
100.
101.
echo
"<td>"
.
$data3
[
'jumlah'
].
"</td>"
;
102.
}
103.
104.
// menampilkan jumlah total mahasiswa per jurusan
105.
106.
echo
"<td>"
.
$jumMhsPerJurusan
.
"</td>"
;
107.
echo
"</tr>"
;
108.
109.
// increment untuk no. urut data
110.
111.
$no
++;
112.
}
113.
?>
114.
115.
</table>
Sumber : http://blog.rosihanari.net/membuat-script-php-untuk-rekap-data-dari-data-mentah/
ini postingan apa ya ? pidato ? apa puisi ?
BalasHapusisinya tulisan semua bhakk