Php sql-确定第一组记录
我想做一个寻呼:Php sql-确定第一组记录,php,mysql,pdo,pagination,Php,Mysql,Pdo,Pagination,我想做一个寻呼: < page > 对于接下来的10条记录: SELECT some_column FROM Table WHERE some_column ORDER BY some_column LIMIT 10 SELECT some_column FROM Table WHERE some_column ORDER BY some_column LIMIT 10 OFFSET 10 SELECT some_column FROM Table WHERE some_co
< page >
对于接下来的10条记录:
SELECT some_column FROM Table WHERE some_column ORDER BY some_column LIMIT 10
SELECT some_column FROM Table WHERE some_column ORDER BY some_column LIMIT 10 OFFSET 10
SELECT some_column FROM Table WHERE some_column ORDER BY some_column DESC LIMIT 10
对于最后10条记录:
SELECT some_column FROM Table WHERE some_column ORDER BY some_column LIMIT 10
SELECT some_column FROM Table WHERE some_column ORDER BY some_column LIMIT 10 OFFSET 10
SELECT some_column FROM Table WHERE some_column ORDER BY some_column DESC LIMIT 10
问题是:假设我正在查看11-20条记录,我单击以预览1-10条记录
我想要基本上我的想法是:
- 如果当前页面是第一页
(第1页)
,则隐藏
您可以使用$\u GET['page']
并将其用作当前页面的标记:
http://youdomain.php?page=300
首先,您可以初始化它:
$page = isset($_GET['page']) ? $_GET['page'] : 1;
然后确定最后一页:ceil(总行数/每页行数)
示例:PDO
$check = $db->query('SELECT COUNT(id) as total FROM TABLE_NAME'); // get total rows
$total_items = $check->fetch(PDO::FETCH_ASSOC)['total']; // 5.4 above (dereference)
$total_pages = ceil($total_items / $limit); // calculate how many pages
// of course this is the last page
因此,现在,只需在两种情况下使用它:
<div class="paging">
<!-- previous -->
<?php if($page != 1): ?>
<a href="?page=<?php echo $page-1; ?>" title="Previous Page">«</a>
<?php endif; ?>
<span><?php echo $page; ?></span> <!-- current page -->
<!-- next -->
<?php if($page != $total_pages): ?>
<a href="?page=<?php echo $page+1; ?>" title="Next Page">»</a>
<?php endif; ?>
</div>
示例逻辑:
$db = new PDO('mysql:host=localhost;dbname=DATABASE_NAME;charset=utf8', 'USERNAME', 'PASSWORD');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// paginate using url get `?page=x` where x is a number
$page = isset($_GET['page']) ? $_GET['page'] : 1;
$limit = 10; // default entries
$check = $db->query('SELECT COUNT(id) as total FROM TABLE_NAME'); // get total rows
$total_items = $check->fetch(PDO::FETCH_ASSOC)['total']; // 5.4 above
$total_pages = ceil($total_items / $limit); // calculate how many pages
$offset = ($page - 1) * $limit; // offset
// using limit offset
$query = $db->query("SELECT * FROM TABLE_NAME LIMIT $offset, $limit");
$results = $query->fetchAll(PDO::FETCH_ASSOC);
?>
<table border="1" cellpadding="10">
<?php foreach($results as $row): ?>
<tr>
<!-- just add other info -->
<td><?php echo $row['id']; ?></td>
</tr>
<?php endforeach; ?>
</table>
<div class="paging">
<?php if($page != 1): ?>
<a href="?page=<?php echo $page-1; ?>" title="Previous Page">«</a>
<?php endif; ?>
<span><?php echo $page; ?></span>
<?php if($page != $total_pages): ?>
<a href="?page=<?php echo $page+1; ?>" title="Next Page">»</a>
<?php endif; ?>
</div>
$db=newpdo('mysql:host=localhost;dbname=DATABASE\u NAME;charset=utf8','USERNAME','PASSWORD');
$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_异常);
//使用url get`?page=x`分页,其中x是一个数字
$page=isset($\u GET['page'])$_获取['page']:1;
$limit=10;//默认条目
$check=$db->query('SELECT COUNT(id)as total FROM TABLE_NAME');//获取总行数
$total_items=$check->fetch(PDO::fetch_ASSOC)['total'];//上文5.4
$total_pages=ceil($total_items/$limit);//计算有多少页
$offset=($page-1)*$limit;//抵消
//使用极限偏移量
$query=$db->query(“从表中选择*名称限制$offset,$LIMIT”);
$results=$query->fetchAll(PDO::FETCH_ASSOC);
?>
检入mysql最小和最大密钥,然后与现有密钥进行比较。如果您的结果集包含该键dont display>,或者伪SQL看起来不错,但问题是关于一个页面。到目前为止,PHP中有哪些内容?应该非常简单:if(不是第一页)show,因此您可能会使用一个变量来跟踪要使用的偏移量和限制,例如$page
,如果$page
是0
则不显示@MikeSteder,我有一个php功能,目前正在获取10条记录,并以html表格格式显示……如果这是您要问的,谢谢您的贡献!:)