Pertama di Indonesia: "Murottal Al Qur'an + Terjemahan" dalam bentuk CD MP3 Original (Coba dulu FREE)

Pasang banner (468x60) di sini


Dapatkan Script SMS Gateway PHP + MySQL

Seperti: software pengirim SMS massal, SMS survei, SMS polling, SMS quick count, SMS dakwah, Web2SMS dan masih banyak lagi... semuanya berbasis PHP & MySQL
[Info Lengkap...]


Script Cari Data File Yang Terupload Ke MySQL


December 22nd, 2009 | by rosihanari | Cetak Artikel Ini 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

Script PHP Cari File

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.

Script PHP Cari File

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 !!!


Beberapa artikel terkait


Share this article on:

Kata kunci: file search php - script cari file - script php - script php mysql - teknik search file -


Ada 3 komentar dalam artikel ini.

  1. fontie says:

    om, boleh minta tolong gag..
    lagi butuh source codenya digital library nih.. tolong ya om. terima kasih sebelumnya :)

  2. alfine mobile says:

    Ok banget programnya , simple , cepet

    thks

  3. reza says:

    wah. boleh nih script code nya, cuman cara ngedowonload smuanya satu paket bisa gg yah??



Tolong beri komentar donk!

Komentar Anda akan berguna untuk kemajuan blog ini.


Mohon maaf, komentar yang menggunakan email palsu atau komentar bernada negatif atau cemooh secara otomatis akan terhapus karena dianggap spam dan tidak akan tampil dalam daftar komentar.

Dimohon jangan pula memasukkan code program dalam bentuk apapun ke dalam komentar karena akan dianggap spam.

*
Untuk membuktikan bahwa komentar Anda bukan spam, tulis kata yang muncul dalam gambar di bawah ini. Bila Anda tidak bisa membaca kata dalam gambar, klik pada gambar tersebut untuk mendengarkan suara dari kata tersebut
Click to hear an audio file of the anti-spam word