Paparan halaman senarai dan carian kata kunci

Dalam bahagian ini, kita akan bercakap tentang paparan halaman dan fungsi carian kata kunci.

Untuk melakukan fungsi paging, kita mesti terlebih dahulu menyambung ke pangkalan data dan mendapatkan data. Dalam kebanyakan kes kita boleh menulis paging dan fungsi carian dalam halaman php yang sama.

Kemudian mari kita analisa proses fungsi paging:

Mula-mula kita perlu menetapkan berapa banyak item yang dipaparkan pada setiap halaman dan berapa banyak data yang ada secara keseluruhan, supaya kita tahu berapa banyak halaman yang ada secara keseluruhan dan halaman yang sedang kami paparkan.

Mari terangkan secara terperinci di bawah dengan membandingkan kod:

<?php
//分页功能
$pageSize = 5; //每页显示多少条记录
$rowCount = 0; //共有多少条记录
$pageNow = 1; //希望显示第几页
$pageCount = 0; //一共有多少页
//根据分页链接来修改当前页的值
if (!empty($_GET['page'])) {
 $pageNow = $_GET['page'];
}
//这里是关键词的搜索
$key=isset($_GET['key'])?'':$_GET['key'];//判断前段页面传递过来的关键词是否存在
$cid=isset($_GET['cid'])?'':$_GET['cid'];
$condition='1=1';        //这个条件是保证在搜索栏中没有任何输入的时候能正常显示
if(!empty($key)){           
 $condition.=" and content LIKE '%{$key}%'";
}
if(!empty($cid)){
 $condition.=" and cid={$cid}";
}
//根据分页链接来修改 $pageNow的值。
$sql = "select count(*) from list WHERE {$condition}"; //根据$condition条件来进行查询
$res1 = mysqli_query($link,$sql);//将查询的结果赋值给$res1
//取出行数
if ($row = mysqli_fetch_row($res1)) {
 $rowCount = $row[0];
} //取得$rowCount,,进而我们就知道了$pageCount这两个数值了
//计算共有多少页
$pageCount = ceil($rowCount / $pageSize);
$pageStart = ($pageNow - 1) * $pageSize;
//发送带有分页的sql结果
//根据$sql语句的limit 后面的两个值(起始值,每页条数),来实现分页。以及求得这两个值。
$sql = "select * from list WHERE {$condition} order BY id limit $pageStart,$pageSize";
$res2 = mysqli_query($link,$sql) or die('无法获取结果集' . mysqli_connect_error());
$prev = ($pageNow - 1 <= 0 )?1:$pageNow-1; //上一页
$next = ($pageNow + 1 > $pageCount)?$pageCount:$pageNow+1; //下一页
?>

Kami meletakkan paging dan carian kata kunci pada satu halaman.

Di halaman hadapan kami, kami juga perlu membuat beberapa perubahan:

    <a href="?page=<?php echo $prev;?>">上一页</a>         
    <?php for($i=1; $i<=$pageCount; $i++):?>
      <a href="?page=<?php echo $i;?> " <?php echo $i;?></a>
    <a href="?page=<?php echo $next;?>">下一页</a>

Fungsi carian perlu mengitar keluar data yang kami cari berdasarkan kata kunci pada halaman hujung hadapan.

<li>
  <input type="text" placeholder="请输入搜索关键字" name="key" class="input" style="width:250px; line-height:17px;display:inline-block" value="<?php echo $_GET['key'];?>"/>
  <input type="submit" name="sub" class="button border-main icon-search" value="搜索" />
</li>

Di atas adalah carian paging dan kata kunci yang kami perkenalkan Jika ada apa-apa yang anda tidak faham, anda boleh tinggalkan mesej dan saya akan membantu anda menjawabnya tepat pada masanya.

Meneruskan pembelajaran
||
<?php session_start(); header("content-type:text/html;charset=utf-8"); require 'config.php'; //分页功能 $pageSize = 5; //每页显示多少条记录 $rowCount = 0; //共有多少条记录 $pageNow = 1; //希望显示第几页 $pageCount = 0; //一共有多少页 //根据分页链接来修改当前的值 if (!empty($_GET['page'])) { $pageNow = $_GET['page']; } $key=isset($_GET['key'])?'':$_GET['key']; $cid=isset($_GET['cid'])?'':$_GET['cid']; $condition='1=1'; if(!empty($key)){ $condition.=" and content LIKE '%{$key}%'"; } if(!empty($cid)){ $condition.=" and cid={$cid}"; } //根据分页链接来修改 $pageNow的值。 $sql = "select count(*) from list WHERE {$condition}"; $res1 = mysqli_query($link,$sql); //取出行数 if ($row = mysqli_fetch_row($res1)) { $rowCount = $row[0]; } //[取得$rowCount,,进而我们就知道了$pageCount这两个指标了。] //计算共有多少页 $pageCount = ceil($rowCount / $pageSize); $pageStart = ($pageNow - 1) * $pageSize; //发送带有分页的sql结果 //根据$sql语句的limit 后面的两个值(起始值,每页条数),来实现分页。以及求得这两个值。 $sql = "select * from list WHERE {$condition} order BY id limit $pageStart,$pageSize"; $res2 = mysqli_query($link,$sql) or die('无法获取结果集' . mysqli_connect_error()); $prev = ($pageNow - 1 <= 0 )?1:$pageNow-1; //上一页 $next = ($pageNow + 1 > $pageCount)?$pageCount:$pageNow+1; //下一页 //我们引用的config.php文件(连接数据库的公共文件,之前提到过)这里没有,所以会在页面右边的显示栏中报错 ?>
  • Cadangan kursus
  • Muat turun perisian kursus
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!