【问题标题】:How to implement pagination into my api (function) - WordPress site如何在我的 api(函数)中实现分页 - WordPress 网站
【发布时间】:2021-08-24 05:03:48
【问题描述】:

我从 mysql 调用一些数据并创建自己的 api 以在 android 应用程序中显示信息。我在 Youtube 上尝试了这个视频,但我意识到这个人假设我们的链接中有“页面”处于活动状态,例如:google.com/page=1。如何激活它,以便我可以使用 Android 传递任何页码和任何数量的项目。同样,问题不在 Android 上。

我在 Youtube 上找到了这个:

$postData = new WP_Query( array(

    //if the user have passed a page number, it will load this page number
    'posts_per_page' => isset($data['posts']) ? $data['posts'] : 15,
    'paged' => isset($data['page']) ? $data['page'] : 1

));

这是我的功能:

function get_all_coin()
{
  

    $servername = "";
    $username = "";
    $password = "";
    $dbname = "";

    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }

    $query = "SELECT * FROM coins LIMIT 100";
    $result = mysqli_query($conn, $query);

    $json = array();

    if (mysqli_num_rows($result) > 0) {
        // output data of each rsow
        while ($row = mysqli_fetch_assoc($result)) {
            $json['id'] = (int) $row['id'];
            $json['name'] = $row['name'];
            // ...(More rows)

            $json_arr[] = $json;
        }
    } else {
        echo "0 results";
    }

    $json_ar = json_encode(['data' => $json_arr]);

    header('Content-type:application/json;charset=utf-8');

    $json_arrd['data'] = $json_arr;

    return $json_arrd;
}

【问题讨论】:

标签: php wordpress pagination


【解决方案1】:

如果您使用 WordPress 查询 WordPress 帖子,那么教程中关于 page 查询参数的内容将是正确的。但看起来您使用的是非 WordPress 数据库表,因此如果没有 WordPress,您需要做的是为查询添加偏移量:

$query = "SELECT * FROM coins LIMIT $limit OFFSET $offset";

$offset 需要等于每页的项目数乘以您所在的任何页面。

然而,这会给你一些超级容易入侵的东西。要阻止这种情况,您需要确保 $limit 和 $offset 都是整数,或者更好的是,使用 Dharman 解释的准备好的语句。

【讨论】:

  • 我有一个 wordpress 网站..我在数据库中创建了一个新表...所以,我有一些硬币信息,只想在我的 android 应用程序中显示该信息..但是加载一点一点的数据
  • 该查询将从您的硬币表中加载一部分数据。由于您没有使用 WordPress 的自定义帖子类型来存储硬币信息(在某些情况下这是一件好事)而是使用您自己的表,因此您可以像查询硬币一样简单地使用 PHP 的常规 MySQL 功能数据表。
  • 虽然,我什至不确定 WordPress 在您的项目中扮演什么角色。听起来你几乎不需要 WordPress。
  • 是的,你说得对...我不需要 wordpress...我希望 wordpress 可以像 WP_Query() 一样轻松地做到这一点
  • WP_Query 用于查询 WordPress 帖子。但实际上,如果您创建了一种名为coin 的新型帖子,您甚至不需要使用WP_Query,因为只要您将show_in_rest 设置为true,WordPress 就会自动创建您可以使用的API 端点。
猜你喜欢
  • 1970-01-01
  • 2021-08-21
  • 1970-01-01
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多