【发布时间】:2021-09-24 04:45:07
【问题描述】:
我在这里有一张restaurant 的桌子,里面有餐厅记录。
表架构
`id` int(11) NOT NULL,
`name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`cuisine` longtext COLLATE utf8_unicode_ci,
`street_no` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
`street_name` varchar(75) COLLATE utf8_unicode_ci DEFAULT NULL,
`city` varchar(75) COLLATE utf8_unicode_ci DEFAULT NULL,
`place_id` longtext COLLATE utf8_unicode_ci,
`address` longtext COLLATE utf8_unicode_ci,
`latitude` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`longitude` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`status` int(11) DEFAULT '0',
`created_at` int(11) DEFAULT NULL,
`updated_at` int(11) DEFAULT NULL,
在这里,我正在尝试根据这些列获取餐厅
city、address、status
这里如果 status=0 表示餐厅处于待处理状态
如果 status=1 表示餐厅处于已批准状态
我的方法:
/**
* GET RESTAURANT USING CITY OR ADDRESS
*
*/
public function get_restaurant_by_city($city, $address="", $page_per_row, $pagenum)
{
$this->db->where('status', 1)->like('cit', $city, 'both')->or_like('address', $address, 'both'); //both = %query%, before = %query, after = query%
if (isset($pagenum) && $pagenum !== 0) {
$pagenum = ($pagenum - 1) * $page_per_row;
}else {
if(isset($_GET['page'])) {
$pagenum = ($pagenum + 1) * $page_per_row;
}else {
$pagenum = 0;
}
}
$find = $this->db->get($this->table, $page_per_row , $pagenum);
return $find->result();
}
问题: 申请$this->db->where('status', 1) 后,我仍然得到有status=0 的记录。如果有人指导我如何以完美的方式编写 SQL 查询以获得所需的结果,那就太好了。
使用演示数据:
city 露台
address 4332 Lakelse Ave, Terrace, BC V8G 1N8, Canada
【问题讨论】:
-
使用查询分组
-
你能解释一下你指向的地方吗?
-
CI2 还是 CI3?哪个 CI 版本?
-
我猜是 CI v3.1
标签: php sql codeigniter