如何使用NotORM加入多对多表

时间:2014-07-02 11:28:09

标签: php mysql sql relational-database notorm

我正在学习NotORM来为学校制作一个简单的系统。我希望能够将“承诺”授予“学生”。这是我的数据结构:

我的桌子:

  • -studentid(PK) -名字 -姓 -出生日期 -vmg -yeargroup

链接

  • -linkid(PK) -studentid(FK) -pledgeid(FK) -timeofaward

承诺

  • -pledgeid(PK) -pledgename -pledgeinfo

伟大的NotORM教程(http://www.sitepoint.com/database-interaction-made-easy-with-notorm/)中的代码说我应该这样做:

<?php
foreach ($books as $book) {
echo "<tr>";
echo "<td>" . $book["title"] . "</td>";
echo "<td>" . $book["author"] . "</td>";
// book_category table joins book and category
$categories = array();
foreach ($book->book_category() as $book_category) {
    $categories[] = $book_category->category["category"];
}
echo "<td>" . join(", ", $categories) . "</td>";
echo "</tr>";
}
?>
  1. 我的数据结构是否正确使用NotORM
  2. 如何翻译示例,以便向学生展示以及已授予他们的奖项。 - 我觉得我已经尝试过该代码的每个变体,仍然无法使其工作。
  3. 非常感谢提前。

1 个答案:

答案 0 :(得分:2)

问题的关键:从Relation-Table(此处为Link)开始,并在NotORM上中继以加入其他表。

看看代码有多简单:

$db->link("pledge.name", $someName)->select("student.firstname, student.lastname");