加入收藏 | 设为首页 | 会员中心 | 我要投稿 成都站长网 (https://www.028zz.cn/)- 科技、云开发、数据分析、内容创作、业务安全!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

怎么利用PHP进行数据查询和翻页

发布时间:2023-07-29 12:07:04 所属栏目:PHP教程 来源:转载
导读:   为大家详细介绍“怎么使用PHP进行数据查询和翻页”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用PHP进行数据查询和翻页”文章能帮助大家解决疑惑,下面
  为大家详细介绍“怎么使用PHP进行数据查询和翻页”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用PHP进行数据查询和翻页”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
 
  1. 数据查询 首先,我们需要获取要查询的数据,并将其存储在数据库中。这里我们以一个简单的学生信息表为例,包含姓名、性别、年龄、成绩等字段。我们使用MySQL数据库进行演示。
 
   CREATE TABLE `students` (
 
    `id` int(11) NOT NULL AUTO_INCREMENT,
 
    `name` varchar(50) NOT NULL,
 
    `gender` varchar(10) NOT NULL,
 
    `age` int(11) NOT NULL,
 
    `score` int(11) NOT NULL,
 
    `picture` varchar(100) NOT NULL,
 
    PRIMARY KEY (`id`)
 
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
 
  然后,我们向表中插入一些数据,以及学生的照片。这里我们使用student1.jpg、student2.jpg等图片。
 
   INSERT INTO `students` (`name`, `gender`, `age`, `score`, `picture`) VALUES ('Tom', 'M', 18, 80, 'student1.jpg');
 
  INSERT INTO `students` (`name`, `gender`, `age`, `score`, `picture`) VALUES ('Jerry', 'F', 17, 90, 'student2.jpg');
 
  INSERT INTO `students` (`name`, `gender`, `age`, `score`, `picture`) VALUES ('Mike', 'M', 19, 75, 'student3.jpg');
 
  INSERT INTO `students` (`name`, `gender`, `age`, `score`, `picture`) VALUES ('Mary', 'F', 18, 85, 'student4.jpg');
 
  INSERT INTO `students` (`name`, `gender`, `age`, `score`, `picture`) VALUES ('John', 'M', 20, 70, 'student5.jpg');
 
  INSERT INTO `students` (`name`, `gender`, `age`, `score`, `picture`) VALUES ('Jane', 'F', 19, 95, 'student6.jpg');
 
  2. 数据翻页 接下来,我们需要在PHP中进行数据查询和分页。我们定义每页显示5条数据,然后计算出总页数和当前页码。代码示例如下:
 
  <?php
 
  // 连接数据库
 
  $conn = mysqli_connect("localhost", "username", "password", "database");
 
  // 每页显示的记录数
 
  $pageSize = 5;
 
  // 当前页码
 
  $pageNum = isset($_GET['pageNum']) ? intval($_GET['pageNum']) : 1;
 
  // 计算总记录数和总页数
 
  $sql = "SELECT count(*) FROM students";
 
  $result = mysqli_query($conn, $sql);
 
  $row = mysqli_fetch_row($result);
 
  $totalRecords = $row[0];
 
  $totalPages = ceil($totalRecords / $pageSize);
 
  // 计算查询起始位置
 
  $startIndex = ($pageNum - 1) * $pageSize;
 
  // 查询数据
 
  $sql = "SELECT * FROM students LIMIT $startIndex, $pageSize";
 
  $result = mysqli_query($conn, $sql);
 
  ?>
 
  在上述代码中,我们首先连接数据库,并定义了每页显示的记录数和当前页码。然后,计算总记录数和总页数,并根据当前页码计算查询起始位置。最后,通过LIMIT关键字进行数据查询并返回结果。
 
  3. 显示图片 接下来,我们需要在显示数据的同时,也显示每个学生的照片。这里我们使用HTML标签<img>来显示图片。
 
  <?php while ($row = mysqli_fetch_assoc($result)): ?>
 
    <div>
 
      <h4><?php echo $row['name']; ?></h4>
 
      <p>性别:<?php echo $row['gender']; ?></p>
 
      <p>年龄:<?php echo $row['age']; ?></p>
 
      <p>成绩:<?php echo $row['score']; ?></p>
 
      <img src="<?php echo $row['picture']; ?>" width="100"/>
 
    </div>
 
  <?php endwhile; ?>
 
  在上述代码中,我们使用while循环遍历查询结果,并使用<img>标签显示每个学生的照片。
 
  需要注意的是,img标签的src属性需要指定正确的图片路径。 4. 分页导航 最后,我们需要在页面底部显示分页导航,方便用户进行翻页操作。
 
  代码示例如下:
 
   <div>
 
    <?php if ($pageNum > 1): ?>
 
      <a href="?pageNum=<?php echo $pageNum - 1; ?>">上一页</a>
 
    <?php endif; ?>
 
    <?php for ($i = 1; $i <= $totalPages; $i++): ?>
 
      <?php if ($i == $pageNum): ?>
 
        <span><?php echo $i; ?></span>
 
      <?php else: ?>
 
        <a href="?pageNum=<?php echo $i; ?>"><?php echo $i; ?></a>
 
      <?php endif; ?>
 
    <?php endfor; ?>
 
    <?php if ($pageNum < $totalPages): ?>
 
      <a href="?pageNum=<?php echo $pageNum + 1; ?>">下一页</a>
 
    <?php endif; ?>
 
  </div>
 
  在上述代码中,我们首先判断当前页码是否大于1,如果是,则显示“上一页”按钮。然后使用for循环遍历所有页码并生成导航链接。如果当前页码和循环变量$i相等,则显示当前页码,否则显示链接。
 

(编辑:成都站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章