Ⅰ 關於php多條件模糊查詢後分頁問題!
<?php
define('IN_JOBS', true);
require_once("./cc_include/common.php");
require_once("./cc_include/page.class.php");
require_once("./cc_include/page_function.php");
require_once("./cc_include/Site_Config.php");
//載入smarty模板
$smarty = new Smarty();
$smarty->template_dir="./templates/default/";
$smarty->compile_dir="./templates_c/default/";
$smarty->cache_dir=CACHE_PATH;
$smarty->left_delimiter="{*";
$smarty->right_delimiter="*}";
$smarty->caching=false;
//開始跑首頁信息
$Gonggao=News(1, 5);
//以上信息為公告和右側的兩個新聞
if (isset($_GET['sousuo'])) $searchname = $_GET['sousuo'];//得到搜索關鍵詞
else if (isset($_POST['sousuo'])) $searchname = $_POST['sousuo'];
if(!isset($searchname))
{
echo "<script>location.href='index.php';</script>";
}
$typename=$_POST['type'];
$shijian=$_POST['rboname'];
$xitongshijian=date("Y-m-d");//獲得系統當前時間
$jianyitian=date('Y-m-d H:i:s',strtotime("$a-1 day"));//減去一天時間
$jiansantian=date('Y-m-d',strtotime("$a-3 day"));//減去三天時間
$jianqitian=date('Y-m-d',strtotime("$a-7 day"));//減去7天時間
switch($typename)
{
case "職位名":
if($shijian=="")
{
$tiaojian="Shenhe=1 and Gzxx like '%".$searchname."%' order by Adddate desc";
}
else if($shijian=="近一天")
{
$tiaojian="Shenhe=1 and Gzxx like '%".$searchname."%' and Adddate between '".$jianyitian."' and '".$xitongshijian."' order by Adddate desc";
}
else if($shijian=="近三天")
{
$tiaojian="Shenhe=1 and Gzxx like '%".$searchname."%' and Adddate between '".$jiansantian."' and '".$xitongshijian."' order by Adddate desc";
}
else if($shijian=="近一星期")
{
$tiaojian="Shenhe=1 and Gzxx like '%".$searchname."%' and Adddate between '".$jianqitian."' and '".$xitongshijian."' order by Adddate desc";
}
break;
case "工作時間":
if($shijian=="")
{
$tiaojian="Shenhe=1 and Gzsj like '%".$searchname."%' order by Adddate desc";
}
else if($shijian=="近一天")
{
$tiaojian="Shenhe=1 and Gzsj like '%".$searchname."%' and Adddate between '".$jianyitian."' and '".$xitongshijian."' order by Adddate desc";
}
else if($shijian=="近三天")
{
$tiaojian="Shenhe=1 and Gzsj like '%".$searchname."%' and Adddate between '".$jiansantian."' and '".$xitongshijian."' order by Adddate desc";
}
else if($shijian=="近一星期")
{
$tiaojian="Shenhe=1 and Gzsj like '%".$searchname."%' and Adddate between '".$jianqitian."' and '".$xitongshijian."' order by Adddate desc";
}
break;
}
$perNumber=5; //每頁顯示的記錄數
$page=$_GET['page']; //獲得當前的頁面值
$count=mysql_query("select count(*) from ejz_wor where ".$tiaojian.""); //獲得記錄總數
$rs=mysql_fetch_array($count);
$totalNumber=$rs[0];
$totalPage=ceil($totalNumber/$perNumber); //計算出總頁數
if (!isset($page)) {
$page=1;
} //如果沒有值,則賦值1
$startCount=($page-1)*$perNumber; //分頁開始,根據此方法計算出開始的記錄
$sql="select Wor_id,Gzxx,Zprs,Gzsj,Gzyq,Daiyu,Adddate,jipin from ejz_wor where ".$tiaojian." limit $startCount,$perNumber";
$result=mysql_query($sql);
while ($row=mysql_fetch_object($result))
{
?>
<ul>
<li><div class="kf_xian" align="left"><? echo "$row->Gzxx"?> <a href="#" style="text-align:left"><? echo "$row->Gzsj"?></a></div></li>
<li><? echo "$row->Daiyu"?></li>
<li>管理員回復:<? echo "$row->Adddate"?></li>
</ul>
<?
}
if ($page != 1) { //頁數不等於1
?>
<?php echo "總共".$totalPage."頁,";?>
<a href="wj.php?page=<?php echo $page - 1;?>&sousuo=<?php echo $searchname;?>">上一頁</a> <!--顯示上一頁-->
<?php
}
for ($i=1;$i<=$totalPage;$i++) { //循環顯示出頁面
?>
<a href="wj.php?page=<?php echo $i;?>&sousuo=<?php echo $searchname;?>"><?php echo $i ;?></a>
<?php
}
if ($page<$totalPage) { //如果page小於總頁數,顯示下一頁鏈接
?>
<a href="wj.php?page=<?php echo $page + 1;?>&sousuo=<?php echo $searchname;?>">下一頁</a>
<?php
}
?>
Ⅱ php 程序可以輸入不同條件查詢mysql,如何分頁
從結果上看,你是沒把input的參數過過去
如果你用$_SERVER['REQUEST_URI'];來做分頁,要注意
1.所有參數都要用get方式,接收也用$_GET方式
2.判斷url里是否有page參數,沒有就加上,有就用變數替換
Ⅲ PHP中模糊查詢後實現分頁時,只顯示第一頁信息,之後的頁面信息不顯示,求類似問題解決方法最好有代碼,謝
如:select * from tablename where 條件 limit 0,10
這句話的意思是只取搜索到的前10條記錄,分頁的關鍵就是要控制limit後面的兩個數字
0代表從第0條記錄謹爛慧開始,10代表取10條數據(也就是一頁裡面歷卜有幾條記錄),這條語句相當於是分祥答頁的第一頁,要獲取第二頁的語句是:select * from tablename where 條件 limit 10,10,要獲取第三頁的語句是:select * from tablename where 條件 limit 20,10。以此類推,得到後面的頁。當然不可能是手動填寫那兩個數字,需要用變數控制,如:select * from tablename where 條件 limit $page,$page_size 。具體還需要你動手去實踐了,加油吧。
Ⅳ thinkphp自帶的分頁 查詢數據時怎麼使用where條件
$count=$User->where($map)->count();//查詢滿足要求的總記錄數
$Page=newThinkPage($count,25);//實例化分頁類傳入總記錄數和每頁顯示的記錄數
//分頁跳轉的時候保證查詢條件
foreach($mapas$key=>$val){
$Page->parameter[$key]=urlencode($val);
}
$show=$Page->show();//分頁顯示輸出
2.如果是GET查詢方式,將查詢條件傳給where
$where=$_GET;
$User=M('User');//實例化User對象
//進行分頁數據查詢注意page方法的參數的前面部分是當前的頁數使用$_GET[p]獲取
$list=$User->where($where)->order('create_time')->page($_GET['p'].',25')->select();
$this->assign('list',$list);//賦值數據集
$count=$User->where('status=1')->count();//查詢滿足要求的總記錄數
$Page=newThinkPage($count,25);//實例化分頁類傳入總記錄數和每頁顯示的記錄數
$show=$Page->show();//分頁顯示輸出
$this->assign('page',$show);//賦值分頁輸出
$this->display();//輸出模板
Ⅳ PHP顯示很多資料庫信息,如何自動分頁呢代碼
PHP代碼如下:
/*
Author:默默
Date :2006-12-03
*/
$page=isset($_GET['page'])?intval($_GET['page']):1; //這句就是獲取page=18中的page的值,假如不存在page,那麼頁數就是1。
$num=10; //每頁顯示10條數據
$db=mysql_connect("host","name","pass"); //創建資料庫連接
$select=mysql_select_db("db",$db); //選擇要操作的資料庫
/*
首先咱們要獲取資料庫中到底有多少數據,才能判斷具體要分多少頁,具體的公式就是
總數據數除以每頁顯示的條數,有餘進一。
也就是說10/3=3.3333=4 有餘數就要進一。
*/
$total=mysql_num_rows(mysql_query("select id from table")); //查詢數據的總數,id是資料庫中的一個自動賦值的欄位
$pagenum=ceil($total/$num); //獲得總頁數
//假如傳入的頁數參數大於總頁數,則顯示錯誤信息
If($page>$pagenum || $page == 0){
Echo "Error : Can Not Found The page .";
Exit;
}
$offset=($page-1)*$num; //獲取limit的第一個參數的值,假如第一頁則為(1-1)*10=0,第二頁為(2-1)*10=10。
$info=mysql_query("select name from table limit $offset,$num"); //獲取相應頁數所需要顯示的數據,name是數據里的一個欄位
While($it=mysql_fetch_array($info)){
Echo $it['name']."
";
} //顯示數據
For($i=1;$i<=$pagenum;$i++){
$show=($i!=$page)?"$i":"$i";
Echo $show." ";
}
/*顯示分頁信息,假如是當頁則顯示粗體的數字,其餘的頁數則為超連接,假如當前為第三頁則顯示如下
1 2 3 4 5 6
*/
?>