論理的には、カテゴリには、定義したように多くのカテゴリの製品ではなく、多くの製品があるため、逆になると思います (正しくない場合は申し訳ありません)。
========編集部分====================
ここに投稿された小さなソースを削除しました。マニュアルは
非常に簡単で、はるかに優れており、接続、関連付け、更新などの方法に関するサンプル コードが非常に役立つためです。マニュアルに問題がある場合は、喜んでお手伝いします。
========== 追加情報 =======================
ここにソースコードをいくつか入れただけで、回答に何も変更しませんでした。このコードを試してみてください。必要に応じて両方の方法で機能します!
<?PHP
echo '<pre>';
require('rb.php');
$toolbox = R::setup('mysql:host=localhost;dbname=my_ORM','root','');
$farm = R::dispense('building');
//create the product list
list($product1,$product2,$product3) = R::dispense('product',3);
//add attributes
$product1->name='prod1';
$product2->name='prod2';
$product3->name='prod3';
//create a list of categories
list($category1,$category2) = R::dispense('category',2);
//add attributes
$category1->name='categ1';
$category2->name='categ2';
//the connect beans together
R::associate($category1,$product1);
R::associate($category1,$product2);
R::associate($category1,$product3);
R::associate($category2,$product3);
//then store
R::store($product1);
R::store($product2);
R::store($product3);
R::store($category1);
R::store($category2);
//get id for category 1
$categId=R::getCell( " select `id` from `category` where `name`='categ1' ");
//get products for category 1
$results =
R::getAll( "
SELECT `product`.`id`,`product`.`name`
FROM `product` left JOIN `category_product`
on `category_product`.`product_id`= `product`.`id`
where `category_id`='".$categId."' ");
//display
print_r($results);
//get categories for product3
$prodId=R::getCell( " select `id` from `product` where `name`='prod3' ");
$results =
R::getAll( "
SELECT `category`.`id`,`category`.`name`
FROM `category` left JOIN `category_product`
on `category_product`.`category_id`= `category`.`id`
where `product_id`='".$prodId."' ");
print_r($results);
?>