2016-05-20 3 views
0

Я проектирую сайт недвижимости, и у меня есть окно поиска на моей первой странице, которое позволяет моим пользователям решать, что именно они хотят, например, они могут сузить свои варианты аренды или покупки или других вещей. Мой код работает отлично, и моя разбивка на страницы работает до степени разбивки страниц равномерно и вычисляет, сколько страниц должно быть, а первая страница страницы отображается без ошибок. Но моя проблема начинается, когда я нажимаю далее или нажимаю на странице X. Когда я выбираю другую страницу, кроме страницы 1, я не получаю никаких результатов. Я думаю, что php не может запомнить опубликованные формы. Вот мой код:pagination search results

config.php

<?php 
$db_host="localhost"; 
$db_user="root"; 
$db_pass=""; 
$db_name="realstate"; 
$db_table="agahi"; 
$connect = mysqli_connect("localhost", "root", "", "realstate"); 
mysqli_query($connect,"SET NAMES 'utf8'"); 
mysqli_query($connect,"SET character_set_connection='utf8'"); 
if(mysqli_connect_errno()){ 
    die("unable to connect".mysqli_connect_errno()); 
} 
$setting = array(
'paged_item' => 2 
); 
?> 

search.php

<!DOCTYPE html> 
<html> 
    <head> 
     <title>PHP HTML TABLE DATA SEARCH</title> 
<style> 
@charset "uft-8"; 
@import url('reset.css'); 
body { 

font-family: Verdana, Helvetica, Arial, sans-serif; 
background-color: #e2edff; 
line-height: 125%; 
padding: 15px; 
font-size=13px; 

} 
</style>   
<link rel="stylesheet" href="paged_style.css"> 
</head> 
<body> 

      <form action="" method="post">  
<select name="valueToSearch1" style="width: 136px;"> 
    <option value="" disabled selected hidden>choose</option> 
    <option name="" value="buy">buy</option> 
    <option name="" value="rent">rent</option> 
</select> 
<div dir="rtl" style="margin-top:10px; style="text-align: right" >  
    <input type='submit' name='search' value='Search' ></br></br></br> 
</div> 
      </form> 
<?php 
include("config.php"); 
if(isset($_POST['search'])) 
{ 
    $valueToSearch1 = $_POST['valueToSearch1']; 


@$page = mysql_real_escape_string($_GET['page']); 


if(empty($page)){ 

    $page = 1; 
} 
$start = ($page - 1) * $setting['paged_item']; 

$quer = "SELECT*FROM ".$db_table." WHERE 
`case` LIKE '%".$valueToSearch1."%' ORDER BY ID ASC LIMIT $start, ".$setting['paged_item'].""; 
$query=mysqli_query($connect,$quer) 
or die(mysqli_error()); 
//pagination 
$total = "SELECT*FROM ".$db_table." WHERE 
`case` LIKE '%".$valueToSearch1."%'"; 
$totalll = mysqli_query($connect,$total) 
or die(mysqli_error()); 
$count = mysqli_num_rows($totalll); 
echo $count; 
if($count - $setting['paged_item'] > 0){ 
    $paged_total = ceil($count/$setting['paged_item']); 
    echo $paged_total; 
    $paged_last = $paged_total; 
    echo $paged_last; 
    $paged_middle = $page + 4; 
    $paged_start = $paged_middle - 4; 

    if($page > 1){ 

     $paged_result = '<div class="paged-link"><a href="search.php?page=1" title="first page"</a></div>'."\n";        
    } 
    else{ 
     $paged_result = '<div class="paged-link-off">first</div>'."\n";         
    } 

    if($page > 1){ 
     $paged_perv = $page - 1; 
     $paged_result .= '<div class="paged-link"><a href="searchch.php?page='.$paged_perv.'" title="provious page"</a></div>'."\n"; 
    } 
    else{ 
     $paged_result .= '<div class="paged-link-off">previous</div>'."\n"; 
    } 

    for ($i=$paged_start-2; $i<=$paged_middle; $i++){ 
     if ($i > 0 && $i <= $paged_last){ 

      if($i == $page){ 
       $paged_result .= '<div class="paged-link-selected"><a href="search.php?page='.$i.'" title="page '.$i.'">'.$i.'</a></div>'."\n"; 
      } 

      else{ 
       $paged_result .= '<div class="paged-link"><a href="search.php?page='.$i.'" title="page '.$i.'">'.$i.'</a></div>'."\n"; 
      } 
     } 
    } 

    if($page <= $paged_last - 1){ 
     $paged_next = $page + 1; 
     $paged_result .= '<div class="paged-link"><a href="search.php?page='.$paged_next.'" title="next page"</a></div>'."\n"; 
    } 
    else{ 
     $paged_result .= '<div class="paged-link-off">Next</div>'."\n"; 
    } 

    if($page <= $paged_last - 1){ 
     $paged_result .= '<div class="paged-link"><a href="search.php?page='.$paged_last.'" title="final page"</a></div>'."\n"; 
    } 
    else{ 
     $paged_result .= '<div class="paged-link-off">final</div>'."\n"; 
    } 
    $paged_result .= '<div class="paged-link-info">&raquo; page: '.$page.' out of '.$paged_total.'</div>'."\n"; 

    echo $paged_result; 
} 
} 
?> 
<table > 


     <!-- populate table from mysql database --> 
       <?php while($row = mysqli_fetch_array($query)):?> 
       <tr> 

          <th> <?php echo $row['case'];?> 

       </tr> 
       <?php endwhile;?> 
      </table> 

    </body> 
