2011-07-27 2 views
-1

テーブルにこれらの値があります:最初の値だけを重複しないドロップダウンリストに取得したい。このコードはうまくいきますが、重複を示しています。どんな助け?ありがとう。
メディア>オーディオ>国
メディア>ビデオ>国
メディア>ビデオ>国
メディア>その他>ゴスペル
アパレル>女性>大人
アパレル>男性>大人個別に選択し、最初の値をドロップダウンに入れます

$sqlbrand = "SELECT DISTINCT Product_Type FROM products ORDER BY Product_Type"; 



       $rsbrand = mysql_query($sqlbrand); 



       while($brand = mysql_fetch_array($rsbrand)) 

        { 

         if($brand['Product_Type'] != '') 

         {     

         $str = $brand['Product_Type']; 

         $category = explode('>', $str); 

         $catName = $category['0']; 

          echo "<option value=\"".$catName."\">".$catName."\n "; 

         } 

          else 

         { 

         } 

        } 

答えて

1

入れすべての結果を配列に格納し、array_uniqueを使用して、その結果をドロップダウンリストに表示します。

おそらくSQLクエリを変更することによっても達成できます。あなただけ以前のelemを保存し、それが現在のと同じだかどうかを確認する必要があるので、

1

あなたはProduct_Typeで注文するので、最初に同じことをelemsは、次々にグループ化されます。

$savePT=""; 

while($brand = mysql_fetch_array($rsbrand)) 
{ 
    if($brand['Product_Type'] != '' && $brand['Product_Type']!=$savePT) 
    {     
     $category = explode('>', $brand['Product_Type']); 
     $catName = $category['0']; 
     echo "<option value=\"".$catName."\">".$catName."\n "; 
     $savePT= $brand['Product_Type']; 
    } 
} 

編集:

$sqlbrand = "SELECT DISTINCT SUBSTRING_INDEX(Product_Type,' >',1) as ProductType FROM products ORDER BY Product_Type"; 
$rsbrand = mysql_query($sqlbrand); 
while($brand = mysql_fetch_array($rsbrand)) 
{ 
    echo '<option value="'.htmlentities($brand['ProductType']).'">'.$brand['Product_Type'].'\n '; 
} 

作業をする必要があります:CSよう

は、あなただけのクエリを変更することができ、と述べています。

+0

ありがとうございます。 by order byが使用されていない場合はどうでしたか? – karto

+0

配列に値を追加し、C.S.のように 'array_unique'を実行して、配列をループし、配列中の各要素を表示します。配列を使用して、各値に対して、配列内にあれば無視されます。オプションがエコーされ、値が配列に追加された場合 – Enki

+0

私は試しました。 \ nプリントアウトされています。その値を得ていないようです。それはSQLクエリから来ることができますか? – karto

関連する問題