2011-09-14 17 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 is not "array array"それは2つしかないということです。私はそれを表示させることができますが、それは問題ではありません。 私はまだ "2 3"表示しか持っていません。前に述べたように、私は2つの配列データしか持っていませんでした。

[* *私は、私は今、再頼むこれをしているつもりですか?]

答えて

2

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

+0

'$ itest [0]'ではありませんか? mysql_fetch_rowは列挙された配列を返します。 mysql_fetch_arrayは連想配列を取得します。右? – Farray

+0

@Farrayええ、あなたは正しく編集されています。 – xdazz

+0

私は自分の質問を再考しましたが、より良い言葉を言いました。私は[0]それがちょうど2つを引くことを知っていた。 [私は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 - ゲット結果列を列挙型配列として返します

あなたはフェッチしていません配列をフェッチしています。 「配列配列」しか表示されないのは、最初の結果が$idnavrow = mysql_fetch_row($pagewcoms);行で「消えてしまった」ためです。

を次のようにあなたの関数を変更し

と私はあなたが期待するすべての3つの数字が表示されます確信している:

列内のすべてのアイテムを含む配列を返すは、mysql_fetch_row
$pagewcoms = mysql_query("SELECT DISTINCT pageid FROM comments") or die(mysql_error()); 
    while ($itest = mysql_fetch_row($pagewcoms)) { 
     echo $itest[0] . ' <br />'; 
    } 
0

。 $ itestを出力するのではなく、$ itest [0]を出力してください。

明快にするために、mysql_fetch_assocとprint $ itest ['pageid']を使用することもできます。

0

mysql_fetch_row()は、要素が1つしかない場合でも配列を返します。あなたの "エコー"は次のようになります:

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