2016-09-09 9 views
0

検索した情報を、私が意図した通りにフォーマットして検索する際に、少し問題があります。PHPがデータベースからデータを取得しています

基本的にカテゴリIDと一致する商品IDがあります。製品には複数のカテゴリがあり、結果は期待通りに得られます。しかし、すべての製品について、カテゴリIDのリストを取得するようにフォーマットしようとしています。今、私は、次のような、すべてのカテゴリIDに対して複数のプロダクトIDを取得:

Product Id: 65 ––> Categories Id:250 
Product Id: 65 ––> Categories Id:249 
Product Id: 66 ––> Categories Id:250 
Product Id: 66 ––> Categories Id:249 
Product Id: 66 ––> Categories Id:252 
Product Id: 66 ––> Categories Id:251 
Product Id: 66 ––> Categories Id:276 
Product Id: 66 ––> Categories Id:268 
Product Id: 66 ––> Categories Id:255 

私はそれがより等でもする必要があります。

を:ここで

Product Id: 65 ––> Categories Id:250, 249 
Product Id: 66 ––> Categories Id:250, 249, 252, 251, 276,268, 255 

は、私は、クエリを実行しているコードです

$sql = "SELECT * FROM `products_categories` ORDER BY `products_categories`.`productid` ASC"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
    while($row = $result->fetch_assoc()) { 
     echo "Product Id: " . $row["productid"] . " ––> " . "Categories Id:" . $row["categoryid"] . "<br>"; 
    } 
} else { 
    echo "0 results"; 
} 

入力いただきありがとうございます。

+0

私たちは、MySQLテーブルの構造上の詳細情報を必要とし、どのような関係は次のとおりです。1対多、多対多の?結合テーブル(3番目のMySQLテーブル)を使用していますか? –

+0

テーブルの構造は、私が今得ているものと非常に似ています。基本的には、それらが属するすべてのカテゴリIDの複数の製品ID。この特定のテーブルには、この関係があります。最終的にカテゴリに関連付けられた名前を取得する必要がありますが、1つの製品ID構造内でカテゴリIDのリストを取得できる限り、良い結果が得られます。もちろんカテゴリには複数の商品IDがあります。 – Sergio

答えて

3

使用GROUP_CONCAT

SELECT productid, GROUP_CONCAT(categoryid) as categoryid 
FROM products_categories 
group by productid 
order by productid 
+0

PyQL、Perfect。もう1つの質問です、どのように各カテゴリIDの後にスペースを追加できますか?私は$ row ["categoryid"]の後に連結しようとしましたが、結果はありませんでした。ありがとうございました。 – Sergio

+0

それを見つけました...セパレータについて忘れました...もう一度ありがとうございます。将来誰かが同じ結果を探している場合は、GROUP_CONCAT(categoryid SEPARATOR '、')を使用してください。 – Sergio

関連する問題