Membuat Nomor Urut Hasil Query di PHP
August 31st, 2009 | by rosihanari |
Cetak Artikel Ini
Suatu ketika, mas Bagus (salah seorang member saya) merequest artikel di blog ini. Beliau menanyakan bagaimana cara membuat nomor urut dari tampilan hasil query di PHP.
Maaf mas Bagus, baru sempat dipostin sekarang… maklum, karena banyak kerjaan di kantor.
OK.. sebenarnya ide untuk membuat nomor urut hasil query di PHP ini cukup mudah, yaitu dengan konsep membuat increment mulai dari 1, 2, … dst sampai sejumlah record hasil query. Untuk lebih jelasnya saya ambil kasus seperti di bawah ini.
Misalnya kita punya tabel dan data sebagai berikut
CREATE TABLE `mhs` ( `nim` varchar(10), `namamhs` varchar(30), `alamat` text, `sex` varchar(10), PRIMARY KEY (`nim`) );
INSERT INTO `mhs` VALUES ('M0197001', 'ROSIHAN ARI YUANA', 'COLOMADU', 'L');
INSERT INTO `mhs` VALUES ('M0197002', 'DWI AMALIA FITRIANI', 'KUDUS', 'P');
INSERT INTO `mhs` VALUES ('M0197003', 'FAZA FAUZAN KH.', 'COLOMADU', 'L');
INSERT INTO `mhs` VALUES ('M0197004', 'NADA HASANAH', 'COLOMADU', 'P');
INSERT INTO `mhs` VALUES ('M0197016', 'MUH. AHSANI TAQWIM', 'COLOMADU', 'L');
Selanjutnya kita akan menampilkan semua data mahasiswa di atas dengan query yang dijalankan di PHP
<?php
mysql_connect("dbhost", "dbuser", "dbpass");
mysql_select_db("dbname");
echo "<table border='1'>";
echo "<tr><th>NIM</th><th>Nama MHS</th><th>Alamat</th><th>J. Kelamin</th></tr>";
$query = "SELECT * FROM mhs";
$hasil = mysql_query($query);
while ($data = mysql_fetch_array($hasil))
{
echo "<tr><td>".$data['nim']."</td><td><td>".$data['namamhs']."</td><td><td>".$data['alamat']."</td><td><td>".$data['sex']."</td></tr>";
}
?>
Hasil script di atas akan tampak seperti di bawah ini

Nah untuk menampilkan nomor urutnya: 1, 2, …, dst di setiap baris record datanya maka kita tinggal buat increment dengan nilai awal 1. Dalam contoh ini, kita gunakan variabel $noUrut.
<?php
mysql_connect("dbhost", "dbuser", "dbpass");
mysql_select_db("dbname");
echo "<table border='1'>";
echo "<tr><th>No</th><th>NIM</th><th>Nama MHS</th><th>Alamat</th><th>J. Kelamin</th></tr>";
$query = "SELECT * FROM mhs";
$hasil = mysql_query($query);
$noUrut = 1;
while ($data = mysql_fetch_array($hasil))
{
echo "<tr><td>".$noUrut."</td><td>".$data['nim']."</td><td>".$data['namamhs']."</td><td>".$data['alamat']."</td><td>".$data['sex']."</td></tr>";
$noUrut++; // increment untuk menampilkan nomor urut
}
?>
atau boleh kita membuat nilai awal $noUrut = 0, akan tetapi increment $noUrut++ nya kita letakkan sebelum menampilkan datanya
<?php
mysql_connect("dbhost", "dbuser", "dbpass");
mysql_select_db("dbname");
echo "<table border='1'>";
echo "<tr><th>No</th><th>NIM</th><th>Nama MHS</th><th>Alamat</th><th>J. Kelamin</th></tr>";
$query = "SELECT * FROM mhs";
$hasil = mysql_query($query);
$noUrut = 0;
while ($data = mysql_fetch_array($hasil))
{
$noUrut++; // increment untuk menampilkan nomor urut
echo "<tr><td>".$noUrut."</td><td>".$data['nim']."</td><td>".$data['namamhs']."</td><td>".$data['alamat']."</td><td>".$data['sex']."</td></tr>";
}
?>
Nah… hasil dari script modifikasi di atas tampak seperti di bawah ini

OK deh.. mudah-mudahan artikel ini bisa menjawab pertanyaan mas Bagus dan juga visitor setia blog ini. Mungkin artikel ini so simple bagi Anda yang sudah berpengalaman di PHP, tapi bisa jadi sangat bermanfaat bagi mereka yang sedang belajar
Anda ingin mendownload beberapa tool programming 100% gratis?
Silakan download di FREE PROGRAMMING TOOLS.
atau ingin berdonasi untuk pengembangan blog ini cukup dengan $1 via Paypal?
Beberapa artikel terkait
- Membuat Nomor Urut Hasil Query di PHP (Combined with Paging)
- Fakta Seputar Query INSERT di SQL
- Membuat Script PHP untuk Rekap Data dari Data Mentah
- Script PHP Menampilkan Hasil Pencarian Multikategori dengan Advanced Paging
- Membuat Nomor Halaman (Paging) di WordPress
- Cara Membuat Query SQL Untuk Relasi Tabel
- Ide Membuat Generator Kode Unik Incremental Otomatis
- Script PHP untuk Membuat Report Format MS. Excel
- Cara Mengubah Struktur Tabel dengan Query SQL
- Teknik Pengurutan Kembali ID Auto Increment Pada Record
Share this article on:
Kata kunci: menampilkan hasil query - nomor urut query - php mysql script - query di php - query php mysql - query sql di php -