</html> 
+0

Не используйте '$ _POST' для нумерацией страниц. Используйте '$ _GET'. Таким образом, страницам можно напрямую обращаться через адресную строку без физического щелчка по кнопке. – Marcus

+0

спасибо. Я изменил $ _POST на $ _GET. но все же, когда я нажимаю дальше или нажимаю на странице X. или выбираю другую страницу, кроме страницы 1, я не получаю результатов. вы можете мне помочь немного больше – Malekian

ответ

0

вы должны отправить найденный текст на следующей странице. Вы можете добавить параметр в ссылку следующим образом:

$paged_result .= '<div class="paged-link"><a href="search.php?page='.$paged_last.'&valueToSearch1='.$valueToSearch1.'" title="final page"</a></div>'."\n"; 

Добавьте к каждой ссылке страниц у вас есть: &valueToSearch1='.$valueToSearch1

+0

Большое спасибо, я редактирую свой код, но все же я не получаю результатов с других страниц, кроме страницы 1. вот мой новый код – Malekian

+0

да он работает. код полностью работает. – Malekian

1

<!DOCTYPE html> 
 
<html> 
 
    <head> 
 
     <title>PHP HTML TABLE DATA SEARCH</title> 
 
<style> 
 
@charset "uft-8"; 
 
@import url('reset.css'); 
 
body { 
 
\t 
 
font-family: Verdana, Helvetica, Arial, sans-serif; 
 
background-color: #e2edff; 
 
line-height: 125%; 
 
padding: 15px; 
 
font-size=13px; 
 

 
} 
 

 
</style> 
 
\t \t 
 
<link rel="stylesheet" href="paged_style.css"> 
 
    </head> 
 
    <body> 
 
\t <form action="" method="GET">  
 
\t <select name="valueToSearch1" style="width: 136px;"> 
 
    <option value="" disabled selected hidden>choose</option> 
 
    <option name="" value="buy">buy</option> 
 
    <option name="" value="rent">rent</option> 
 
</select> 
 
<div dir="rtl" style="margin-top:10px; style="text-align: right" > \t \t 
 
      <input type="submit" name="search" value="search" ><br><br> 
 
      </div> 
 
\t \t \t </form> 
 
\t \t \t 
 
<?php 
 
error_reporting(0); 
 

 
include("config.php"); 
 
if(isset($_GET['search'])) 
 
