Free Ebook Tutorial from Rosihan Ari's Blog

Ebook Javascript | Ebook PHP | Ebook AJAX | Ebook CSS | Ebook FPDF | Ebook Wordpress | Ebook Java SE


Produk yang direkomendasikan untuk Anda
Video Tutorial Pemrograman Web


Script Cari Data File Yang Terupload Ke MySQL


December 22nd, 2009 | by rosihanari |


Jual kaos

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




Share ke Facebook Share ke Twitter
Baca Juga Artikel Terkait
Script Proses Edit File Yang Telah Diupload Ke Database MySQL
Ide Membuat Script PHP untuk Pencarian dengan Multi Kategori
Editing Data Tanggal via Form dengan PHP
Script PHP Menampilkan Hasil Pencarian Multikategori dengan Advanced Paging
Script Multiple File Upload Dengan PHP

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


 

Komentar Anda ...