Как получить значение столбца в pagination

Я работаю над функцией поиска с разбиением на страницы в php.Below – это мой код, но всякий раз, когда я нажимаю на следующую ссылку, поисковый запрос не принимает переменную, которая передается через POST. Не могли бы вы мне помочь..

searchstr=$_POST['q']; session_start(); $_SESSION['searchchar']=$searchstr; $rec_limit=3; $connection=connection(); $searchstr=$_REQUEST['q']; $sql="Select count(*) from FIMTRN_Memorial where FirstName like '%".$_SESSION['searchchar']."%'"; echo$sql; $result1=mysql_query($sql); if(! $result1) { die('Could not get data: ' . mysql_error()); } $row = mysql_fetch_array($result1,MYSQL_NUM ); $rec_count = $row[0]; echo$rec_count; if( isset($_GET{'page'} ) ) { $page = $_GET{'page'} + 1; $offset = $rec_limit * $page ; } else { $page = 0; $offset = 0; } $left_rec = $rec_count - ($page * $rec_limit); $sql="Select * from FIMTRN_Memorial where FirstName like '%".$_SESSION['searchchar']."%' limit $offset,$rec_limit"; echo$sql; $result=mysql_query($sql); $rec_num=mysql_num_rows($result); if($rec_num>0) { while($row = mysql_fetch_array($result,MYSQL_ASSOC)) { $fname=$row['FirstName']; $image=$row['ProfileImagePath']; $about=$row['About']; $url=$row['CustomURL']; $DOB=$row['DOB']; $DOD=$row['DOD']; ?> <div class="search"> <p class="content"><img src="<?php echo $image;?>" style="border:1px solid red;width:100px;height:100px;" /></p> <div class="content"><p> <?php echo "<a href=\"$url;\" target=\"_blank\">$fname</a>"; ?> <p>(<?php echo date("Y",strtotime($DOB));?>-<?php echo date("Y", strtotime($DOD));?>)</p> </p><p><?php echo$about?></p> </div> </div> <?php } if( $page > 0 & $left_rec > $rec_limit) { $last = $page - 2; echo "<a href=\"?page=$last\">Previous Records</a> |"; echo "<a href=\"?page=$page\">Next Records</a>"; } else if( $page == 0 & $rec_count>$rec_limit ) { echo "<a href=\"?page=$page\">Next Records</a>"; } else if( $left_rec < $rec_limit & $rec_count>$rec_limit ) { $last = $page - 2; echo "<a href=\"?page=$last\">Previous Records</a>"; } } else { echo"No memorial found.Please try with other name."; } enter code here ?> 

В вашем коде есть пара проблем.

Первый:

Неправильно используется переменная $_GET . У вас $_GET{'page'} , но вы должны использовать его так же, как переменная $_POST , например: $_GET['page']

Во-вторых:

Вы интерпретируете идею POSTing и щелкаете ссылки неправильно. То, что вам нужно сделать с помощью следующих и предыдущих кнопок, – это скрытая форма, в которой есть все остальные переменные, которые вам нужны. Например, самый простой способ, который не будет включать в себя изменение большого количества вашего другого кода:

 if( $page > 0 & $left_rec > $rec_limit) { $last = $page - 2; // Previous button form echo "<form action='?page=$last' method='POST'>"; echo "<input type='hidden' name='q' value='" . $_POST['q'] . "' />"; // This will be a field that saves information but won't appear on the page (though a user could see it if they view source) echo "<input type='submit' value='Previous Records' />"; echo "</form>"; echo " | "; // The delimiting character you were using, you'll need to style the input type='submit's to look more like a link if that's what you are going for // Next button form echo "<form action='?page=$page' method='POST'>"; echo "<input type='hidden' name='q' value='" . $_POST['q'] . "' />"; // This will be a field that saves information but won't appear on the page (though a user could see it if they view source) echo "<input type='submit' value='Next Records' />"; echo "</form>"; } 

Этот метод сохранит ваши переменные в запросе. Использование ссылки существенно сбрасывает переменную $ _POST. Существует множество других возможных решений, но для этого потребуется минимальное количество работ, чтобы изменить ваш пример.

если вы создаете функции сортировки и поиска, чем я предлагаю вам использовать переменную $_SESSION а не $_POST или $_GET это поможет вам эффективно управлять сеткой / данными.