Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在WordPress中查询自定义表以首先返回最近的行_Php_Mysql_Sql_Wordpress - Fatal编程技术网

Php 在WordPress中查询自定义表以首先返回最近的行

Php 在WordPress中查询自定义表以首先返回最近的行,php,mysql,sql,wordpress,Php,Mysql,Sql,Wordpress,我已经创建了一个自定义表,在WordPress中存储“post like” $sql[] = "CREATE TABLE IF NOT EXISTS {$table_prefix}like ( id bigint(20) NOT NULL AUTO_INCREMENT PRIMARY KEY, post_id bigint(20) NOT NULL, user_id bigint(20) NOT NULL, KEY recommenders (post_i

我已经创建了一个自定义表,在WordPress中存储“post like”

$sql[] = "CREATE TABLE IF NOT EXISTS {$table_prefix}like (
    id bigint(20) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    post_id bigint(20) NOT NULL,
    user_id bigint(20) NOT NULL,
        KEY recommenders (post_id, user_id)
) {$charset_collate};";
当用户单击WordPress帖子上的“like”按钮时,一行被添加到表中,该表捕获用户ID和帖子ID

要获取“喜欢”某篇文章的所有用户ID的数组,我可以执行以下操作:

$result = $wpdb->get_col( $wpdb->prepare( "SELECT user_id FROM {$table_prefix}like WHERE post_id = %d", $post_id ) );
我现在想做两件事:

  • 如何修改我的查询,以便在
    $result
    数组中首先返回添加到表中的最新行

  • 我如何做与问题1完全相同的操作,但只返回5行


  • 对于1:您可以通过在查询中添加
    order by`id`DESC
    ,按您的
    id
    降序排列

    对于2:同时添加
    限制0、5

    $result = $wpdb->get_col( $wpdb->prepare( "SELECT `user_id` FROM `{$table_prefix}like` WHERE `post_id` = %d ORDER BY `id` DESC LIMIT 0, 5", $post_id ) );
    
  • 为了确保ccKep所提到的按排序,我将在表中添加一个LikeDate列作为日期时间(时间戳),然后在LikeDate列上使用按排序。这可以确保你计算出那些可能真正喜欢这篇文章的回头客
  • 请参阅,以防您想知道无限制返回的总数

  • 1.按id描述订购?2.限制4(基于0)您好,谢谢。只是想知道为什么
    限制0,5
    而不仅仅是
    限制5
    ?只是用于
    限制x,y
    语法。它允许您使用
    x
    指定起始偏移。(在构建类似“从第10页开始显示20个结果”的内容时非常有用)1<这将是对我的表的一个增强。实际上我在考虑这样做。谢谢你的主意