dongliqian6245 2018-02-09 07:56
浏览 38
已采纳

MySql查询在PHPmyadmin中工作,但不能在codeigniter中工作

i am working in codeigniter project when i try to get datas from database using 5 tables in a single query.

In phpmyadmin sql query works fine but codeigniter query not working.

My Phpmyadmin Query :

select sma_sales.date, sma_sales.reference_no, biller, sma_companies.name as DeliveryRep,customer,c.code, 
GROUP_CONCAT(CONCAT(sma_sale_items.product_name, ' (', sma_sale_items.quantity, ')') SEPARATOR '
') as iname, 
grand_total, paid, sma_payments.amount as pyname, 
payment_status
from sma_sales
left outer join sma_sale_items on sma_sale_items.sale_id=sma_sales.id
left outer join sma_companies on sma_companies.id=sma_sales.delivered_id
left outer join sma_companies as c on c.id=sma_sales.customer_id
left outer join sma_warehouses on sma_warehouses.id=sma_sales.warehouse_id
left outer join sma_payments on sma_payments.sale_id=sma_sales.id
group by sma_sales.id

My Codeigniter query:

->select("date, reference_no, biller, companies.name as DeliveryRep,customer,c.code, "
                        . "GROUP_CONCAT(CONCAT(" . $this->db->dbprefix('sale_items') . ".product_name,"
                        . " ' (', " . $this->db->dbprefix('sale_items') . ".quantity, ')') SEPARATOR '
') as iname,"
                        . " grand_total, paid,payments.amount as pyname, payment_status", FALSE)
                ->from('sales')
                ->join('sale_items', 'sale_items.sale_id=sales.id', 'left')
                ->join('companies', 'companies.id=sales.delivered_id', 'left')
                ->join('companies as c', 'c.id=sales.customer_id', 'left')
                ->join('warehouses', 'warehouses.id=sales.warehouse_id', 'left')
                ->join('payments', 'payments.sale_id=sales.id', 'left')
                ->group_by('sales.id')
$q = $this->db->get();

sma nothing but database prefix

  • 写回答

2条回答 默认 最新

  • duangonglian6028 2018-02-09 09:44
    关注

    You need to add sma in table name, it is part of table name.

    Query:

    $this->db->select("date, reference_no, biller, sma_companies.name as DeliveryRep,customer,c.code, "
                                . "GROUP_CONCAT(CONCAT(" . $this->db->dbprefix('sale_items') . ".product_name,"
                                . " ' (', " . $this->db->dbprefix('sale_items') . ".quantity, ')') SEPARATOR '
    ') as iname,"
                                . " grand_total, paid,sma_payments.amount as pyname, payment_status", FALSE)
                        ->from('sma_sales')
                        ->join('sma_sale_items', 'sma_sale_items.sale_id=sma_sales.id', 'left')
                        ->join('sma_companies', 'sma_companies.id=sma_sales.delivered_id', 'left')
                        ->join('sma_companies as c', 'c.id=sma_sales.customer_id', 'left')
                        ->join('sma_warehouses', 'sma_warehouses.id=sma_sales.warehouse_id', 'left')
                        ->join('sma_payments', 'sma_payments.sale_id=sales.id', 'left')
                        ->group_by('sales.id')
        $q = $this->db->get();
    

    You can debug you query by search and set this as true,

    $db['default']['db_debug'] = true;

    in your config/database.php

    Conclusion : Issue was there in alias of table names, after fixing alias name everything worked fine.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染