首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >categories表与factories表Codeigniter的关系

categories表与factories表Codeigniter的关系
EN

Stack Overflow用户
提问于 2013-03-01 17:54:26
回答 2查看 461关注 0票数 0

我在和CodeIgniter说话

我有一个数据库,其中有三个表,分别称为类别、工厂和工厂类别

在我的类别表中,我有以下几行:

代码语言:javascript
运行
复制
idCategories
Categorie
idFactories

在我的工厂表中,我有以下几行:

代码语言:javascript
运行
复制
idFactories
Factoryname
Postcode
Country
Telephone number
Email
Website
Profile
Adress

在我的工厂类别中,我有以下几行:

代码语言:javascript
运行
复制
id
idFactories
idCategories
Factorycategory

我想,当我点击下图中看到的一个类别时,会显示位于该特定类别中的工厂。

工厂可以属于多个类别。

那么,当我单击某个类别时,如何在这些表之间建立关系以获得这些结果呢?

我如何使用mysql数据库和phpmyadmin 2.8来管理它?

我在谷歌上搜索了一下,但什么也没找到。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-01 18:29:25

首先,修改你的DB设计...

代码语言:javascript
运行
复制
table factories
-----------------
idFactories
idCategories (int) <---- add this field
Factoryname
Postcode
...

然后,查询属于特定类别的工厂。使用以下链接传递idCategories

创建链接:

代码语言:javascript
运行
复制
// sql to get all categories from the DB
$sql="SELECT * FROM categories ORDER BY Categorie"    

// --- insert your code to pull the data from your DB here ---

// building your links on the left column
// assuming all rows from the sql above are in array $categories 
foreach ($categories as $cat) 
    echo '<a href="thispage.php?id='.$cat['idCategories'].'">'.$cat['Categories'].'</a>';

根据点击的类别显示工厂...在你的文件的开头:

代码语言:javascript
运行
复制
if (isset($_GET['id']) && intval($_GET['id'])>0) 
    $id=intval($_GET['id']);
else $id=0;

if ($id>0) {
    $sql="SELECT * FROM factories WHERE idCategories=$id";
    // --- insert your code to pull the data from your DB here ---
    // store all the rows in array $factories
}

输出工厂:

代码语言:javascript
运行
复制
if ($id>0) {
    foreach ($factories as $fac) {
       // code for echoing the data
    }
} else {
    echo "select a category on the left to show the factories...";
}

哦,我看到你在问题中改变了类别和工厂之间的关系。基本上,这些技术都是一样的,只是sql有所不同。

票数 1
EN

Stack Overflow用户

发布于 2013-03-01 18:15:40

你可能在找INNER JOIN

代码语言:javascript
运行
复制
SELECT
    fa.idFactories,
    fa.Factoryname,
    fa.Postcode,
    fa.Country,
    fa.Telephonenumber,
    fa.Email,
    fa.Website,
    fa.Profile,
    fa.Adress,
    fc.Factorycategory,
    ca.Categorie
FROM
    `factories` as `fa`
INNER JOIN
    `factorycategories` as `fc`
ON
    fa.idFactories = fc.idFactories
INNER JOIN
    `categories` as `ca`
ON
    ca.idCategories = fc.idCategories
WHERE
    ca.Categorie = 'MyCategory'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15154873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档