kes*_*nez 3 php mysql concat codeigniter
请帮助我理解正确的连接语法.
我有一个名为inventory的表,其中包含:
trans_id
trans_items items -> item_id
trans_user employees -> person_id
trans_date
trans_comment
trans_inventory
Run Code Online (Sandbox Code Playgroud)
如上所示,trans_items是items表中的外键,trans_user是employees表中的外键,employee id是people表的外键.
现在我想做的是在HTML中显示库存表,但是我希望显示员工NAME,而不是显示员工ID.
编辑................................................所以我只能使用以下代码显示员工的姓氏:
$this->db->select('inventory.*, items.name ,people.last_name');
$this->db->from('inventory');
$this->db->join('items', 'inventory.trans_items = items.item_id' , 'left');
$this->db->join('people', 'inventory.trans_user = people.person_id' , 'left');
$this->db->where('deleted', 0);
$this->db->order_by('trans_date desc');
Run Code Online (Sandbox Code Playgroud)
使用型号代码:
foreach($report_data as $row)
{
$tabular_data[] = array($row['name'], $row['last_name'],$row['trans_date'], $row['trans_inventory'], $row['trans_comment']);
}
Run Code Online (Sandbox Code Playgroud)
但我需要它作为名字和姓氏,所以我做了这些:
$this->db->select('inventory.*, items.name ,CONCAT(people.first_name, " ",people.last_name) as employee');
$this->db->from('inventory');
$this->db->join('items', 'inventory.trans_items = items.item_id' , 'left');
$this->db->join('people', 'inventory.trans_user = people.person_id' , 'left');
$this->db->where('deleted', 0);
$this->db->order_by('trans_date desc');
Run Code Online (Sandbox Code Playgroud)
使用型号代码:
foreach($report_data as $row)
{
$tabular_data[] = array($row['name'], $row['employee'],$row['trans_date'], $row['trans_inventory'], $row['trans_comment']);
}
Run Code Online (Sandbox Code Playgroud)
如果我使用concat函数会出错.请帮忙.
Dia*_*blo 22
你的选择必须是这样的($ this-> db-> select中的第二个参数('你的选择部分',FALSE)):
$this->db->select('inventory.*, items.name ,CONCAT(people.first_name, " ",people.last_name) as employee', FALSE);
$this->db->from('inventory');
$this->db->join('items', 'inventory.trans_items = items.item_id' , 'left');
$this->db->join('people', 'inventory.trans_user = people.person_id' , 'left');
$this->db->where('deleted', 0);
$this->db->order_by('trans_date desc');
Run Code Online (Sandbox Code Playgroud)
从Codeigniter手册引用:
如果将其设置为FALSE,CodeIgniter将不会尝试使用反引号来保护您的字段或表名称.如果您需要复合选择语句,这非常有用.