我想从数据库中获取记录,并将它们设置为先前采取的特定类别。我有这样的类和方法:
<?php
class CategoryForum{
private $dbHandler;
public function __construct($db){
$this->dbHandler = $db;
}
public function getCategories(){
$rowCategory = $this->dbHandler->prepare("SELECT * FROM `category`");
if($rowCategory->execute() == false){
print_r($rowCategory->errorInfo());
return false;
}else{
return $rowCategory->fetchAll(PDO::FETCH_ASSOC);
}
return true;
}
public function getForum(){
$rowForum = $this->dbHandler->prepare("SELECT `subject`, category.id FROM category, forum WHERE category.id = forum.id_category");
if($rowForum->execute() == false){
print_r($rowForum->errorInfo());
return false;
}else{
return $rowForum->fetchAll(PDO::FETCH_ASSOC);
}
return true;
}
}
我写这篇文章是基于:https://pl.wikibooks.org/wiki/PHP/Relacje_i_indeksy
当我执行这个包含在getForum方法中的查询时,我的眼睛将被释放在这个列表上(因为我得到了这个):
屏幕:列表类别和论坛
如何建立两个表之间的关系?你能帮我吗?
您可以使用INNER JOIN
。
SELECT *
FROM `category`
INNER JOIN `forum`
ON `category`.`id` = `forum`.`id_category`
如果您只想从两个表中选择特定的记录:
SELECT `category`.`id`,
`category`.`foo`,
`forum`.`bar`
FROM `category`
INNER JOIN `forum`
ON `category`.`id` = `forum`.`id_category`
你可能会得到一个错误,id
是模棱两可的,如果你有一个id主键在论坛,在这种情况下,你可以只给类别。指定别名。
SELECT `category`.`id` AS categoryID,
...