繁体   English   中英

Codeigniter活动记录从两个不同的列值获取行

[英]Codeigniter active record get rows from two different column value

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存在,欧元将为0,然后,如果欧元存在usd价格将为0,

我在系统中进行了相同的兑换价值美元和欧元价格。

我的问题是在搜索中,当我像这些查询一样搜索时,它会显示所有行

SELECT * 
FROM (`properties_tbl`) 
WHERE (euro >= 100 OR usd >= 110) 
  AND (euro <= 5000 OR usd <= 4500) 
  AND `published` = 'yes'  

我相信问题是由于您的SELECT查询,而不是CodeIgniter的Active Record。 根据示例表中的数据,WHERE子句中的第一个条件始终为true。 就构建基本查询的方式而言,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');

希望这可以帮助。

感谢大家,所有这些都给我非常有用的建议。 我在@devpro和@cfnerd上创建了新的查询。

$this->db->where("(property_price BETWEEN $minprice AND $maxprice OR usd BETWEEN $usd_minprice AND $usd_maxprice)");

现在工作了! 谢谢大家

暂无
暂无

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

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