天天看點

原生PHP分頁 多條件 單條件搜尋

php多功能搜尋+加分頁 代碼簡單,精簡

  • 靜态頁面
<input  type="search"  placeholder="模糊搜尋" name="search"  value="<?php echo empty($_GET['search'])?'':$_GET['search'];?>"/>
	
	
	                </form>
	
	                 <form action="fenye.php"  method="get">
		                           <button  name="yes" value="是" >我的客戶(是)</button>
								   <button  name="no"  value="否">停用客戶(否)</button>
								   <button  name="my" value="管理者 元程浩" >我的客戶</button>
		             </form>
</body>
           

**

php代碼

  • 接收值
    //提示Notice:Undefined varialbe:tmp_i 
     	    //在程式開頭加一句
     	   error_reporting(E_ALL ^ E_NOTICE); 
            
             $dbhost = 'localhost:3306'; 
             $dbuser = 'root';           
             $dbpass = '密碼';       
             $conn = mysqli_connect($dbhost, $dbuser, $dbpass);
    
    
     mysqli_query($conn , "set names utf8");
     
     mysqli_select_db( $conn, '資料庫' );
     
     $pagesize=2; 
     $p=isset($_GET['p'])?$_GET['p']:1;//目前頁數,預設為1
     $offset = ($p-1)*$pagesize;
     
     @$search=$_GET['search'];
     
     @$yes=$_GET['yes'];
     
     @$no=$_GET['no'];
     
     @$my=$_GET['my'];
               
  • 判斷
    if(!empty($search)){
    
          $query[]="name LIKE '%$search%' or type LIKE '%$search%' or company LIKE '%$search%' or telephone LIKE   '%$search%' or star LIKE '%$search%' or number LIKE '%$search%' or money LIKE '%$search%' or collection LIKE '%$search%'";
     
     $urllist[]="search=".$_GET['search'];
    
         }
    
    
    
        if($yes){
     	
     	  $query[]="star like  '%$yes%'";
    
        $urllist[]="yes=".$_GET['yes'];
     }
     
     
     
     if($no){
     	 
     	$query[]="star like  '%$no%'";
    
         $urllist[]="no=".$_GET['no'];
     }
     
     if($my){
     	
     	$query[]="person like  '%$my%'";
     	      $urllist[]="my=".$_GET['my'];
    
    
     }
               
  • 查尋的資訊輸出
    if(count($query)>0){
                        	$where=" where ".implode(" and ",$query);
                        	 $url='&'.implode('&',$urllist);
     				  }
               
  • 分頁
    $abs = "select  count(*) nums FROM message   $where";
         $count_result = mysqli_query($conn,$abs);
    $count_array = mysqli_fetch_array($count_result);
      $pagenum=ceil($count_array['nums']/$pagesize);
    
    
     	echo '<p>' , '總記錄數:', $count_array['nums'] , ',',
     	 '顯示 &nbsp' , $offset+1 , '~' , $offset+$pagesize , '</p>';
     
     	$prepage=$p-1;
                             
     	if($p==1){
     	    $prepage=1;                         
     	    }
     
     	$nextpage=$p+1;
     
     	if($p==$pagenum){
     	    $nextpage=$pagenum;                
     	    }
     	
     if ($pagenum > 1) {
     	echo " <a href='fenye.php?p=1{$url}'>首頁</a>"; // 第一頁
     	echo "<a href='fenye.php?p={$prepage}{$url}'>上一頁</a>";
     
         for($i=1;$i<=$pagenum;$i++) {
             if($i==$p) {
     				
                 echo ' [',$i,']';
     			
     					
     
             }  else {
                 echo " <a href='fenye.php?p=$i{$url}'> $i </a>";
     
             } 
     		
     	
     				
         }
     
     	echo "<a href='fenye.php?p={$nextpage}{$url}'>下一頁</a>";
     	echo "<a href='fenye.php?p=$pagenum{$url}'>尾頁</a>"; // 最後一頁
     
     					
     					
     }
     
     mysqli_close($conn);
               
  • 完全代碼如下

    -

    <input  type="search"  placeholder="模糊搜尋" name="search"  value="<?php echo empty($_GET['search'])?'':$_GET['search'];?>"/>
     		
     		
     		                </form>
     		
     		                 <form action="fenye.php"  method="get">
     			                           <button  name="yes" value="是" >我的客戶(是)</button>
     									   <button  name="no"  value="否">停用客戶(否)</button>
     									   <button  name="my" value="管理者 元程浩" >我的客戶</button>
     			             </form>
     	</body>
     </html>
     
     <?php
     	error_reporting(E_ALL ^ E_NOTICE); 
     $dbhost = 'localhost:3306'; 
     $dbuser = 'root';           
     $dbpass = 'root';       
     $conn = mysqli_connect($dbhost, $dbuser, $dbpass);
     
     
     mysqli_query($conn , "set names utf8");
     
     mysqli_select_db( $conn, 'xhxt' );
     
     $pagesize=2; 
     $p=isset($_GET['p'])?$_GET['p']:1;//目前頁數,預設為1
     $offset = ($p-1)*$pagesize;
     
     @$search=$_GET['search'];
     
     @$yes=$_GET['yes'];
     
     @$no=$_GET['no'];
     
     @$my=$_GET['my'];
     
     $query=array();
     $urllist=array();
     
     if(!empty($search)){
     	 
                  $query[]="name LIKE '%$search%' or type LIKE '%$search%' or company LIKE '%$search%' or telephone LIKE   '%$search%' or star LIKE '%$search%' or number LIKE '%$search%' or money LIKE '%$search%' or collection LIKE '%$search%'";
     	
        $urllist[]="search=".$_GET['search'];
     
     }
     
      
     	 
     	    if($yes){
     	    	
     	    	  $query[]="star like  '%$yes%'";
     
                $urllist[]="yes=".$_GET['yes'];
     	    }
     	    
     	    
     	    
     	    if($no){
     	    	 
     	    	$query[]="star like  '%$no%'";
     
                 $urllist[]="no=".$_GET['no'];
     	    }
     	    
     	    if($my){
     	    	
     	    	$query[]="person like  '%$my%'";
     	    	      $urllist[]="my=".$_GET['my'];
     
     
     	    }
     	    $where="";
     	      if(count($query)>0){
     	                       	$where=" where ".implode(" and ",$query);
     	                       	 $url='&'.implode('&',$urllist);
     						
     	                         }
     
     
     	   $sql="select *  FROM  message   $where   LIMIT  $offset , $pagesize";           
                 $retval = mysqli_query( $conn,$sql);
        		    
     		echo '<table > <tr>
     <th>客戶名稱</th><th>所屬人</th><th>客戶類型 </th><th>客戶機關</th><th>聯系手機</th><th>是否标★</th><th>合同數 </th><th>銷售總額 </th><th>待收金額  </th><th>最後跟進 </th>
      </tr>';
     		while($row=mysqli_fetch_array($retval))
     		{
     		    echo 
     		         "<td>{$row['name']} </td> ".
     		         "<td>{$row['person']} </td> ".
     		         "<td>{$row['type']} </td> ".
     		          "<td>{$row['company']} </td> ".
     		           "<td>{$row['telephone']} </td> ".
     		            "<td>{$row['star']} </td> ".
     		             "<td>{$row['number']} </td> ".
     		              "<td>{$row['money']} </td> ".
     		               "<td>{$row['collection']} </td> ".
     		                "<td>{$row['time']} </td> ".
     		         "</tr>";
     		}
     		echo '</table>';
     		    	
     		  	 
     		  	 
     		  	 //分頁
     		  	 
     		    $abs = "select  count(*) nums FROM message   $where";
     		    $count_result = mysqli_query($conn,$abs);
            $count_array = mysqli_fetch_array($count_result);
              $pagenum=ceil($count_array['nums']/$pagesize);
     
     	
     	echo '<p>' , '總記錄數:', $count_array['nums'] , ',',
     	 '顯示 &nbsp' , $offset+1 , '~' , $offset+$pagesize , '</p>';
     
     	$prepage=$p-1;
                             
     	if($p==1){
     	    $prepage=1;                         
     	    }
     
     	$nextpage=$p+1;
     
     	if($p==$pagenum){
     	    $nextpage=$pagenum;                
     	    }
     	
     if ($pagenum > 1) {
     	echo " <a href='fenye.php?p=1{$url}'>首頁</a>"; // 第一頁
     	echo "<a href='fenye.php?p={$prepage}{$url}'>上一頁</a>";
     
         for($i=1;$i<=$pagenum;$i++) {
             if($i==$p) {
     				
                 echo ' [',$i,']';
     			
     					
     
             }  else {
                 echo " <a href='fenye.php?p=$i{$url}'> $i </a>";
     
             } 
     		
     	
     				
         }
     
     	echo "<a href='fenye.php?p={$nextpage}{$url}'>下一頁</a>";
     	echo "<a href='fenye.php?p=$pagenum{$url}'>尾頁</a>"; // 最後一頁
     
     					
     					
     }
     
     mysqli_close($conn);
     ?>