我在和CodeIgniter说话
我有一个数据库,其中有三个表,分别称为类别、工厂和工厂类别
在我的类别表中,我有以下几行:
idCategories
Categorie
idFactories
在我的工厂表中,我有以下几行:
idFactories
Factoryname
Postcode
Country
Telephone number
Email
Website
Profile
Adress
在我的工厂类别中,我有以下几行:
id
idFactories
idCategories
Factorycategory
我想,当我点击下图中看到的一个类别时,会显示位于该特定类别中的工厂。
工厂可以属于多个类别。
那么,当我单击某个类别时,如何在这些表之间建立关系以获得这些结果呢?
我如何使用mysql数据库和phpmyadmin 2.8来管理它?
我在谷歌上搜索了一下,但什么也没找到。
发布于 2013-03-01 18:29:25
首先,修改你的DB设计...
table factories
-----------------
idFactories
idCategories (int) <---- add this field
Factoryname
Postcode
...
然后,查询属于特定类别的工厂。使用以下链接传递idCategories
:
创建链接:
// 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>';
根据点击的类别显示工厂...在你的文件的开头:
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
}
输出工厂:
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有所不同。
发布于 2013-03-01 18:15:40
你可能在找INNER JOIN
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'
https://stackoverflow.com/questions/15154873
复制相似问题