从codeigniter中的两个表中选择查询
Posted
技术标签:
【中文标题】从codeigniter中的两个表中选择查询【英文标题】:Select Query from two tables in codeigniter 【发布时间】:2015-07-29 20:06:25 【问题描述】:我有 2 张桌子: 活动和注册。
事件字段:EventID 和 EventName
注册字段:MemberID 和姓名
我想提取该人的 EventName 和 Name-。如何使用模型执行此操作? 我的代码: 型号
function getAll()
$query = $this->db->get('tblRegistration');
if( $query->num_rows() > 0)
foreach ($query->result() as $row)
$data[] = $row;
$query->free_result();
return $data;
控制器
public function getallevents()
$this->load->model('events_model');
$data['records'] = $this->events_model->getAll();
$this->load->view('view-events', $data);
查看
foreach ($records as $row):
echo "<tr>";
echo "<td> $row->Name</td>";
// echo "<td> $row->intLocationID</td>";
echo "</tr>";
endforeach;
编辑
好的,我已经从表格中添加了我想要的数据。
型号
function getAll()
// get all the records from the schools table
$this->db->select('*');
$this->db->from('tblRegistration as reg');
$this->db->join('tblMeetRace as met', 'reg.intMeetRaceID = met.intEventID');
$query = $this->db->get();
// if the number of rows returned is more than 0
if( $query->num_rows() > 0)
// loop through each record (row) and place that
// record into an array called $data
foreach ($query->result() as $row)
$data[] = $row;
$query->free_result();
// return the array to the controller
return $data;
查看
foreach ($records as $row):
echo "<tr>";
echo "<td> $row->intMeetRaceID/td>";
echo "<td> $row->intEventID</td>";
echo "</tr>";
endforeach;
但我收到以下错误:
遇到 php 错误 严重性:警告 消息:为 foreach() 提供的参数无效 文件名:views/view-events.php 行号:89
【问题讨论】:
【参考方案1】:首先,您需要在事件表中添加另一列来存储MemberId
,例如memberid
。
一旦你有了它,当一个成员注册一个事件时,你可以将他的ID
存储在事件表中并关联它。
然后你可以使用Joins
来获取数据
$this->db->select('*');
$this->db->from('registration as reg');
$this->db->join('events as evt', 'reg.id = evt.memberid');
$query = $this->db->get();
【讨论】:
感谢重播,所以我必须把东西放在 select('*') 或 get() 中吗?还是选择一切的剂量? 它选择一切 如果您可以查看我现在所做的编辑,我会收到此错误 那是因为我认为结果是空的。尝试打印结果,看看你得到了什么。也可以试试 $this->db->last_query(),这会打印最新的查询,检查是否是你想要运行的查询以上是关于从codeigniter中的两个表中选择查询的主要内容,如果未能解决你的问题,请参考以下文章
根据codeigniter中的外键从两个表中获取json编码数据