Я проектирую сайт недвижимости, и у меня есть окно поиска на моей первой странице, которое позволяет моим пользователям решать, что именно они хотят, например, они могут сузить свои варианты аренды или покупки или других вещей. Мой код работает отлично, и моя разбивка на страницы работает до степени разбивки страниц равномерно и вычисляет, сколько страниц должно быть, а первая страница страницы отображается без ошибок. Но моя проблема начинается, когда я нажимаю далее или нажимаю на странице 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">» 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