Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.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 在SQL中,如何获取日期最早、相似项最多的注释ID?_Php_Mysql - Fatal编程技术网

Php 在SQL中,如何获取日期最早、相似项最多的注释ID?

Php 在SQL中,如何获取日期最早、相似项最多的注释ID?,php,mysql,Php,Mysql,嗨,伙计们,我在问问题时有点傻。我有一个喜欢的评论系统。我想做的是得到最老的评论和最喜欢的ID 这是我的桌子 CREATE TABLE `wallcomments` ( `c_id` int(11) NOT NULL, `parent_id` bigint(20) NOT NULL, `userid` int(11) NOT NULL, `comments` text NOT NULL, `date_created` int(11) NOT NULL, `post_id`

嗨,伙计们,我在问问题时有点傻。我有一个喜欢的评论系统。我想做的是得到最老的评论和最喜欢的ID

这是我的桌子

CREATE TABLE `wallcomments` (
  `c_id` int(11) NOT NULL,
  `parent_id` bigint(20) NOT NULL,
  `userid` int(11) NOT NULL,
  `comments` text NOT NULL,
  `date_created` int(11) NOT NULL,
  `post_id` bigint(20) NOT NULL,
  `for_image` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'no=post, yes=imagePoPup',
  `clikes` mediumint(6) NOT NULL,
  `uip` char(30) NOT NULL,
  `tagedpersons` mediumtext NOT NULL,
  `comment_image` varchar(255) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
这是我的PHP函数strong文本

public function GetMostLovedComments($CommentPostID) 
{
    global $DBConnection;

    $cond = '';
    $cond = " AND wallcomments.parent_id = 0"; // only selects comments and not replies

    $query_pc = "SELECT c_id, MAX(clikes) AS max
                FROM wallcomments
                WHERE post_id = '.$CommentPostID. $cond .'"; 

    $result_pc = mysqli_query($DBConnection, $query_pc);
    $row_pc = mysqli_fetch_array($result_pc);
    $most_likes = $row_pc['max'];
    $cc_id = $row_pc['c_id'];

    $query = "SELECT date_created, MAX(date_created) AS min
                FROM wallcomments
                WHERE post_id = '.$CommentPostID. $cond .'";

    $result = mysqli_query($DBConnection, $query);
    $row = mysqli_fetch_array($result);
    $oldest_c = $row['min'];

    $query3 = "SELECT c_id
                FROM wallcomments
                WHERE date_created = '.$oldest_c'";

    $result3 = mysqli_query($DBConnection, $query3);
    $row3 = mysqli_fetch_array($result3);
    $com_id = $row3['c_id'];

    return  $oldest_c;
}

取决于你的意思

返回带有最早日期的wallcomment的C_ID,并在绑定时返回带有最高级clikes的ID

SELECT wc.c_id 
FROM wallcomments wc
INNER JOIN (SELECT min(date_created) MDC
            FROM wallcomments
            WHERE post_id = YourConditionVariable) wc2
 on WC.date_created = wc2.mdc
WHERE post_id = YourConditionVariable
ORDER BY clikes desc
LIMIT 1 
返回带有最多Clike的wallcomment的C_ID(当绑定时),返回带有最早创建日期的C_ID

SELECT wc.c_id 
FROM wallcomments wc
INNER JOIN (SELECT max(clikes) MDC
            FROM wallcomments
            WHERE post_id = YourConditionVariable) wc2
 on WC.clikes = wc2.mdc
WHERE post_id = YourConditionVariable
ORDER BY date_created asc
LIMIT 1 

取决于你的意思

返回带有最早日期的wallcomment的C_ID,并在绑定时返回带有最高级clikes的ID

SELECT wc.c_id 
FROM wallcomments wc
INNER JOIN (SELECT min(date_created) MDC
            FROM wallcomments
            WHERE post_id = YourConditionVariable) wc2
 on WC.date_created = wc2.mdc
WHERE post_id = YourConditionVariable
ORDER BY clikes desc
LIMIT 1 
返回带有最多Clike的wallcomment的C_ID(当绑定时),返回带有最早创建日期的C_ID

SELECT wc.c_id 
FROM wallcomments wc
INNER JOIN (SELECT max(clikes) MDC
            FROM wallcomments
            WHERE post_id = YourConditionVariable) wc2
 on WC.clikes = wc2.mdc
WHERE post_id = YourConditionVariable
ORDER BY date_created asc
LIMIT 1 

那么,你想要喜欢程度最高的那一个吗?如果平手,用最老的日期。。。或者你想要最早的约会,如果是并列的,就选一个最喜欢的?如果不是最老的,你不能得到最喜欢的评论,我想这是你想要的。你必须为最喜欢的评论选择一个范围,最老的评论有100个或更多喜欢。max(date_created)返回最新的,而不是最老的。。。也许你想要min(date_Created)作为min。起初,我只是得到了最喜欢的评论的ID。但后来我一直有一些评论,这些评论与我的观点不谋而合。但我一次只需要选择一条注释,所以我决定包括日期以及第二个参数或检查。我在想,既然只有一个唯一的日期和时间。这将消除任何联系的机会。因此,我想检查喜欢的数量和创建的日期,以便我可以将其缩小到只有一个。那么,您是否想要喜欢最多的一个,如果是并列的,请使用最早的日期。。。或者你想要最早的约会,如果是并列的,就选一个最喜欢的?如果不是最老的,你不能得到最喜欢的评论,我想这是你想要的。你必须为最喜欢的评论选择一个范围,最老的评论有100个或更多喜欢。max(date_created)返回最新的,而不是最老的。。。也许你想要min(date_Created)作为min。起初,我只是得到了最喜欢的评论的ID。但后来我一直有一些评论,这些评论与我的观点不谋而合。但我一次只需要选择一条注释,所以我决定包括日期以及第二个参数或检查。我在想,既然只有一个唯一的日期和时间。这将消除任何联系的机会。所以我想检查喜欢的数量和创建的日期,这样我就可以把它缩小到只有一个。谢谢你的回答xQbert,我尝试了你的代码,但函数只返回“1”。。。我不知道我做错了什么。你说的“1”是指1张唱片吗?这就是限制所做的,它只返回1条记录。或者它只是为这两个项目返回wc.C_ID“1”?我想我还不知道你想完成什么。对不起,第二个代码对我有用。非常感谢。但是现在我想添加一个WHERE子句,这样它只查询帖子的评论,而不是所有评论。WHERE子句只需要添加到内部查询中。谢谢你的回答xQbert,我尝试了你的代码,但函数只返回“1”。。。我不知道我做错了什么。你说的“1”是指1张唱片吗?这就是限制所做的,它只返回1条记录。或者它只是为这两个项目返回wc.C_ID“1”?我想我还不知道你想完成什么。对不起,第二个代码对我有用。非常感谢。但是现在我想添加一个WHERE子句,这样它只查询帖子的评论,而不是所有评论。WHERE子句只需要添加到内部查询中。