Beli Modem Wavecom Untuk SMS Gateway. FREE E-book Gammu + FREE Ongkos kirim !!
Ingin Punya Script SMS Gateway dengan PHP + MySQL?

Dapatkan segera phpSMS V3.0, software SMS Gateway multi fungsi berbasis web buatan saya sendiri untuk keperluan Anda.
[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 !!!

VN:F [1.9.3_1094]
Rating: 8.7/10 (3 votes cast)
Script Cari Data File Yang Terupload Ke MySQL, 8.7 out of 10 based on 3 ratings
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


Share this article on:

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


Ada 12 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??

  4. solanang says:

    siiiiiiiiiiiiiip Brow

  5. asdur says:

    pak, bagai mana sintak php pencarian jika yang di cari adalah tanggal terbaru dari suatu tabel. terimakasih

  6. Comsky says:

    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. :)

  7. Comsky says:

    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,

  8. rosihanari says:

    @comsky: boleh aja bang… asal dikasih link balik ke sumbernya ya…

  9. comsky says:

    bang rosihan: oke dech abang.. ni msh nunggu waktu yg tepat untuk mulai blogging… hehe.
    mksh.

  10. marchel says:

    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?

  11. RISTA says:

    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



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.

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word