# PHP如何每次查询10条数据 在Web开发中,分页查询是常见的需求。PHP结合MySQL数据库实现每次查询10条数据,既能提升性能又能优化用户体验。以下是几种实现方法及详细示例: --- ## 一、使用LIMIT实现基础分页 ```php <?php // 连接数据库 $conn = new mysqli("localhost", "username", "password", "dbname"); if ($conn->connect_error) die("连接失败"); // 获取当前页码(默认第1页) $page = isset($_GET['page']) ? (int)$_GET['page'] : 1; $perPage = 10; // 每页10条 $offset = ($page - 1) * $perPage; // 查询数据 $sql = "SELECT * FROM articles ORDER BY id DESC LIMIT $offset, $perPage"; $result = $conn->query($sql); // 输出结果 while ($row = $result->fetch_assoc()) { echo "标题:" . $row['title'] . "<br>"; } // 分页导航示例 $totalQuery = "SELECT COUNT(*) FROM articles"; $totalResult = $conn->query($totalQuery); $totalRows = $totalResult->fetch_row()[0]; $totalPages = ceil($totalRows / $perPage); echo "<div class='pagination'>"; for ($i = 1; $i <= $totalPages; $i++) { echo "<a href='?page=$i'>$i</a> "; } echo "</div>"; $conn->close(); ?>
<?php try { $pdo = new PDO("mysql:host=localhost;dbname=dbname", "username", "password"); $page = max(1, $_GET['page'] ?? 1); $stmt = $pdo->prepare("SELECT * FROM products LIMIT :offset, :perPage"); $stmt->bindValue(':offset', ($page-1)*10, PDO::PARAM_INT); $stmt->bindValue(':perPage', 10, PDO::PARAM_INT); $stmt->execute(); foreach ($stmt->fetchAll() as $row) { echo $row['product_name']; } } catch (PDOException $e) { die("查询失败: " . $e->getMessage()); } ?>
// Laravel控制器中 public function index(Request $request) { $data = DB::table('posts') ->orderBy('created_at', 'desc') ->paginate(10); // 自动分页 return view('posts.index', ['posts' => $data]); } // Blade模板中自动生成分页链接 {{ $posts->links() }}
id
、create_time
)有索引WHERE id > ? LIMIT 10
代替传统分页方法 | 优点 | 缺点 |
---|---|---|
原生LIMIT | 简单直接 | 需手动处理分页逻辑 |
PDO预处理 | 安全性高 | 代码量稍多 |
框架分页 | 开发效率高,功能完善 | 需要学习框架 |
掌握这些方法后,你可以根据项目需求选择最适合的方案实现高效分页查询。 “`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。