php - 连接表并显示 city.name

标签 php mysql codeigniter codeigniter-3

连接两个表和显示另一个值时出现问题,已设置表并加载模型并以大写字母开头。

我想要的是匹配 jobs.city_id 和 cities.id 并显示 cities.city_name

Jobs_model.php

public function get_city(){
$this->db->select('*');
$this->db->from('cities');
$this->db->join('jobs', 'cities.city_name = jobs.city_id');
$this->db->where('jobs.city_id = cities.id');
$query = $this->db->get();
}

Controller .php

$data['city_name'] = $this->jobs_model->get_city();

查看.php

<?php echo $city_name['city_name'];?>

SQL

CITIES
id
city_name

JOBS
id
city_id 

更新。 sql和拼写错误

最佳答案

You also have not returned any thing in model function

如果您需要特定类型的 JOIN,您可以通过函数的第三个参数指定它。选项有:左、右、外、内、左外和右外。

下面这个函数示例只会一次返回一行,您可能需要使用 result_array();阅读下面的链接如何生成结果 https://www.codeigniter.com/user_guide/database/results.html

public function get_city(){
    $this->db->select('*');
    $this->db->from('cities');
    $this->db->join('jobs', 'jobs.city_id = cities.id', 'LEFT');
    //$this->db->where('jobs.city_id = cities.id');
    $query = $this->db->get();

    // Note only returns one row
    return $query->row_array();
}

在 Controller 上

$info = $this->jobs_model->get_city();

$data['city_name'] = $info['city_name'];

多个结果

public function get_city(){
    $this->db->select('*');
    $this->db->from('cities');
    $this->db->join('jobs', 'jobs.city_id = cities.id', 'LEFT');
    $query = $this->db->get();

    return $query->result_array();
}

在 Controller 上

$data['cities'] = $this->jobs_model->get_city();

查看

<?php foreach ($cities as $city) {?>
    <?php echo $city['city_name'];?>
<?php }?>

关于php - 连接表并显示 city.name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46250366/

相关文章:

PHP一起获取所有行的值

mysql - 如果满足所有条件,SQL 获取行

mysql - 4 列的 DISTINCT 值

php - 如何简化这个PHP条件语句?

php - 将 PHP 数组发送到 Javascript

php - 减少对外部 API 的身份验证调用 (Laravel 5.6)

mysql - 嵌入系统的表设计

php - 从 php 5.3 升级到 php 5.5 显示连接错误

mysql - 从包含逗号分隔字符串的列中搜索逗号分隔值 mysql

PHP MySQL utf-8 欧元符号在菱形上显示为问号