我有两个表,一个类别表和一个工厂表。 在我的类别表中,我有以下行。
idcategory
category
在我的工厂表中,我有以下行。
idfactories
factoryname
postcode
country
telephone number
email
website
profile
adress
idcategory
我有另一张桌子,我也存放了idfactory和idcategory。
我的factorycategories表包含以下行。
idfactorycat
idfactory
idcategory
factorycat
我加入了我的类别模型,因为我想要访问我网站上的类别,当我点击某个类别时,必须显示存储在该类别中的工厂。
在我的模型中我有
$this->db->select('*');
$this->db->from('bedrijfcategorieen');
$this->db->join('bedrijfcategorieen', 'bedrijfcategorieen.idbedrijven = bedrijven.idbedrijven');
$this->db->join('bedrijfcategorieen', 'bedrijfcategorieen.idcategorieen = categorieen.idcategorieen');
$query = $this->db->get();
我实际需要存储在我的控制器和视图中? 我对codeigniter很新。
ps:我翻译了我的行,所以对其他人来说很容易理解,因为我是荷兰人。
由于
编辑: 解释起来有点棘手,但我有侧边栏目。
Categories
cars
cars parts
books
etc etc...
我想创建每个类别的链接。
点击时,让我们说汽车。我想进入一个结果页面,工厂出现的类别id = 1,因为汽车的id = 1。 这是我的实际问题。我想我需要加入。
希望你明白。
再次感谢。答案 0 :(得分:0)
这更像是一般的MVC问题。您的数据库架构对于这个问题并不重要,因为您想知道如何访问数据而不是如何优化您的查询(根据我的理解)......
因此,您的模型需要返回一些内容,例如return $query->result();
。然后,您可以在控制器中使用它来获取该数据并将其发送到视图。例如:
控制器
$data['my_data'] = $this->my_model->my_get_function(); // this is calling your function above
$this->load->view('my_view', $data); // loads my_view and sends the data array to it
在视图中保留所有presentional(HTML)数据,但您可以访问控制器发送的数据,在我们的情况下,$my_data
是一个包含所有返回的对象您所做查询的行。这将显示数据:
查看
// ...html here...
<div>
<pre>
<?php var_dump($my_data); ?>
</pre>
</div>
// ...html here...
这些只是控制器和视图的示例部分。阅读有关MVC的更多信息,以便更好地了解它应该如何工作。
答案 1 :(得分:0)
根据你的编辑,我只是在这里给你基本的想法。有关详细信息,请参阅codeigniter手册:
//模型
function getresults($segment3){
$this->db->select('*');
$this->db->from('category');
$this->db->join('factories', 'category.idcategory. ' = factories.idfactories');
$this->db->join('factorycategories', 'factorycategories.idfactory = ' . $segment3);
$query = $this->db->get();
return $query->result();
}
//Note that it would return only results that match in all tables.
//If you need to return more of a table, use right join or left join.
function categories(){ //Call this from controller to create the initial links
$query = $this->db->get('category');
return $query->result();
}
//控制器
function pageCategories(){ // Shows initial categories links on page
$data["links"] = $this->modelname->categories();
$this->load->view("page-to-view");
}
function pageFactories(){ // takes categories and shows factories
$this->load->helper('url');
$segment3 = $this->uri->segment(3);
$data["results"] = $this->modelname->getresults($segment3);
$this->load->view("page-to-view");
}
//视图
print_r($results); //run a test - debug
显示您的链接(注意细分模式):
if(isset($links) && is_array($links)){
foreach($links as $k => $value){
echo '<a href="'.base_url().'Yourcontroller/pageFactories/'.$value->idcategory.' ">' .$value->category. '</a>';
echo "<br />";
}
}
if(isset($results ) && is_array($results )){
foreach($results as $key => $row){
echo $row->category;
echo "<br />";
echo $row->factoryname;
//It goes on as much as you want
}
}
你怎么把它转换成荷兰语是我无法弄清楚的。注意:google.translate.com会弄乱你可能需要清理的大量空白区域。