0

インターネット ストアで特定の製品の追加製品を表示するスクリプトを作成しようとしています。価格とカテゴリに基づいて表示される製品。たとえば、マザーボード スクリプトを選択した場合、ハード ディスク クーラー セットに追加の製品が表示されます。価格帯は管理者が指定する必要があります。問題は、コードが重複した製品を返すことです。MySQLクエリで区別されるgroup byを使用しようとしました。また、PHPで配列固有の関数を使用しようとしました。どちらもうまくいきませんでした。この問題の可能な解決策は何ですか? コードは次のようになります。

if(isset($product_info['related_kv4nt_id_2'])) {
    $i=1;
                        $imax = 5;
                        while ($i < $imax) {
$product_sql_test2 = $this->db->query("SELECT p.product_id, p.price,    pc.product_id AS product_id
FROM oc_product p
INNER JOIN oc_product_to_category pc ON p.product_id = pc.product_id
WHERE p.price  BETWEEN '".$product_info['related_kv4nt_min_2']."' and '".$product_info['related_kv4nt_max_2']."'
AND pc.category_id =  '".$product_info['related_kv4nt_id_2']."'
GROUP BY pc.product_id
ORDER BY RAND( ) 
LIMIT 0 , 10");                        if(isset($product_sql_test2->row['product_id'])){$this->data['product_spec_2_'.$i.''] = $product_sql_test2->row['product_id'];}
$i++;
}
} 
4

1 に答える 1

0

試してみてください

GROUP BY product_id

または好き

GROUP BY p.product_id

pc.product_id AS product_id 

これをに変更

pc.product_id AS p_id 

のようにグループ化してみてください

GROUP BY p_id
于 2013-07-10T05:59:33.683 に答える