私は不動産のウェブサイトを設計しています。最初のページに検索ボックスがあり、ユーザーは借りたり買ったりするなどのオプションを絞り込むことができます。私のコードは完璧に機能し、ページの分割は均等にページを分割し、必要なページ数を計算し、エラーのないページ分割の最初のページを表示します。しかし、私の問題は、次のページをクリックするか、ページ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">» 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>
はのための '$ _POST'を使用しないでください改ページ。 '$ _GET'を使用してください。こうすることで、物理的にボタンをクリックすることなく、アドレスバーからページに直接アクセスすることができます。 – Marcus
ありがとうございます。 $ _POSTを$ _GETに変更しました。しかし、次のページをクリックするか、またはページXをクリックするか、ページ1以外の別のページを選択しても、結果は表示されません。 – Malekian