【发布时间】:2016-11-03 14:13:56
【问题描述】:
<script type="text/javascript" src="js/table.js"></script>
<?php include('auth.php');
error_reporting(0);
include("config.php");
ob_start();
include_once ('function.php');
$page = (int) (!isset($_GET["page"]) ? 1 : $_GET["page"]);
$limit = 25;
$startpoint = ($page * $limit) - $limit;
if(strtolower(trim($type))=='new'){
$table = 'user_tbl';
}else{
$table = 'old_users';
}
$statement = "`$table` ";
?>
<section id="main">
<!-- <table width="817" class="example table-autopage:20 table-stripeclass:alternate" id="page">-->
<form name="bulk_action_form" action="dltaction.php" method="post" onSubmit="return delete_confirm();"/>
<table class="TFtable">
<thead>
<tr>
<th><input type="checkbox" name="select_all" id="select_all" value=""/> </th>
<th>Name<input name="filter" onkeyup="Table.filter(this,this)">
<br></th>
<th>Contact Number</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<?php
$stmt="SELECT * FROM (SELECT id, name, cont, email, 'new' as type FROM user_tbl UNION ALL SELECT id, name, cont, email, 'old' as type FROM old_users ) as t ORDER BY id DESC LIMIT {$startpoint} , {$limit}";
$result=mysqli_query($con , $stmt);
$count=0;
while($row=mysqli_fetch_array($result)) {
$count=$count+1;
$_SESSION['sess_type'] = $row['type'];
$_SESSION['sess_id'] = $row['id'];
?>
<tr>
<td align="center">
<input type="text" name="type" value="<?php echo $row['type']; ?>" hidden />
<input type="checkbox" name="checked_id[]" class="checkbox" value="<?php echo $row['id'].'_'.$row['type']; ?>"/></td>
<td><?php echo $row['name']; ?> <b>( <?php echo $row['type']; ?>) </b></td>
<td><?php echo $row['cont']; ?></td>
<td><?php echo $row['email']; ?></td>
<td><?php echo $row['apr']; ?></td>
</tr>
<?php } ?>
</tbody>
<tfoot>
<td colspan="9"><?php
echo pagination($statement,$limit,$page);
?> </td></tfoot>
</table>
<input type="submit" class="btn btn-danger" name="bulk_delete_submit" value="Delete"/>
</form>
</section>
函数.php
<?php
function pagination($query, $per_page = 10,$page = 1, $url = '?'){
$con = mysqli_connect("localhost","root","","mytbl");
$query = mysqli_query($con,"SELECT COUNT(*) as `num` FROM {$query}");
$row = mysqli_fetch_array($query);
$total = $row['num'];
$adjacents = "2";
$page = ($page == 0 ? 1 : $page);
$start = ($page - 1) * $per_page;
$prev = $page - 1;
$next = $page + 1;
$lastpage = ceil($total/$per_page);
$lpm1 = $lastpage - 1;
$pagination = "";
if($lastpage > 1)
{
$pagination .= "<ul class='pagination'>";
$pagination .= "<li class='details'>Page $page of $lastpage</li>";
if ($lastpage < 7 + ($adjacents * 2))
{
for ($counter = 1; $counter <= $lastpage; $counter++)
{
if ($counter == $page)
$pagination.= "<li><a class='current'>$counter</a></li>";
else
$pagination.= "<li><a href='{$url}page=$counter'>$counter</a></li>";
}
}
elseif($lastpage > 5 + ($adjacents * 2))
{
if($page < 1 + ($adjacents * 2))
{
for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
{
if ($counter == $page)
$pagination.= "<li><a class='current'>$counter</a></li>";
else
$pagination.= "<li><a href='{$url}page=$counter'>$counter</a></li>";
}
$pagination.= "<li class='dot'>...</li>";
$pagination.= "<li><a href='{$url}page=$lpm1'>$lpm1</a></li>";
$pagination.= "<li><a href='{$url}page=$lastpage'>$lastpage</a></li>";
}
elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
{
$pagination.= "<li><a href='{$url}page=1'>1</a></li>";
$pagination.= "<li><a href='{$url}page=2'>2</a></li>";
$pagination.= "<li class='dot'>...</li>";
for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
{
if ($counter == $page)
$pagination.= "<li><a class='current'>$counter</a></li>";
else
$pagination.= "<li><a href='{$url}page=$counter'>$counter</a></li>";
}
$pagination.= "<li class='dot'>..</li>";
$pagination.= "<li><a href='{$url}page=$lpm1'>$lpm1</a></li>";
$pagination.= "<li><a href='{$url}page=$lastpage'>$lastpage</a></li>";
}
else
{
$pagination.= "<li><a href='{$url}page=1'>1</a></li>";
$pagination.= "<li><a href='{$url}page=2'>2</a></li>";
$pagination.= "<li class='dot'>..</li>";
for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
{
if ($counter == $page)
$pagination.= "<li><a class='current'>$counter</a></li>";
else
$pagination.= "<li><a href='{$url}page=$counter'>$counter</a></li>";
}
}
}
if ($page < $counter - 1){
$pagination.= "<li><a href='{$url}page=$next'>Next</a></li>";
$pagination.= "<li><a href='{$url}page=$lastpage'>Last</a></li>";
}else{
$pagination.= "<li><a class='current'>Next</a></li>";
$pagination.= "<li><a class='current'>Last</a></li>";
}
$pagination.= "</ul>\n";
}
return $pagination;
}
?>
这是我的桌子。在这里,我想搜索一个单独的列名,我使用了 table.js,它可以帮助我进行搜索,但是在使用分页后,它只有助于从当前页面而不是整个表中搜索。我已经使用过数据表,但是造成了一些问题,所以我删除了它。我如何使用这段代码从整个表中搜索?
【问题讨论】:
-
查看这个例子:
https://datatables.net/examples/api/multi_filter.html -
我已经使用过了,但是它让我的表格很笨拙,并且需要很长时间才能加载所有数据..
-
@Pooojaaaa 你试过这样吗:datatables.net/examples/api/multi_filter.html
标签: php mysqli pagination