PHP文章数据渲染,分类筛选,页面跳转

本文介绍了如何使用PHP进行文章数据渲染,包括页面效果展示、数据库查询、时间格式处理的PHP和HTML代码,以及PHP处理三选状态的方法。同时,详细讲解了分页查询的实现,给出了PHP获取分类的查询代码以及HTML页面的渲染方式,特别指出在选择分类时能自动触发分页。为了完整实现功能,需要引用function.php和config-2.php两个配置文件。
摘要由CSDN通过智能技术生成

PHP文章数据渲染

页面效果
在这里插入图片描述

数据库查询结果
在这里插入图片描述

查询所有数据 php代码

$posts = baixiu_fetch_all("select 
posts.id as posts_id,
posts.title as posts_title,
posts.created as posts_created,
categories.name as categories_name,
categories.slug as categories_slug,
posts.`status`as posts_status,
users.slug as users_slug,
users.nickname as users_nickname
from posts
inner join categories on posts.category_id= categories.id
inner join users on posts.category_id = users.id
where {
     $where}
order by posts.created desc
limit {
     $offset},{
     $size}

");


html页面全部数据渲染

      <?php foreach  ($posts as $item): ?>
        <tr>
            <td class="text-center"><input type="checkbox"></td>
            <td><?php echo $item['posts_title']?></td>
            <!-- <td><?php// echo get_users($item['user_id']);?></td> -->
            <!-- <td><?php //echo get_categories($item['category_id'])?></td> -->
            <td><?php echo $item['categories_name'];?></td>
            <td><?php echo $item['categories_slug']?></td>
            <td class="text-center"><?php echo xiu_convert_date($item['posts_created'])?></td>
            <td class="text-center"><?php echo xiu_convert_status($item['posts_status'])?></td>
            <td class="text-center">
              <a href="javascript:;" class="btn btn-default btn-xs">编辑</a>
              <a href="/admin/posts-delete.php?id=<?php echo $item['posts_id'];?>" class="btn btn-danger btn-xs">删除</a>
            </td>
          </tr>
        <?php endforeach?>

时间格式处理 php 代码

** 转换时间格式
 * @param 参数 $created 
 * @return 
*/
function xiu_convert_date ($created) {
   
   $timestamp = strtotime($created);
   return date('Y年m月d日<b\r>H:i:s', $timestamp);
}

时间格式处理 HTML 代码

 <td class="text-center"><?php echo xiu_convert_date($item['posts_created'])?></td>

php三选状态处理

/** 转换时间格式 多种状态
 * @param 参数 $created 
 * @return 
*/
function xiu_convert_status ($status) {
   
     $dict =   array(
          'published' => '已发布',
          'drafted' => '草稿',
          'trashed' => '回收站'
        );
        //返回有值的数据
        return isset($dict[$status]) ? $dict[$status] : '未知';
}

HTML 三选状态处理

<td class="text-center"><?php echo xiu_convert_status($item['posts_status'])?></td>

//实现分页查询
效果图在这里插入图片描述
在这里插入图片描述
php分页,分类

//实现分页功能
$page = empty($_GET['page'])? 1 : (int)$_GET['page'];
$size = 20;

//计算出越过多少条
$offset = ($page-1) * $size;

//限制-1值
if ($page < 1){
   
  header('location:/admin/posts.php?page=1');
}

//计算出展示页码 总共5页
 $begin = $page - 2;
 $end = $begin + 4;

 //判断临界点  大于0 小于最多纪录
  $begin = $begin < 1 ? 1 : $begin;
  $begin = $end - 4;

  $where = '1 = 1';

  //接收分类的分页处理
  $search = '';
  //传了参数就用选择语句  意思是没有all 并且存在分类,就选择分类  否则就不分类
   if (isset($_GET['categories']) && $_GET['categories'] !=='all' ){
   
     $where .= ' and categories.id='. $_GET['categories'];
     $search .='&categories=' . $_GET['categories']; //ID
  }
  
  //选择分类
  if (isset($_GET['status']) && $_GET['status'] !=='all' ){
   
    $where .= " and posts.status='{
     $_GET['status']}'";
    $search .
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值