2011-09-14 122 views
0

我有這個功能在另一個頁面上調用。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'); 

我的問題是功能打印 「陣列 陣」 我可以處理數據,但不應該有3個不同的結果? 這是我去過的最近的。這個想法是搜索表格並找到帶有評論的頁面,我將在後面列出鏈接。

所以我在尋找的結果將是

「1 3」

預先感謝您。

編輯:

對不起,我措辭不好我的問題。 porlem不是「陣列陣列」,它只有兩個。我可以讓它顯示,但沒關係。 我仍然只有「2 3」顯示,如前所述,我只有兩個陣列數據。

[* *我,我我不得不現在又重新問這個?]

回答

2

應該echo "$itest[0] <br />";

+0

不應該是'$ itest [0]'? 'mysql_fetch_row'返回一個枚舉數組。 'mysql_fetch_array'會得到關聯數組。對? – Farray

+0

@Farray是的,你是對的,編輯。 – xdazz

+0

我重申了我的問題,但措辭更好。我知道[0]它只是拉了兩個。 [我reasked http://stackoverflow.com/questions/7412157/mysql-php-select-distinct] – Taylor

1

檢查PHP文檔:http://php.net/manual/en/function.mysql-fetch-row.php

和mysql_fetch_row - 獲取作爲枚舉數組的結果行

你不是fetchin g值,你正在獲取一個數組。你只看到「陣列數組」的原因是因爲第一個結果是在$idnavrow = mysql_fetch_row($pagewcoms);行上「消失」。

的功能更改爲以下,我敢肯定你會看到你所期望的所有3個數字:

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

和mysql_fetch_row返回一個包含所有行中的項目的數組。而不是打印$ itest,你應該打印$ itest [0]。

爲了清楚起見,您也可以使用mysql_fetch_assoc並打印$ itest ['pageid']。

0

mysql_fetch_row()返回一個數組,即使它只包含一個元素。你的「回聲」應該是這樣的:

echo "{$itest[0]} <br />";