Terimakasih Pa Ari untuk sharingnya.
Saya coba terapkan dengan data yang agak banyak dan ditampilkan dengan sistem paging. Masalahnya, kenapa ya pas tampilan data di halam 2 dan seterusnya selalu memulai penomoran dari 1 lagi. Bagaimana caranya agar penomoran berlanjut dari halaman awal sampai seterusnya ya?
Maaf kl pertanyaannya bodoh, maklum newbi.
btw, kirim komen pake mozilla gagal terus Pa skrg. ni pake IE
Thx b4
Selamat menjalankan ibadah2 di bulan suci ini.
sL
to sahl: pertanyaan Anda sudah saya jawab di artikel “Membuat Nomor Urut Hasil Query di PHP (Combined with Paging)“
Yth, Pak Ari..
Bisa apa ngga ya kira2 php menghasilkan laporan dg bentuk format misalnya sbb:
No Urut : 99999
Tanggal : 99/99/9999
———————————————–
No.Urt Nm Brng Hrg Satuan Qty Jumlah
———————————————–
99 xxxxxxxxxx 9.999 99 9.999.999
99 xxxxxxxxxx 9.999 99 9.999.999
99 xxxxxxxxxx 9.999 99 9.999.999
———————————————–
total 99.999.999
———————————————–
datanya diambil dari tabel2 mssql
Terima kasih sebelumnya
to mukti: ya.. bisa saja mas, tapi report di atas pastinya merelasikan lebih dari 1 tabel.
mohon bantuannya…….
bgmn caranya bila membuat no pendaftaran secara otomatis dengan memakai kode jurusan tetapi kode jurusan bisa berubah apabila kita memilih jurusan yg berbeda, apakah kode jurusan dibuatkan tabel tersendiri atau bisa diambil dari tabel user
contoh untuk no pendaftaran :
AK001 dst
AP001 dst
PJ001 dst
to yuni: mungkin artikel yang dimaksud adalah http://blog.rosihanari.net/ide-membuat-generator-kode-unik-incremental-otomatis
Yth Pak Ari..
Pak..kalo misalnya user A login di komputer 1, user A belum logout, tapi user A login kembali di komputer 2. Bisa ngga Pak… php mencegah agar 1 user hanya boleh 1 x login dan sebelum logout, maka ia tidak boleh login di komputer mana pun.
Terima kasih sebelumnya
@mukti: seperti itu bisa mas terjadi mas. Untuk mencegah itu sebaiknya anda buat sebuah field di tabel user, misal namanya ‘status’. Lalu isi dari status itu bisa berupa angka 0 atau 1. Angka 0 berarti si user belum login, dan 1 artinya sudah login. Begitu si user sudah login, maka secara otomatis nilai status menjadi 1. Nah… kalau dia sudah 1, maka anda buat mekanisme di script anda bhw dia tidak bisa login lagi sebelum dia logiut. Artinya seorang user hanya boleh login ketika statusnya masih 0. Paham maksudnya saya ya?
Iya sih Pak, tp kalo itu diterapkan, bagaimana kalo user cuma klik close aja (dari ikon pojok kanan atas)tanpa logout dari menu atau putus sumber daya listrik, pasti status terakhir masih login, akibatnya selanjutnya jika user login, maka akan ditolak.
@mukti: mm… kalo gitu sistem anda musti menyimpan segala aktivitas atau log usernya. Jika tidak ada perubahan dari aktivitasnya atau lognya selama beberapa jam, maka secara otomatis dianggap logout.
Terima kasih Pak atas sharingnya, saya pikir tadinya php mempunyai fungsi yg dapat mencegah user utk login 2 x atau lebih pada waktu yg sama.
@mukti: setahu saya tidak ada mas di PHP function seperti itu, kecuali anda harus membuatnya sendiri.
Iya Pak maksud saya juga bgitu, cm blm ktemu key nya
Pak.. kayanya jawabannya ada di http://blog.rosihanari.net/apa-sih-gunanya-session-di-php dan http://blog.rosihanari.net/membuat-autentifikasi-user-di-php, tinggal di balik dan dimodif sedikit. Trima kasih
pak, kalo untuk buat nomor otomatis misalnya digunakan sebagai nomor urut agenda surat bagaimana ya ? terima kasih sebelumnya
@r3q: coba pelajari artikel saya di http://blog.rosihanari.net/ide-membuat-generator-kode-unik-incremental-otomatis ya mas, maybe it can help…
Yang terhormat pak rosihan
Pak saya pemula di php, bagaimana mengurutkan data dari dari terbesar (descending)
misal
no,nama,nilai
1,ani,4
2,siti,2
3. rudi,8
dst…
Pertanyaan :
Bagaimana scriptnya untuk mengurutkan data berdasarkan nilai dari terbesar
Bagaimana membatasi yang dicetat misalnya anya 2 recor aja
atas bantuannya saya ucapkan terima kasih
@dinda: gunakan query SELECT * FROM tabel ORDER BY nilai DESC LIMIT 0, 2
pak klo hasil query yg ditampilkan berdasarkan urutan alpabet nama orang..misalkan :
1. Adi
2. Ayu
3. Bani
4. Budi
itu caranya bgm? Trims
@iyan: tinggal tambahkan ‘ORDER BY nama’ saja di belakang query nya mas.