{ 
 
    $valueToSearch1 = $_GET['valueToSearch1']; 
 

 

 
@$page = mysql_real_escape_string($_GET['page']); 
 

 

 
if(empty($page)){ 
 
\t 
 
\t $page = 1; 
 
} 
 
$start = ($page - 1) * $setting['paged_item']; 
 

 

 
$quer = "SELECT*FROM ".$db_table." WHERE 
 
`case` LIKE '%".$valueToSearch1."%' ORDER BY ID ASC LIMIT $start, ".$setting['paged_item'].""; 
 

 
$query=mysqli_query($connect,$quer) 
 
or die(mysqli_error()); 
 

 
$total = "SELECT*FROM ".$db_table." WHERE 
 
`case` LIKE '%".$valueToSearch1."%'"; 
 
$totalll = mysqli_query($connect,$total) 
 
or die(mysqli_error()); 
 

 
$count = mysqli_num_rows($totalll); 
 
echo $count; 
 

 
if($count - $setting['paged_item'] > 0){ 
 
\t 
 
\t $paged_total = ceil($count/$setting['paged_item']); 
 
\t echo $paged_total; 
 
\t 
 
\t $paged_last = $paged_total; 
 
\t echo $paged_last; 
 

 
\t $paged_middle = $page + 4; 
 

 
\t $paged_start = $paged_middle - 4; 
 
\t 
 
\t 
 
\t if($page > 1){ 
 
\t \t $paged_result = '<div class="paged-link"><a href="search.php?page=1 &valueToSearch1='.$valueToSearch1.'" title="fiest page"</a></div>'."\n"; \t \t \t \t \t \t \t 
 
\t } 
 
\t else{ 
 
\t \t $paged_result = '<div class="paged-link-off">first</div>'."\n"; \t \t \t \t \t \t \t \t \t 
 
\t } 
 
\t 
 
\t if($page > 1){ 
 
\t \t $paged_perv = $page - 1; 
 
\t \t $paged_result .= '<div class="paged-link"><a href="search.php?page='.$paged_perv.'&valueToSearch1='.$valueToSearch1.'" title="previous page"</a></div>'."\n"; 
 
\t } 
 
\t else{ 
 
\t \t $paged_result .= '<div class="paged-link-off">pre</div>'."\n"; 
 
\t } 
 
\t 
 
\t for ($i=$paged_start-2; $i<=$paged_middle; $i++){ 
 
\t \t if ($i > 0 && $i <= $paged_last){ 
 
\t \t \t 
 
\t \t \t if($i == $page){ 
 
\t \t \t \t $paged_result .= '<div class="paged-link-selected"><a href="search.php?page='.$i.'&valueToSearch1='.$valueToSearch1.'" title="page '.$i.'">'.$i.'</a></div>'."\n"; 
 
\t \t \t } 
 
\t \t \t else{ 
 
\t \t \t \t $paged_result .= '<div class="paged-link"><a href="search.php?page='.$i.'&valueToSearch1='.$valueToSearch1.'" title="page '.$i.'">'.$i.'</a></div>'."\n"; 
 
\t \t \t } 
 
\t \t } 
 
\t } 
 
\t 
 
\t 
 
\t if($page <= $paged_last - 1){ 
 
\t \t $paged_next = $page + 1; 
 
\t \t $paged_result .= '<div class="paged-link"><a href="search.php?page='.$paged_next.'&valueToSearch1='.$valueToSearch1.'" title="next page"</a></div>'."\n"; 
 
\t } 
 
\t else{ 
 
\t \t $paged_result .= '<div class="paged-link-off">next</div>'."\n"; 
 
\t } 
 
\t 
 
\t 
 
\t if($page <= $paged_last - 1){ 
 
\t \t $paged_result .= '<div class="paged-link"><a href="search.php?page='.$paged_last.'&valueToSearch1='.$valueToSearch1.'" title="last page"</a></div>'."\n"; 
 
\t } 
 
\t else{ 
 
\t \t $paged_result .= '<div class="paged-link-off">final</div>'."\n"; 
 
\t } 
 
\t $paged_result .= '<div class="paged-link-info">&raquo; page: '.$page.' out of'.$paged_total.'</div>'."\n"; 
 

 
\t echo $paged_result; \t 
 
} \t 
 

 
} 
 
?> 
 

 
     
 
\t \t 
 
      <table > 
 
       
 

 
     <!-- populate table from mysql database --> 
 
       <?php while($row = mysqli_fetch_array($query)):?> 
 
       <tr> 
 

 
\t \t \t \t \t \t  <th> <?php echo $row['case'];?> </th> 
 
\t      
 
       </tr> 
 
       <?php endwhile;?> 
 
      </table> 
 

 
</div> 
 
<?php 
 
$close = mysqli_close($connect); 
 
?> 
 
    </body> 
 
</html>