【问题标题】:How to get page numbers based on id如何根据id获取页码
【发布时间】:2017-09-07 16:04:56
【问题描述】:

我的网站目前根据 rowid 提取我的内容,但它会根据 DESC 顺序为其提供页码。这对某些人来说是可以的,但是当我向我的网站添加新文章并且有人单击下一个按钮时,如果我在他们单击下一个按钮的时间内添加新页面,有时可能会将他们带到同一页面。

    $limit = 1;  
    if (isset($_GET["page"])) { $page  = $_GET["page"]; } else { $page=1; };  
    $start_from = ($page-1) * $limit;  

    $sql = "SELECT * FROM article ORDER BY id DESC LIMIT $start_from, $limit";  
    $rs_result = mysql_query ($sql);  

我仍然希望显示我的数据库中的最后一个条目(最高行 ID)。好奇我做错了什么。

【问题讨论】:

  • 打印$sql并检查查询
  • 我建议使用单独的页码字段。如果您的页码是 url 的一部分,并且有人为页面添加了书签,则他们的书签将无效。
  • 它按原样工作,但由于它按降序对它们进行排序,因此它分配的页面 id 递增。所以说我的最后一个条目是第 56 行,页码不是 56,而是 1。
  • 正是@SloanThrasher,这就是我想弄清楚的方法。
  • 如果您的查询基于页码而不是基于最高页码的相对值(本质上是您当前拥有的),那么页码将是稳定的。但是,如果用户在最后一个页码上,则在刷新页面之前他们不会有下一个。一个小得多的问题,不会让用户感到困惑。

标签: php mysql database sorting


【解决方案1】:

想通了。这使得当用户访问您的 index.php 页面时,它会将他们重定向到最新的帖子。我为 pageid 添加了一个表格并将其设置为 9999999999。我怀疑我可以发布那么多内容。

<?php
$rowcountprep = mysql_query("SELECT * FROM articles");  
$rowcount = mysql_num_rows($rowcountprep); 
if (!$_GET["page"])
{
$total = '10000000000';
$current = $total-$rowcount;
?>
<script>window.location="example.com/index.php?page=<?php echo 
$current; ?>"</script>
<?php
}
?>

感谢@SloanThrasher 的帮助。

【讨论】:

    猜你喜欢
    • 2019-11-22
    • 2018-07-31
    • 2017-11-22
    • 1970-01-01
    • 1970-01-01
    • 2013-01-21
    • 1970-01-01
    • 2019-06-23
    • 2019-12-03
    相关资源
    最近更新 更多