【问题标题】:MYSQL/PHP SELECT DISTINCTMYSQL/PHP SELECT DISTINCT
【发布时间】:2011-11-16 18:00:09
【问题描述】:

我在另一个页面上调用了这个函数。

function adminnav (){
    $pagewcoms = mysql_query("SELECT DISTINCT pageid FROM comments") or die(mysql_error());
    $idnavrow = mysql_fetch_row($pagewcoms);
    while ($itest = mysql_fetch_row($pagewcoms)) {
        echo "$itest[0] <br />";
    }
}

adminnav('');

桌子是。

CREATE TABLE `comments` (
  `commentid` int(5) NOT NULL auto_increment,
  `pageid` int(5) NOT NULL default '0',
  `name` text NOT NULL,
  `email` text NOT NULL,
  `comment` text NOT NULL,
  `date` datetime NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (`commentid`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=481 ;

INSERT INTO `comments` VALUES(480, 1, '3', '3', '3', '2011-09-13 22:43:06');
INSERT INTO `comments` VALUES(479, 1, '2', '2', '2', '2011-09-13 22:43:01');
INSERT INTO `comments` VALUES(476, 1, '1', '1', '1', '2011-09-13 17:22:49');
INSERT INTO `comments` VALUES(477, 2, 'taylordcraig', 'taylordcraig@gmail.com', 'this is page two', '2011-09-13 17:26:09');
INSERT INTO `comments` VALUES(478, 3, 'this is page3', 'this is page3', 'this is page3', '2011-09-13 22:28:59');

它只得到两个结果。 "2 3" [我之前问过这个,但措辞不好。]

【问题讨论】:

    标签: php mysql select unique


    【解决方案1】:

    看起来查询实际上是按应有的方式提取 3 个结果。你只是让他们中的一个离开:

    function adminnav (){
        $pagewcoms = mysql_query(...);
    
        // HERE YOU FETCH ONE ROW BUT DO NOTHING WITH IT
        $idnavrow = mysql_fetch_row($pagewcoms);
    
        while ($itest = mysql_fetch_row($pagewcoms)) {
            echo "$itest[0] <br />";
        }
    }
    

    如果您只是删除该行,或者稍微调整一下,它应该会显示一切正常:

    function adminnav (){
        $pagewcoms = mysql_query(...);
        $idnavrow = null;
    
        while ($itest = mysql_fetch_row($pagewcoms)) {
            if (empty($idnavrow)) {
                $idnavrow = $itest;
            }
            echo "$itest[0] <br />";
        }
    }
    

    【讨论】:

    • 我不知道它是这样工作的。非常感谢。编辑:这留下了一堆用于设置差异变量的好主意。 XD EDIT2:8 分钟后我可以接受。
    • 是的,我刚刚做了://尝试查找所有带有 cmets 的页面。 function adminnav (){ $pagewcoms = mysql_query("SELECT DISTINCT pageid FROM cmets") or die(mysql_error()); while ($idnavrow = mysql_fetch_row($pagewcoms)) { echo "$idnavrow[0]
      "; } }
    猜你喜欢
    • 2015-01-28
    • 1970-01-01
    • 1970-01-01
    • 2021-07-06
    • 2013-05-27
    • 2017-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多