根据视图中的 id 从数据库中获取数据:Codeigniter
Get data From database according to id in view : Codeigniter
我是 codeigniter 的新手,我的 city
table 结构就像
id,name,state_id
现在在视图中我得到了城市的所有数据,但我还想在 city
中打印状态 name.but table 我只有状态 id.so 我怎么才能得到视图中的状态名称
这是我的控制器。
public function city(){
$query = "SELECT * FROM ".CITYTABLE." ORDER BY name ASC";
$citydata = $this->masterModel->_get_data("",$query);
$this->create_template('manage-city', 'admin',compact('citydata'));
}
我的观点是
<tbody>
<?php
$i=1;
foreach ($citydata as $value) {
if($value->status == 1){
$status = "<span class='label label-success'>Active<span>";
}else{
$status = "<span class='label label-warning'>Deactive<span>";
}
?>
<tr>
<th scope="row"><?= $i++ ?></th>
<td><?= ucfirst($value->name) ?></td>
<td><?= $value->state_id ?></td>//HEREEEEEEEEEEE IS I WANT TO SHOW NAME OF STATE/*****/
<td><?= $status ?></td>
<td>
<?php echo anchor("master/edit_city/{$value->id}","<i class='fa fa-pencil'></i> Edit",['class'=>"btn btn-link"]) ?>
<span class="rmv-city" data-state="<?=$value->id?>"><i class="fa fa-trash"></i> Delete</span>
</td>
</tr>
<?php } ?>
</tbody>
这是我的Schema
如果你的状态table像
Table Name: states
Fields : state_id, state_name
//City tbl
Table Name: city
Fields: id,name,state_id
您可以使用加入两个 tables,例如,
public function city(){
$query = "SELECT c.id, c.name, s.state_name FROM city c join states s
on c.state_id = s.state_id ORDER BY c.name ASC";
$citydata = $this->masterModel->_get_data("",$query);
$this->create_template('manage-city', 'admin',compact('citydata'));
}
但是,您必须遵循标准的 codeigniter 查询。
尝试使用此代码:
加入 m_state
table 和 m_city
像这样:(最好使用查询生成器 class 来获取结果)
public function city()
{
$sql = "SELECT `m_city`.*, `m_state`.`name` as `state_name`
FROM `m_city`
JOIN `m_state`
ON `m_state`.`id` = `m_city`.`state_id`
ORDER BY `m_city`.`name` ASC";
$citydata = $this->masterModel->_get_data("",$sql);
$this->create_template('manage-city', 'admin',compact('citydata'));
}
更多:https://www.codeigniter.com/user_guide/database/query_builder.html
使用以下查询
SELECT m_city.id,m_city.name,m_state.name AS state_name
FROM m_city
JOIN m_state ON m_city.state_id=m_state.id
我是 codeigniter 的新手,我的 city
table 结构就像
id,name,state_id
现在在视图中我得到了城市的所有数据,但我还想在 city
中打印状态 name.but table 我只有状态 id.so 我怎么才能得到视图中的状态名称
这是我的控制器。
public function city(){
$query = "SELECT * FROM ".CITYTABLE." ORDER BY name ASC";
$citydata = $this->masterModel->_get_data("",$query);
$this->create_template('manage-city', 'admin',compact('citydata'));
}
我的观点是
<tbody>
<?php
$i=1;
foreach ($citydata as $value) {
if($value->status == 1){
$status = "<span class='label label-success'>Active<span>";
}else{
$status = "<span class='label label-warning'>Deactive<span>";
}
?>
<tr>
<th scope="row"><?= $i++ ?></th>
<td><?= ucfirst($value->name) ?></td>
<td><?= $value->state_id ?></td>//HEREEEEEEEEEEE IS I WANT TO SHOW NAME OF STATE/*****/
<td><?= $status ?></td>
<td>
<?php echo anchor("master/edit_city/{$value->id}","<i class='fa fa-pencil'></i> Edit",['class'=>"btn btn-link"]) ?>
<span class="rmv-city" data-state="<?=$value->id?>"><i class="fa fa-trash"></i> Delete</span>
</td>
</tr>
<?php } ?>
</tbody>
这是我的Schema
如果你的状态table像
Table Name: states
Fields : state_id, state_name
//City tbl
Table Name: city
Fields: id,name,state_id
您可以使用加入两个 tables,例如,
public function city(){
$query = "SELECT c.id, c.name, s.state_name FROM city c join states s
on c.state_id = s.state_id ORDER BY c.name ASC";
$citydata = $this->masterModel->_get_data("",$query);
$this->create_template('manage-city', 'admin',compact('citydata'));
}
但是,您必须遵循标准的 codeigniter 查询。
尝试使用此代码:
加入 m_state
table 和 m_city
像这样:(最好使用查询生成器 class 来获取结果)
public function city()
{
$sql = "SELECT `m_city`.*, `m_state`.`name` as `state_name`
FROM `m_city`
JOIN `m_state`
ON `m_state`.`id` = `m_city`.`state_id`
ORDER BY `m_city`.`name` ASC";
$citydata = $this->masterModel->_get_data("",$sql);
$this->create_template('manage-city', 'admin',compact('citydata'));
}
更多:https://www.codeigniter.com/user_guide/database/query_builder.html
使用以下查询
SELECT m_city.id,m_city.name,m_state.name AS state_name
FROM m_city
JOIN m_state ON m_city.state_id=m_state.id