gpt4 book ai didi

codeigniter 区分 JOINed 表中的字段名称

转载 作者:行者123 更新时间:2023-12-01 07:45:43 30 4
gpt4 key购买 nike

我需要从两个表中检索数据。第一个是事件列表,第二个是 field 列表。

我在两个表中都有一个同名的字段:events.venue(这是一个 ID),venues.venue 是地点的名称,比如“blues bar”。可以通过 events.venue =venues.id 连接表格。

我的模型片段:

$this->db->select('events.*, venues.*');
$this->db->join('venues', 'events.venue = venues.id');
if ($date != 'all')
{
$this->db->where('date', $date);
}

if ($keyword)
{
$this->db->like('description', $keyword);
$this->db->or_like('band', $keyword);
$this->db->or_like('venue', $keyword);
$this->db->or_like('genre', $keyword);
}

$Q = $this->db->get('events');
if ($Q->num_rows() > 0)
{
foreach ($Q->result() as $row)
{
$data[] = $row;
}
}

$Q->free_result();
return $data;

View 片段:

foreach ($events as $row) {
echo "<p>{$row->band} ({$row->genre})<br />";
echo "Playing at: {$row->venue}<br /></p>"; // echoes "blues bar"
//more here...
}

2 个问题:1) 为什么$row->venue 回显venues.venue,而不是events.venue?

B) 我如何区分它们?例如。如果我想回显 events.venue 和venues.venue 该怎么办?我可能可以做类似“SELECTvenues.venue as name_of_the_venue”之类的事情,但是当我已经选择了*时我该怎么做?

最佳答案

快速修复:

$this->db->select('events.col1 AS ev_col1,
events.col2 AS ev_col2,
venues.col1 AS ven_col1,
venues.col2 AS ven_col2);

其中 col1、col2 是表中的列。然后使用

$row->ven_col1 

访问值。

关于codeigniter 区分 JOINed 表中的字段名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2564543/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com