2011-09-14 43 views
-2

我有这个功能在另一个页面上调用。MYSQL/PHP SELECT DISTINCT

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', '[email protected]', '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”[我之前问过这个问题,但措辞很差。]

回答

2

看起来像查询实际上拉着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 />"; 
    } 
} 
+0

我的广告不知道它的工作一样, 。非常感谢。 编辑:这留下了一堆用于设置这样的差异变量的漂亮的想法。 XD 编辑2:8分钟,直到我可以接受。 – Taylor

+0

是的,我只是这样做: //尝试找到所有包含评论的页面。 function adminnav(){ \t $ pagewcoms = mysql_query(“SELECT DISTINCT pageid FROM comments”)或die(mysql_error()); \t while($ idnavrow = mysql_fetch_row($ pagewcoms)){ \t \t echo“$ idnavrow [0]
”; \t} } – Taylor