properties_tbl:
id property_type usd_price euro_price published
----------------------------------------------------
1 private 1000.00 0 yes
2 landed 1200.00 0 yes
3 private 0 1200.00 yes
4 land 2000.00 0 yes
5 land 0 3000.00 yes
6 private 0 1200.00 yes
此表是我网站的示例表
如果 usd_price 存在 euro 将为 0 然后如果 euro 存在 usd price 将为 0,
我在我的系统中制作了相同兑换值(value)的美元和欧元价格。
我的问题是搜索,当我搜索这些查询时它会显示所有行
SELECT *
FROM (`properties_tbl`)
WHERE (euro >= 100 OR usd >= 110)
AND (euro <= 5000 OR usd <= 4500)
AND `published` = 'yes'
最佳答案
我认为问题是由于您的 SELECT 查询引起的,而不是 CodeIgniter 的 Active Record。根据示例表中的数据,WHERE 子句中的第一个条件始终为真。就应该如何构建基本查询而言,devpro 的评论是正确的。
要在 CodeIgniter 的 Active Record 结构中做到这一点,您可能会做一些不同的事情,但这行得通:
$this->db->select('*');
$this->db->from('properties_tbl');
$this->db->where('euro BETWEEN 100 AND 5000');
$this->db->where('usd BETWEEN 110 AND 4500');
希望这对您有所帮助。
关于php - Codeigniter 事件记录从两个不同的列值中获取行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36059476/