2011-09-14 8 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

을 나는 광고가 그런 일을 아무 생각이 없다 . 정말 고마워. 편집 : 그 같은 diff 변수를 설정하는 데 사용하는 멋진 아이디어를 잔뜩 나뭇잎. XD EDIT2 : 받아 들일 때까지 8 분. – Taylor

+0

그래, 방금 했어 : // 댓글이있는 모든 페이지를 찾으십시오. function adminnav() { \t $ pagewcoms = mysql_query ("DISTINCT pageid FROM 코멘트를 선택하십시오") 또는 die (mysql_error()); \t while ($ idnavrow = mysql_fetch_row ($ pagewcoms)) { \t \t echo "$ idnavrow [0]
"; \t} } – Taylor