如何在带有codeigniter的点燃数据表中使用where和or_where

时间:2014-08-18 03:54:03

标签: codeigniter datatable

它不在->or_where('text like',"%dog%")工作。我用它来制作json格式以在datatable中查看 请帮帮我!

       $this->datatables->select('id,name,text,profile_image_url') //Ignited datatables
        ->unset_column('id')
        ->unset_column('profile_image_url')
        ->unset_column('name')
        ->unset_column('text')
        ->add_column('profile_image_url', '<img src="$1"/>', 'profile_image_url')
        ->add_column('name','$1','name')
        ->add_column('text','$1','text')
        ->where('text like',"%cat%")
        ->or_where('text like',"%dog%")
        ->from('posts');

       echo $this->datatables->generate();

2 个答案:

答案 0 :(得分:1)

它不起作用因为你有invalide语法,使用 - &gt; where表示你正在比较列是否等于你的第二个参数,要使用类似函数你的语法应该是

$this->db->like('text', 'cat');
$this->db->like('text2', 'dog'); 

但是如果要控制放置通配符(%)的位置,可以使用可选的第三个参数。您的选择是在&#39;之后,&#39;之后&#39;和&#39;两个&#39; (这是默认值。)

$this->db->like('title', 'match', 'before'); 
// Produces: WHERE title LIKE '%match'  

$this->db->like('title', 'match', 'after'); 
// Produces: WHERE title LIKE 'match%' 

$this->db->like('title', 'match', 'both'); 
// Produces: WHERE title LIKE '%match%' which is default

希望这会对你有所帮助

答案 1 :(得分:0)

我理解你的意思。但我只是使用点燃数据表的代码来创建一个jsons数组来支持数据表上的视图。它不使用普通代码,例如&#34; $ this-&gt; db-&gt; like(&#39; text&#39;,&#39; cat&#39;);&#34;在codeigniter的数据库代码中。

我已经尝试了它并返回了一个空数组。

    $this->datatables->select('id,name,text,profile_image_url')
        ->unset_column('id')
        ->unset_column('profile_image_url')
        ->unset_column('name')
        ->unset_column('text')
        ->add_column('profile_image_url', '<img src="$1"/>', 'profile_image_url')
        ->add_column('name','$1','name')
        ->add_column('text','$1','text')
        // ->like("text","%dog%");
        // ->like("text","cat");
        ->from('posts');
        $this->db->like("text","dog");
        $this->db->like("text","cat");

    echo $this->datatables->generate();