【问题标题】:Referencing foreign key in CodeIgniter Active Record and MySQL在 CodeIgniter Active Record 和 MySQL 中引用外键
【发布时间】:2013-11-13 19:44:45
【问题描述】:

我正在编写一个基本的 Intranet 应用程序,该应用程序显示来自订单数据库的公司未完成订单,该应用程序应交叉引用客户数据库以按订单和客户 ID(来自 order_db)和客户姓名(来自 customer_db)。

麻烦的是,我对 php、mysql 和 codeigniter 还是很陌生,虽然我已经设法以表格格式显示所有活动订单,但我似乎找不到关于如何引用外键的太多帮助在 codeigniter 中使用活动记录助手。我希望有人可以帮助我。

这是我的模型函数:

    function get_orders_and_customers()
    {
        $this->db->select('*');
        $this->db->from('customer_db');
        $this->db->join('order_db', 'order_db.cust_id = customer_db.cust_id');

        $query = $this->db->get('customer_db');
        return $query->result();
    }

我在我的站点控制器中同时调用 order_db 和上面的模型,然后在视图中使用 foreach 来返回每一行的列数据。不幸的是,codeigniter 似乎无法识别名称; ?> 来自 customer_db(order_db 显示完美)。

我意识到我可能完全落后了,所以任何帮助将不胜感激。谢谢

【问题讨论】:

  • 我没看懂你的问题,但是如果你使用的是$this->db->from(table),你不需要在get中指定表...只要像这样 $this->db->get();
  • 我正在尝试通过匹配公共键 cust_id(在 order_db 和 customer_db 中找到)在订单列表中显示客户的名称(存储在 customer_db 中)。我不知道该怎么做,因为 codeigniter 不会通过我当前的模型返回客户名称值

标签: php mysql codeigniter


【解决方案1】:

如果你使用 $this->db->last_query();它是否在查询的选择中显示名称?抱歉,会为此使用 cmets,但首先需要更高的代表 :)

除此之外,你还可以使用

<?php
foreach($result as $r) {
  var_dump($r);
}
?>

只是为了查看每个返回的完整记录是什么。这应该有助于确定您是否可能错误地访问该字段

【讨论】:

  • 我设法通过仅使用 if 语句匹配来自两个单独查询的两个 order_id 在视图中解决它。感谢您的回复
猜你喜欢
  • 2017-03-30
  • 2015-01-29
  • 2015-06-24
  • 2013-01-24
  • 2012-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-14
相关资源
最近更新 更多