[tanya] Membuat menu pencarian tanggal dengan format indo?


Status
Not open for further replies.

agung

Beginner 1.0
Mau tanya nih, ada yang tau g gimana cara buat menu pencarian tanggal dengan format dd-mm-yyyy? oy ini saya lampirin cuplikan codenya
Code:
<form method=POST action=<? echo 'cari.php'?>>
Cari berdasarkan 
<select name="cmbcari">
<option value="id">ID</option>
<option value="nama">Nama</option>
<option value="tgl">Tanggal Masuk</option>
<input type="text" name="cari" />
<input type="submit" value="Cari"  /></td></tr></form>

<? 
if (empty($_POST[cari])) {
$sql  = "select * from view_detailtransaksi order by id ";
} else {
$sql   = "SELECT * FROM view_detailtransaksi WHERE ".$_POST[cmbcari]." LIKE '%$_POST[cari]%'";
}
$hasil = mysql_query($sql);
Mohon solusinya bagi para master...
 

dpnux

Expert 1.0
aduh mas bahaya banget mas itu.

buat fungsi

PHP:
//multi function numeric dropdown
function drop_down($name, $start, $end)
{
   echo '<select name="$name">';
   for($i = $start; $i < $end; $i++) echo '<option value="$i">$i</option>';
   echo '</select>';
}

kemudian ambil data berdasarkan nama yang didefiniskan tadi ke dalam query (masih berbahaya)

PHP:
$_POST['tahun'].'-'.$_POST['bulan'].'-'.$_POST['tgl']

querynya butuh dituning

PHP:
"SELECT * view_detailtransaksi WHERE tanggal = ' + $_POST['tahun'].'-'.$_POST['bulan'].'-'.$_POST['tgl'] + '"'

bisa dikembangin lagi sih yah mas.
 
Last edited:

dpnux

Expert 1.0
Mhn maaf bisa diterangkan lebih jelas!! Saya msh bingung, udah sy coba tp blm bisa....:77::77::77:

yang kode sebelumya itu untuk drop down list doank.

Hehehe, sori. Saya tidak lihat kalau oom agung mau buat multi search berdasarkan kolom ini, saya sudah bantuin sedikit coba baca logikanya dulu, intinya sih sama cuma pas pencarian selain nama tidak menggunakan LIKE untuk kondisi SQL nya

mudah2an bisa yaaa :)

PHP:
<form method=POST action="cari.php">
	Cari berdasarkan 
	<select name="cmbcari">
	<option value="id">ID</option>
	<option value="nama">Nama</option>
	<option value="tgl">Tanggal Masuk</option>
	<input type="text" name="cari" />
	<input type="submit" value="Cari" />
</form>

<?php
//mengamankan variable - varible dari sql injection
$column = mysql_real_escape_string($_POST['cmbcari']);
$cari = mysql_real_escape_string($_POST['cari']);

//insialisasi variable query
$sql  = "SELECT * FROM view_detailtransaksi ";

if ( ! empty($cari)) 
{	
	$sql  .= " WHERE $column ";

	//sesuaikan kondisi
	if($column == 'nama')
	{
		//kalau kolomnya nama
		$sql .= "LIKE '%$cari%'";
	}	
	else	
	{
		//kalau kolomnya selain nama
		$sql .= "= '$cari'";
	}
}

//ini terserah mau diapain
$sql .= " ORDER BY id";

//tampilkan query yang mau diminta
echo $sql;

$hasil = mysql_query($sql);
 

agung

Beginner 1.0
Trimakasih untuk penjelasanya!!!
Tp mohon maaf saya msh bingung dibagian ini :
Code:
//multi function numeric dropdown
function drop_down($name, $start, $end)
{
   echo '<select name="$name">';
   for($i = $start; $i < $end; $i++) echo '<option value="$i">$i</option>';
   echo '</select>';
}
kemudian ambil data berdasarkan nama yang didefiniskan tadi ke dalam query (masih berbahaya)
$_POST['tahun'].'-'.$_POST['bulan'].'-'.$_POST['tgl']
querynya butuh dituning
"SELECT * view_detailtransaksi WHERE tanggal = ' + $_POST['tahun'].'-'.$_POST['bulan'].'-'.$_POST['tgl'] + '"

itu di taruh dmn y? Mohon maklumnya sy masih belajar....
 

dpnux

Expert 1.0
Sebelumya, contoh reply yang pertama itu karena saya salah baca kebutuhan anda, saya telah revisi dengan yang kedua.

Kode di atas itu yang drop down kalau misalnya ingin menggunakan drop down list pas cari dengan tanggal. Fungsi drop_down di taruh di bawah skrip php, itu akan membuat drop down list kalau di panggil di skrip.

PHP:
drop_down('tgl', 1, 31);
drop_down('bulan', 1, 12);
drop_down('tahun', 2000, 2010);

fungsi drop_down nanti menciptakan kode HTMLnya.

Pada saat form di kirim ke server kode ini

PHP:
$_POST['tahun'].'-'.$_POST['bulan'].'-'.$_POST['tgl']

untuk mengambil variable dari drop down list tadi.

Kalau yang kode terakhir JIKA ingin menggunakan dropdown list untuk mencari data pada database berdasarkan tanggal dari database.

Jadi alurnya:
  • Tambah fungsi dropdown di bawah skrip
  • Gunakan fungsi pada skrip tsb
  • Ambil data melalui $_POST sesuai dengan nama yang ditentukan di drop_down
  • Query ke SQL berdasarkan variable - variable tanggal

Jika bingung mohon gunakan kode kedua ya.
 
Last edited:

agung

Beginner 1.0
Code:
<form method=POST action="cari.php"> 
    Cari berdasarkan  
    <select name="cmbcari"> 
    <option value="id">ID</option> 
    <option value="nama">Nama</option> 
    <option value="tgl">Tanggal Masuk</option> 
    <input type="text" name="cari" /> 
    <input type="submit" value="Cari" /> 
</form> 

<?php 
//mengamankan variable - varible dari sql injection 
$column = mysql_real_escape_string($_POST['cmbcari']); 
$cari = mysql_real_escape_string($_POST['cari']); 

//insialisasi variable query 
$sql  = "SELECT * FROM view_detailtransaksi "; 

if ( ! empty($cari))  
{     
    $sql  .= " WHERE $column "; 

    //sesuaikan kondisi 
    if($column == 'nama') 
    { 
        //kalau kolomnya nama 
        $sql .= "LIKE '%$cari%'"; 
    }     
    else     
    { 
        //kalau kolomnya selain nama 
        $sql .= "= '$cari'"; 
    } 
} 

//ini terserah mau diapain 
$sql .= " ORDER BY id"; 

//tampilkan query yang mau diminta 
echo $sql; 

$hasil = mysql_query($sql);
code di atas sudah saya coba!!!
Yang saya tanyakan disini-----
Bagaiman cara merubah format "yyyy-mm-dd" tanggal dari menu pencarian ke fomat "dd-mm-yyyy"
mhn bantuanya lagi.....
 

dpnux

Expert 1.0
code di atas sudah saya coba!!!
Yang saya tanyakan disini-----
Bagaiman cara merubah format "yyyy-mm-dd" tanggal dari menu pencarian ke fomat "dd-mm-yyyy"
mhn bantuanya lagi.....

PHP:
function reverse_date($input, $separator)
{
$date = implode($separator, array_reverse(explode($separator, $input)));
$new_date = array_reverse($date);
return implode($separator, $new_date);
}

Kode di atas akan membalik dari dd-mm-yyyy ke yyyy-mm-dd, atau sebaliknya. Di masukan pada saat pencarian selain nama, tambahan untuk kode di atas:

PHP:
if($column == 'tgl') $cari = reverse_date($cari, '-');
$sql .= "= '$cari'";
 

agung

Beginner 1.0
Mhn maaf saya bertanya lagi....
CODE sudah saya coba!!!
Tp saya coba ada mslh di :
Code:
........
$new_date = array_reverse($date);
return implode($separator, $new_date);
}
bunyinya begini :
Warning: array_reverse() [function.array-reverse]: The argument should be an array in C:\AppServ\.....
Warning: implode() [function.implode]: Bad arguments. in C:\AppServ\......
Mhn maaf sy bener2 tidak tau. sudah saya cari reverensi di INET tp blm dpt...
 

dpnux

Expert 1.0
Ups ada kode yang lupa saya hapus, ini yang benar. Tadi saya buat one liner tapi saya pecah supaya bisa dipahami. trims.

PHP:
function reverse_date($input, $separator)
{
$date = explode($separator, $input);
$new_date = array_reverse($date);
return implode($separator, $new_date);
}
 
Status
Not open for further replies.

Top