php - Codeigniter 事件记录从两个不同的列值中获取行

标签 php mysql codeigniter

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/

相关文章:

php - 如何将表中的日期与当前日期(不包括 codeigniter 中的时间)进行比较

php - 只允许在 Codeigniter 中看到路由中指定的 URL

Javascript 等价于 PHP Explode()

php - 在没有 symfony 框架的情况下使用 symfony/mailer 组件

mysql - 在 SQL 语句搜索中查找 ruby​​ 哈希值

php - 如何在 codeigniter 中使用搜索表单

php - 如何在 laravel 4 中使用数据透视表上的 where 条件来获取数据

php - 电子商务网站如何集成支付宝支付

php - 重新格式化查询

php - 在两个字符串之间的字符串中获取多个匹配项 - 我使用的函数中的小问题?