【问题标题】:limit results from database php限制来自数据库 php 的结果
【发布时间】:2016-04-25 18:27:55
【问题描述】:

我有这段代码可以显示我的数据库中的所有信息。问题是我只想显示大约 10 个最后的结果。但是可以通过按下按钮以某种方式请求更多。感谢您对我的问题感兴趣。

<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "myDB";


$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
     die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);

if ($result->num_rows > 0) {

     while($row = $result->fetch_assoc()) {
         echo "<div id='message'> <br> ". $row["firstname"]. " " . $row["lastname"] . "<br> </div>";
     }
} else {
     echo "0 results";
}

$conn->close();
?>

【问题讨论】:

标签: php html database


【解决方案1】:

有两种方法可以解决这个问题

选项 1

问题是我只想显示大约 10 个最后的结果

一种方法是使用 SQL Limit 说明符

$sql="Select * from ORDERS LIMIT 5"

这将从您的数据库中获取 5 个项目。您可以使用排序机制进行排序等

但是可以通过按下按钮以某种方式请求更多。

您可以为此使用offset 说明符。

$sql="Select * from ORDERS LIMIT 5 OFFSET 15"

这会从第 16 条记录中获取 10 条记录。您可以在每次按下按钮时添加偏移量。

这里有更多关于这个link的信息。

选项 2

分页。这个link 应该会有所帮助。

【讨论】:

  • 会显示最后输入的结果还是从数据库顶部开始。
  • 要获取最后输入的结果,您可以在DESC 中执行ORDER BYid。如果您有 date 列,则将 id 替换为数据。任何以顺序方式获取您的条目的参数。
【解决方案2】:

使用LIMITOFFSET 子句进行限制选择。 link

如果要选择最后 10 个数据,请像这样编写查询。 SELECT id, firstname, lastname FROM MyGuests ORDER BY id DESC LIMIT 10

您应该使用ajax 来实现“显示更多”功能。

【讨论】:

  • Mystika,w3schools.com 不是经过身份验证的参考资源。可以使用php.net或者MySQL的官网。
  • 谢谢。我将如何使显示的结果回到前面。例如“A”在顶部,“J”在底部。我想在顶部制作“J”,在底部制作“A”。
  • @Pupil 同意,我替换了 MySQL 官方文档的链接。
  • @jack 有 ORDER BY 子句!查看我的答案的链接:D
  • @Mystika 让它显示我第一次输入到服务器的内容。 desc 是正确的,但我只希望加载的页面内容回到前面。
猜你喜欢
  • 2020-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-26
  • 2013-01-06
  • 1970-01-01
  • 2012-06-02
  • 1970-01-01
相关资源
最近更新 更多