繁体   English   中英

在codeigniter中的模型中运行多个查询

[英]Running multiple queries in model in codeigniter

我在codeigniter中的模型中有这个代码:

<?php
Class Mymodel Extends CI_Model
{
    function __construct()
    {
        parent::__construct();
    }

    function search($textinput)
    {
        $street = "select street from dataSearch;";
        $stripNameWOSpace = "select stripNameWOSpace FROM dataSearch;";
        $vowels = array('a','e','i','o','u',';','/','-', ' ');
        $string = strtolower($textinput);
        $strippedVowels = mysql_real_escape_string(str_replace($vowels, '', $string));
            $this->db->query("select dataSearch.id,
                dataSearch.name,
                dataSearch.street,
                dataSearch.city,
                dataSearch.lat,
                dataSearch.lng,
                category.asiatype from dataSearch join category on dataSearch.cat = category.id
                where dataSearch.street like '%".$textinput."%'");
            $this->db->query("select dataSearch.id,
                dataSearch.name,
                dataSearch.street,
                dataSearch.city,
                dataSearch.lat,
                dataSearch.lng,
                category.asiatype from dataSearch join category on dataSearch.cat = category.id
                where dataSearch.stripNameWOSpace like '%".$strippedVowels."%'");
            $query = $this->db->get();
            $query->result();

    }
}
?> 

我只想执行多个查询。 你注意到两者在哪里有不同的条件。 我只是想得到两个查询的结果。 我尝试使用switch语句执行两个查询,但它无法正常工作。 帮我。

您可以将查询设置为变量,以便对每个查询执行操作。

像这样:

Class Mymodel Extends CI_Model
{
    function __construct()
    {
        parent::__construct();
    }

    function search($textinput) {
        $query1 = $this->db->query("YOUR QUERY");
        $query2 = $this->db->query("YOUR SECOND QUERY");

        $result1 = $query1->result();
        $result2 = $query2->result();

        return array_merge($result1, $result2); // If you want to merge both results
    }
}

在你的控制器中:

$this->load->model('Mymodel');
$searchresult = $this->Mymodel->search($textinput);

有关更多信息,请阅读CodeIgniter用户指南 - 模型

我知道......老了,当我看到一些可以做得更好的东西时,我正在寻找别的东西。 除了where语句之外,两个select语句是相同的。 您可以使用“OR”来组合两个WHERE语句。 使用“DISTINCT”来避免重复输入。 如果你真的想要重复的条目,应该使用“UNION”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM