Hi Guys,
I am learning PHP and I am working on search filter from one Table in MySQL but I want to let it choose the table name from drop list which let me choose any table want to make filter on it.
I tried this code but didn’t work with me:
Filter.php:
<html>
<body>
<select name="mytableselect" >
<option value="tablename1"> Table Name 2 </option>
<option value="tablename2"> Table Name 2 </option>
<option value="tablename3"> Table Name 3 </option>
<option value="tablename4"> Table Name 4 </option>
<option value="tablename5"> Table Name 5 </option>
</select>
<div class="container box">
<h1 align="center">Search in Database</h1>
<br />
<div class="table-responsive">
<br />
<div class="row">
<div class="input-daterange">
<div class="col-md-4">
<input type="text" name="start_date" id="start_date" class="form-control" />
</div>
<div class="col-md-4">
<input type="text" name="end_date" id="end_date" class="form-control" />
</div>
</div>
<div class="col-md-4">
<input type="button" name="search" id="search" value="Search" class="btn btn-info" />
</div>
</div>
<br />
<table id="order_data" class="table table-bordered table-striped">
<thead>
<tr>
<th>ID</th>
<th>Temp</th>
<th>Time</th>
<th>Date</th>
<th>Clock</th>
</tr>
</thead>
</table>
</div>
</div>
</body>
</html>
<script type="text/javascript" language="javascript" >
$(document).ready(function(){
$('.input-daterange').datepicker({
todayBtn:'linked',
format: "yyyy-mm-dd",
autoclose: true
});
fetch_data('no');
function fetch_data(is_date_search, start_date='', end_date='', mytableselect='')
{
var dataTable = $('#order_data').DataTable({
"processing" : true,
"serverSide" : true,
"order" : [],
"ajax" : {
url:"fetch.php",
type:"POST",
data:{
is_date_search:is_date_search, start_date:start_date, end_date:end_date, mytableselect:mytableselect
}
}
});
}
$('#search').click(function(){
var start_date = $('#start_date').val();
var end_date = $('#end_date').val();
var mytableselect = $('#mytableselect').val();
if(start_date != '' && end_date !='')
{
$('#order_data').DataTable().destroy();
fetch_data('yes', start_date, end_date, mytableselect);
}
else
{
alert("Both Date is Required");
}
});
});
</script>
Fetch.php:
<?php
//fetch.php
$DATABASE_HOST = 'localhost';
$DATABASE_USER = 'test';
$DATABASE_PASS = '1234';
$DATABASE_NAME = 'test';
// Try and connect using the info above.
$connect = mysqli_connect($DATABASE_HOST, $DATABASE_USER, $DATABASE_PASS, $DATABASE_NAME);
if (!$connect){
die("Connection Failed: ". mysqli_connect_error());
}
if(isset($_POST['search'])){
$mytableselect = $_POST['mytableselect'];
$query="SELECT * FROM $mytableselect ";
$columns = array('id', 'tempr', 'time2', 'Date', 'Clock');
$query = "SELECT * FROM $mytableselect WHERE ";
}
if($_POST["is_date_search"] == "yes")
{
$query .= 'Date BETWEEN "'.$_POST["start_date"].'" AND "'.$_POST["end_date"].'" AND ';
}
if(isset($_POST["search"]["value"]))
{
$query .= '
(id LIKE "%'.$_POST["search"]["value"].'%"
OR tempr LIKE "%'.$_POST["search"]["value"].'%"
OR time2 LIKE "%'.$_POST["search"]["value"].'%"
OR Date LIKE "%'.$_POST["search"]["value"].'%")
';
}
if(isset($_POST["order"]))
{
$query .= 'ORDER BY '.$columns[$_POST['order']['0']['column']].' '.$_POST['order']['0']['dir'].'
';
}
else
{
$query .= 'ORDER BY id DESC ';
}
$query1 = '';
if($_POST["length"] != -1)
{
$query1 = 'LIMIT ' . $_POST['start'] . ', ' . $_POST['length'];
}
$number_filter_row = mysqli_num_rows(mysqli_query($connect, $query));
$result = mysqli_query($connect, $query . $query1);
$data = array();
while($row = mysqli_fetch_array($result))
{
$sub_array = array();
$sub_array[] = $row["id"];
$sub_array[] = $row["tempr"];
$sub_array[] = $row["time2"];
$sub_array[] = $row["Date"];
$sub_array[] = $row["Clock"];
$data[] = $sub_array;
}
function get_all_data($connect)
{
$query = "SELECT * FROM $mytableselect";
$result = mysqli_query($connect, $query);
return mysqli_num_rows($result);
}
$output = array(
"draw" => intval($_POST["draw"]),
"recordsTotal" => get_all_data($connect),
"recordsFiltered" => $number_filter_row,
"data" => $data
);
echo json_encode($output);
?>