或在我的 SQL 查询(使用 CodeIgniter 生成)中不使用 jQuery DataTables
Posted
技术标签:
【中文标题】或在我的 SQL 查询(使用 CodeIgniter 生成)中不使用 jQuery DataTables【英文标题】:or like in my SQL query (generated with CodeIgniter) not working with jQuery DataTables 【发布时间】:2018-03-13 05:15:21 【问题描述】:我有一个类似的数组:
$expl = Array([0] => 51465, [1] => 411002);
我想获取包含51465
或411002
等邮政编码的所有记录。为此,我尝试了:
foreach ($expl as $exp)
$this->datatables->or_like('vendor.zip', $exp);
但这向我显示了以下错误:
调用未定义的方法 Datatables::or_like()
有人可以告诉我解决方案或任何替代方法吗?
【问题讨论】:
CI
的哪个版本?
CI 版本:- 3.1.3
$this->datatables
是DB
的实例吗?
是的,我用过 Jquery Datatable。
整个查询看起来像 $this->datatables->select(*); $this->datatables->join( 连接条件 ); $expl = explode(',', LOGINZIP); foreach ($expl as $exp) $this->datatables->or_like('vendor.zip', $exp); $this->datatables->from('products');
【参考方案1】:
请使用数据库 Codeigniter 对象 db 或者您可以使用自定义数据表。 我建议你请使用 db 对象。
$this->db->or_like('vendor.zip', $exp);
但你也应该使用“IN”查询。
$names = array(51465, 411002);
$this->db->where_in('vendor.zip', $names); // Here vendor is alias of table name
// Produces: WHERE vendor.zip IN (51465, 411002)
【讨论】:
我不能将数据库 Codeigniter 对象 db 与 DataTables 一起使用,这适用于数据库 Codeigniter 对象 db,但我不能在 DataTables 中使用它 DataTable 是 jQuery 库。如果要从数据库中获取记录,则应使用其他数据库 CI 对象或 db。您不能将 dataTable 与 CI 查询混合使用。但是您能否分享更多代码,我很乐意为您提供帮助。 调用方法获取数据 $(document).ready(function () oTable = $('#getData').dataTable( 'sAjaxSource': '= site_url('admin/ Product_controller/getproductsdata/pending') ?>', // 在 admin/Product_controller/getproductsdata/pending ('codeignitor controller') $this->datatables->select(*);$this->datatables->join('vendor ', 'vendor.vid = products.vendorid');$expl = explode(',', LOGINZIP);foreach ($expl as $exp) $this->datatables->like('vendor.zip', $ exp);$this->datatables->from('products'); echo $this->datatables->generate(); 我已阅读您的代码。请将“datatables”替换为“db”。并添加 $this->load->database();进入你的模型或控制器 但是我想在 DataTables 中使用它,然后只有我才能对此执行更多操作,用数据表替换 db 会将代码转换为 codeignitor,但我只希望在数据表中使用它。请帮我解决这个问题。以上是关于或在我的 SQL 查询(使用 CodeIgniter 生成)中不使用 jQuery DataTables的主要内容,如果未能解决你的问题,请参考以下文章
如何在访问报告详细信息部分中选择前 N 个或在 sql 子查询中选择前 N 个
如何更新账单编号栏?或在 sql server 的列中按顺序排列
在 SQL 中使用视图是不是更好,或者我应该只在我的 C# 代码中使用查询[关闭]