[英]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.