Script Cari Data File Yang Terupload Ke MySQL
December 22nd, 2009 | by rosihanari |
Cetak Artikel Ini
Masih menyambung artikel sebelumnya tentang upload file dan update file yang telah tersimpan di MySQL, pada artikel ini saya akan mecoba membahas cara membuat script cari data filenya. Adapun skenario pencarian data file yang telah terupload ke MySQL ini sama dengan artikel lain yang membahas tentang pencarian data multi kategori.
Dalam artikel ini, struktur tabel upload file yang digunakan masih sama dengan yang digunakan di artikel sebelumnya yaitu berbentuk
CREATE TABLE `upload` ( `id` int(11) AUTO_INCREMENT, `name` varchar(30), `type` varchar(30), `size` int(11), `dateupload` date, `content` longblob, `keterangan` text, PRIMARY KEY (`id`) )
Adapun tampilan form pencarian file tampak seperti di bawah ini

Dari form di atas tampak bahwa terdapat 3 kategori pencarian, yaitu search by name (nama file), berdasarkan tanggal mulai upload, dan berdasarkan tanggal terakhir upload.
Dan.. berikut ini adalah contoh hasil pencarian yang menggunakan kategori search by name dan tanggal mulai upload.

OK.. step pertama kita siapkan form pencariannya terlebih dahulu.
cari.php
<h1>Cari Data File</h1>
<form method="post" action="prosescari.php">
<table>
<tr><td><input type="checkbox" name="byfilename"></td><td>Nama File</td><td><input type="text" name="namaFile"></td></tr>
<tr><td><input type="checkbox" name="bydate1"></td><td>Upload Mulai Tanggal</td>
<td>
<select name="tgl1">
<?php
for ($i=1; $i<=31; $i++)
{
echo "<option>".$i."</option>";
}
?>
</select>
<select name="bln1">
<?php
for ($i=1; $i<=12; $i++)
{
echo "<option>".$i."</option>";
}
?>
</select>
<select name="thn1">
<?php
for ($i=2000; $i<=2020; $i++)
{
echo "<option>".$i."</option>";
}
?>
</select>
</td>
</tr>
<tr><td><input type="checkbox" name="bydate2"></td><td>Upload Sampai Dengan Tanggal</td>
<td>
<select name="tgl2">
<?php
for ($i=1; $i<=31; $i++)
{
echo "<option>".$i."</option>";
}
?>
</select>
<select name="bln2">
<?php
for ($i=1; $i<=12; $i++)
{
echo "<option>".$i."</option>";
}
?>
</select>
<select name="thn2">
<?php
for ($i=2000; $i<=2020; $i++)
{
echo "<option>".$i."</option>";
}
?>
</select>
</td>
</tr>
</table>
<input type="submit" name="submit" value="Search">
</form>
Keterangan:
- Komponen checkbox untuk kategori search by name, diberi nama ‘byfilename’
- Komponen checkbox untuk kategori berdasarkan tanggal mulai upload, kita beri nama ‘bydate1′
- Komponen checkbox untuk kategori berdasarkan sampai dengan tanggal upload, kita beri nama ‘bydate2′
- Untuk setiap combobox tanggal, bulan dan tahun kita generate itemnya menggunakan looping saja supaya cepat, dasar pemalas ya…
OK selanjutnya kita buat script untuk proses pencariannya. Namun sebelum kita mulai membuatnya, kita harus punya ide dulu. Seperti halnya pada ide yang ada di artikel teknik pencarian multi kategori sebelumnya, maka kita nanti harus berusaha membentuk query berdasarkan kategori yang dipilih. Sebagai contoh, misalkan jika yang dipilih adalah hanya kategori search by filename maka query yang terbentuk haruslah
SELECT * FROM upload WHERE name LIKE '%nama file%';
Bila yang dipilih adalah kategori search by file name dan sampai dengan tanggal upload, maka query nya
SELECT * FROM upload WHERE name LIKE '%nama file%' AND dateupload <= 'tanggal';
Sedangkan bila yang terpilih ketiga kategori maka querynya
SELECT * FROM upload WHERE name LIKE '%nama file%' AND dateupload >= 'tanggal1' AND dateupload <= 'tanggal2';
OK… untuk implementasi ide di atas pada script PHP nya adalah sbb:
prosescari.php
<?php
// koneksi ke mysql
// inisialisasi bagian WHERE dari query pencarian
$bagianWhere = "";
// jika yang dipilih adalah search by filename
if (isset($_POST['byfilename']))
{
// baca nama file yang mau dicari
$namaFile = $_POST['namaFile'];
// proses menyambung bagian WHERE dari query
if (empty($bagianWhere))
{
$bagianWhere .= "name LIKE '%$namaFile%'";
}
}
// jika yang dipilih kategori tanggal mulai upload
if (isset($_POST['bydate1']))
{
// membaca tanggal, bulan dan tahun mulai upload
// lalu mengkonstruksi menjadi format yyyy-mm-dd sesuai format DATE di MySQL
$tglSetelah = $_POST['thn1']."-".$_POST['bln1']."-".$_POST['tgl1'];
// proses menyambung bagian WHERE untuk tanggal mulai upload
if (empty($bagianWhere))
{
$bagianWhere .= "dateupload >= '$tglSetelah'";
}
else
{
$bagianWhere .= " AND dateupload >= '$tglSetelah'";
}
}
// jika yang dipilih kategori sampai dengan tanggal upload
if (isset($_POST['bydate2']))
{
// membaca tanggal, bulan dan tahun
// lalu mengkonstruksi menjadi format yyyy-mm-dd sesuai format DATE di MySQL
$tglSebelum = $_POST['thn2']."-".$_POST['bln2']."-".$_POST['tgl2'];
// proses menyambung bagian WHERE untuk sampai dengan tanggal upload
if (empty($bagianWhere))
{
$bagianWhere .= "dateupload <= '$tglSebelum'";
}
else
{
$bagianWhere .= " AND dateupload <= '$tglSebelum'";
}
}
echo "<h2>Hasil Pencarian</h2>";
// query untuk mencari file berdasarkan kategori
$query = "SELECT * FROM upload WHERE ".$bagianWhere;
$hasil = mysql_query($query);
// menampilkan nama-nama file hasil pencarian
echo "<table border='1'>";
echo "<tr><th>ID</th><th>Nama File</th><th>Tanggal Upload</th><th>Keterangan</th></tr>";
while ($data = mysql_fetch_array($hasil))
{
echo "<tr><td>".$data['id']."</td><td><a href='download.php?id=".$data['id']."'>".$data['name']."</a></td><td>".$data['dateupload']."</td><td>".$data['keterangan']."</td></tr>";
}
echo "</table>";
?>
Nah… Anda dapat menggabungkan script download pada file hasil pencariannya dengan menambahkan script di bawah ini
download.php
<?php
// koneksi ke mysql
// membaca nilai ID file yang berasal dari link download.php?id=...
$id = $_GET['id'];
// query untuk membaca data file berdasarkan ID
$query = "SELECT * FROM upload WHERE id = $id";
$hasil = mysql_query($query);
$data = mysql_fetch_array($hasil);
// mengenerate proses download file
header("Content-Disposition: attachment; filename=".$data['name']);
header("Content-length: ".$data['size']);
header("Content-type: ".$data['type']);
echo $data['content'];
?>
OK jadi deh script untuk cari file yang telah terupload ke MySQL. Artikel ini masih menyisakan Pe-Er buat Anda. Wah kok ada Pe-Er juga ya? iya donk… masa’ cuman bisa copas script doank?
OK … Pe-Er nya adalah cobalah modifikasi script di atas supaya dapat mengatasi error yang muncul ketika si user mensubmit tombol SEARCH padahal dia belum memilih kategori apapun.
Wah kok sulit tampaknya ya? He…3x. Jangan merasa sulit dulu sebelum mencoba mencari idenya. Idenya sebenarnya mudah kok, yaitu terlebih dahulu Anda harus mencari cara untuk mendeteksi ketika semua komponen checkbox tidak ada satupun yang terpilih. Anda cukup gunakan function isset() saja seperti pada script prosescari.php di atas. Kemudian gunakan logika berikut ini
if (tidak ada satupun kategori yang dipilih)
{
// warning -> Anda belum memilih kategori
}
else
{
// jalankan proses pencarian
}
Mudah bukan??? Selamat bereksperimen ya !!!
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
- Script Proses Edit File Yang Telah Diupload Ke Database MySQL
- Ide Membuat Script PHP untuk Pencarian dengan Multi Kategori
- Script Multiple File Upload Dengan PHP
- Editing Data Tanggal via Form dengan PHP
- Ide Pembuatan Script PHP Upload Download File Via Folder
- Ide Membuat Script Upload Download File Dengan Batasan Hak Akses
- Script PHP Menampilkan Hasil Pencarian Multikategori dengan Advanced Paging
- Membuat Script PHP Import Data MS. Excel Ke MySQL
- Script PHP untuk Mengedit Data Via Form
- Membuat Script PHP untuk Rekap Data dari Data Mentah
Share this article on:
Kata kunci: file search php - script cari file - script php - script php mysql - teknik search file -





om, boleh minta tolong gag..
lagi butuh source codenya digital library nih.. tolong ya om. terima kasih sebelumnya
Ok banget programnya , simple , cepet
thks
wah. boleh nih script code nya, cuman cara ngedowonload smuanya satu paket bisa gg yah??
siiiiiiiiiiiiiip Brow
pak, bagai mana sintak php pencarian jika yang di cari adalah tanggal terbaru dari suatu tabel. terimakasih
Bang, tutorial yang abang bikin keren”..
Setiap saya searching script, rata” saya menemukannya di website abang..
Saya jadi pengen posting tutorial kayak gini,,
kira” saya boleh gak posting editan saya tapi nyolek dr script abang..
Buat share aja ke tmn” semua..
Makasih ya abang.
oya, untuk = asdur
pencarian tanggal terbaru bisa kamu pakai query ini: “SELECT SYSDATE AS NOW FROM TABEL_TUJUAN”;
Ini implementasikan dengan query dari abang Rosihan aja..
Ato difield tabel anda, jika ada kolom “date”..
maka, query : SELECT * FROM NAMA_TABEL WHERE date LIKE ‘%nama file%’;
Salam,
@comsky: boleh aja bang… asal dikasih link balik ke sumbernya ya…
bang rosihan: oke dech abang.. ni msh nunggu waktu yg tepat untuk mulai blogging… hehe.
mksh.
Mas bisa bantuin ga ? aku lagi bingung.. mau buat searc dengan multiple checkbox juga..
contohnya
ada 4 check box : music, game, movie, book
kalau user cek music dan game maka data yang di tampilkan cuma music dan game…
apa aku harus buat satu satu query untuk masing2 kondisi cekbox ?
bisa kasi contoh simple ga?
@marchel: silakan anda baca http://blog.rosihanari.net/ide-membuat-script-php-untuk-pencarian-dengan-multi-kategori mas
gimana sih, bntu dong,,,
kalo gak pakai download sama isset bisa gak??
misalnya mau cari kode_ts kan phpnya:
nah kalau cari anggal xxx sampai tgal xxx seperti sintak diatas bisa gak?? mksh