【发布时间】:2018-12-15 17:33:10
【问题描述】:
我想在房地产表和房地产类型表之间进行内部连接。我制作了一个编辑页面,但我想按 cusId 显示客户信息。我可以从房地产表中提取数据。但是房地产表中的房地产类型。我在 Estatetype 表中保存了 EstateType 名称。当我从庄园表中调用庄园类型时,只显示数字(1,2,3)但我想从庄园类型表中显示他们的名字。我该怎么做?
我想通过 Estatetype 表中的 Id 显示客户资产信息。但我不能这样做。
控制器:
$viewData = new stdClass();
$this->load->model('join_model');
$viewData->estateList = $this->join_model->estatetypes();
$viewData->customers = $this->db->where("cusId", $cusId)->get("customer")->row();
$viewData->property = $this->db->where("cusId", $cusId)->get("estate")->row();
$viewData->estype = $this->db->get("estatetype")->result();
$viewData->heating = $this->db->get("heating")->result();
$viewData->cities = $this->db->get("city")->result();
$this->load->view('property_edit',$viewData);
型号:
<?php
class Join_model extends CI_Model {
public function __construct()
{
parent::__construct();
}
public function estatetypes()
{
$this->db->select('estate.CusId,estate.estateType,estatetype.estateTypeId,estatetype.estateTypeAr,estatetype.estateTypeEng');
$this->db->from('estate');
$this->db->join('estatetype', 'estate.estateType = estatetype.estateTypeEng');
$results = $this->db->get()->row();
return $results;
//return $this->db->get_where('users', array('userId' => $id), 1);
}
}
我想在视图中从房地产表中添加房地产类型时显示,从房地产类型中显示 estataTypeEn。为此,我做了内部连接,但是当我将它添加到视图和控制器时。没有什么。我该怎么做呢?
查看:
<!-- Basic select -->
<div class="form-group">
<label class="control-label col-lg-3">Estate Type <span class="text-danger">*</span></label>
<div class="col-lg-9">
<select name="estateType" class="form-control">
<option value="<?php echo $property->estateType; ?>" readonly><?php echo $estateList->estateType; ?></option>
<?php
foreach($estype as $etype){ ?>
<option value="<?php echo $etype->estateTypeId; ?>"><?php echo $etype->estateTypeEng; ?></option>
<?php }?>
</select>
</div>
</div>
estatetype 表(类型名称在这里)
CREATE TABLE `estatetype` (
`estateTypeId` int(11) NOT NULL AUTO_INCREMENT,
`estateTypeNameEn` varchar(255) COLLATE utf8_bin DEFAULT NULL,
`estateTypeNameAr` varchar(255) COLLATE utf8_bin DEFAULT NULL,
PRIMARY KEY (`payTypeId`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
房产证
CREATE TABLE `estate` (
`estateId` int(11) NOT NULL AUTO_INCREMENT,
`CusId` int(11) DEFAULT NULL,
`estateType` int(11) DEFAULT NULL COMMENT '',
`estateCentare` varchar(6) COLLATE utf8_bin DEFAULT NULL,
`estateRoom` varchar(2) COLLATE utf8_bin DEFAULT NULL COMMENT '',
`estateSalon` varchar(2) COLLATE utf8_bin DEFAULT NULL COMMENT '',
`estateBathroom` varchar(2) COLLATE utf8_bin DEFAULT NULL COMMENT '',
`estateHeating` int(11) DEFAULT NULL COMMENT '',
`estateCity` int(11) DEFAULT NULL COMMENT '',
`estateAddress` varchar(255) COLLATE utf8_bin DEFAULT NULL,
`estateCoord` varchar(255) COLLATE utf8_bin DEFAULT NULL,
`estateGarden` tinyint(1) DEFAULT NULL COMMENT '',
`estateBalcony` tinyint(1) DEFAULT NULL COMMENT '',
`estatePackage` varchar(255) COLLATE utf8_bin DEFAULT NULL,
`estatePackageDate` datetime DEFAULT NULL,
`estatePackageUser` int(11) DEFAULT NULL,
`estateCreateDate` datetime DEFAULT NULL,
`estateCreateUser` int(11) DEFAULT NULL,
`estateEditDate` datetime DEFAULT NULL,
`estateEditUser` int(11) DEFAULT NULL,
`estateDue` decimal(5,0) DEFAULT NULL,
`estateImg` varchar(255) COLLATE utf8_bin DEFAULT NULL,
PRIMARY KEY (`estateId`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
【问题讨论】:
-
没有人可以帮助我吗?
-
如果您需要特定类型的 JOIN,您可以通过函数的第三个参数指定它。选项有:左、右、外、内、左外、右外 $this->db->join('table2', table2.val = table1.val', 'inner');
-
你能给我看看吗?我无法理解。
-
你的数据库表是什么样子的?
-
我在顶部添加了我的数据库表。
标签: php codeigniter model inner-join codeigniter-3