2016-05-20 9 views
0

私は不動産のウェブサイトを設計しています。最初のページに検索ボックスがあり、ユーザーは借りたり買ったりするなどのオプションを絞り込むことができます。私のコードは完璧に機能し、ページの分割は均等にページを分割し、必要なページ数を計算し、エラーのないページ分割の最初のページを表示します。しかし、私の問題は、次のページをクリックするか、ページXをクリックすると始まります。ページ1以外の別のページを選択すると、結果が表示されません。PHPは投稿されたフォームを覚えていないと思います。ここに私のコードは次のとおりです。あなたが次のページに、検索テキストを送信する必要がページ区切りの検索結果

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>

関連する問題