- PHP code
include("conn.php"); function pager($rows,$page_size){ global $page,$select_from,$select_limit,$pagenav; $page_count = ceil($rows/$page_size); if($page <= 1 || $page == '') $page = 1; if($page >= $page_count) $page = $page_count; $select_limit = $page_size; $select_from = ($page - 1) * $page_size.','; $pre_page = ($page == 1)? 1 : $page - 1; $next_page= ($page == $page_count)? $page_count : $page + 1 ; $pagenav .= "第 $page/$page_count 页 共 $rows 条记录 "; $pagenav .= "<a href='?page=1'>首页</a> "; $pagenav .= "<a href='?page=$pre_page'>前一页</a> "; $pagenav .= "<a href='?page=$next_page'>后一页</a> "; $pagenav .= "<a href='?page=$page_count'>末页</a>"; $pagenav.=" 跳到<select name='topage' size='1' onchange='window.location=\"?page=\"+this.value'>\n"; for($i=1;$i<=$page_count;$i++){ if($i==$page) $pagenav.="<option value='$i' selected>$i</option>\n"; else $pagenav.="<option value='$i'>$i</option>\n"; } } ///////////////////////////// 利用pager函数计算出 $select_from 从哪条记录开始检索、$pagenav 输出分页导航 $countsql="select * from manager where 0=0"; if ($_POST[chinaname]!=""){ $countsql=$countsql." and chinaname like '%$_POST[chinaname]%'"; } if ($_POST[Tel]!=""){ $countsql=$countsql." and Tel like '%$_POST[Tel]%'"; } $rows = mysql_num_rows(mysql_query($countsql)); $page = $_GET['page']; pager($rows,2); $sql = "select * from manager where 0=0"; if ($_POST[chinaname]!=""){ $sql=$sql." and chinaname like '%$_POST[chinaname]%'"; } if ($_POST[Tel]!=""){ $sql=$sql." and Tel like '%$_POST[Tel]%'"; } $sql=$sql." limit $select_from $select_limit"; echo $sql; $rst = mysql_query($sql); while($row=mysql_fetch_array($rst)){
现在的问题是当我模糊查询没有结果的时候,limit 这里显示的语句就是 limit -2,2
想现在这样的问题,应该在呢么解决呢
------解决方案--------------------
$page_count = ceil($rows/$page_size);
没有结果的时候$rows为0,得到的$page_count 也等于0,所以下面的
$select_from = (0 - 1) * 2 $select_from就得到-2了
你可以在后面加个判断 $page_count为0的时候 不加limit子句