首页 > 解决方案 > 重定向到当前页面 PHP 分页

问题描述

首先,对不起,我是这个社区的新手,而且我的英语不太好,希望你们能理解。我想问的问题是

目前我正在做我的目录网站项目,由于数据库中的大量数据,该项目以分页方式显示数据库中的所有数据。用户需要选择状态和集群,然后网站将显示结果列表。但所有列表都必须在分页中。我预计当单击页面链接时,它会将用户带到第二页,依此类推。

当前网站显示

但实际结果是,当我点击第二页时,它什么也没显示。像这样:点击第二页后的网站页面

我还是 PHP 代码的新手。我已经尽力了。我想问一下,我的编码有问题吗?

这是我对“index.php”的一些编码

enter code here




    <form method="post">
    <div class="input">
    <select name="state" class="btn" required>
      <option value="" class="placeholder" selected disabled>Carian Mengikut Negeri</option>
      <option value="Johor">Johor</option>
      <option value="Kedah">Kedah</option>
      <option value="Kelantan">Kelantan</option>
      <option value="Melaka">Melaka</option>
      <option value="Negeri Sembilan">Negeri Sembilan</option>
      <option value="Pahang">Pahang</option>
      <option value="Penang">Penang</option>
      <option value="Perak">Perak</option>
      <option value="Perlis">Perlis</option>
      <option value="Sabah">Sabah</option>
      <option value="Sarawak">Sarawak</option> 
      <option value="Selangor">Selangor</option>
      <option value="Terengganu">Terengganu</option>
      <option value="Wilayah Persekutuan">Wilayah Persekutuan</option>
    </select>

    <select name="cluster" class="btn" required>
      <option value="">Kluster Perniagaan</option>
      <option value="Makanan dan Minuman">Makanan & Minuman</option>
      <option value="Gaya Hidup">Gaya Hidup</option>
      <option value="Automotif">Automotif</option>
      <option value="Pembinaan">Pembinaan</option>
      <option value="Perkhidmatan">Perkhidmatan</option>
    </select>
      <input type="submit" name="submit" value="Cari" >
     </div>
  </form>

<div class="output">
  <?php
  include "connect.php";
   ?>
</div>

这是我的“connect.php”,它有一个查询(对不起,我不能在代码示例中显示完整的代码,所以我使用片段)

<?php
$conn = new mysqli('localhost','root','','bpuvirtu_Directory') or die("Connection Failed");


if(isset($_POST["submit"]))
{ 
  $result_per_page = 10;
  $str= $_POST["state"];
  $cluster=$_POST["cluster"];
  $sth="SELECT * FROM TABLE3 WHERE state='$str' and  service='$cluster'";
  $result=mysqli_query($conn,$sth);    

  $number_of_results=mysqli_num_rows($result);
    

$number_of_results;
$number_of_pages= ceil($number_of_results/$result_per_page);


if(!isset($_GET['page'])){
    $page=1;
}
else{
    $page=$_GET['page'];
}


 $this_page_first_result = ($page-1)*$result_per_page;
 
    $sth="SELECT * FROM TABLE3 WHERE state='$str' and  service='$cluster' LIMIT " . $this_page_first_result . "," . $result_per_page;
 
    $result=mysqli_query($conn,$sth);
    
    ?>
      <table id="user">
      <tr>
        <th>Nama Syarikat</th>
        <th><center>Kluster</center></th>
        <th><center>Info</center></th>
      </tr>  <?php
    
    while($row=mysqli_fetch_array($result)){
        ?>
        <tr>
          <form method="GET" action=detail.php>
          <td><?php echo $row["name"]; ?></center> </td>
          <td><center><?php echo $row["service"]; ?></center> </td>
          <input type='hidden' name='id' value='<?php echo $row["id"]; ?>'/>
          <td><center><input type="submit" name="detail" value="Info" ></center></td>
        </form>
        </tr>
      <?php
        
        
    }?></table><?php
    
for($page=1;$page<=$number_of_pages;$page++){
    echo '<a href="'.$_SERVER['PHP_SELF'].'?page=' . $page . '">' . $page . '</a>';
}

    
}
?>

因此,当我单击第 2 页时,我希望它在第 2 页显示来自数据库的列表。

标签: phphtml

解决方案


你可以试试这个:

//$page =  grab page number from the query param here.
return redirect('currencies?page='.$page);

或者:

$results->url($page)

推荐阅读