我正在尝试让一个 php 表仅显示过去 24 小时的事务。
记录存储在事务历史记录表中,每条记录都有一个"buyer_id"和一个"seller_id"
$query = Doctrine_Query::create()
->select('th.*')
->from('TransactionHistory th')
->where('th.transaction_end_time > ?', date('Y-m-d H:i:s', time() - 86400 * 1))
->orderBy('th.id DESC')
->execute(array(), Doctrine::HYDRATE_ARRAY);
return($query);
该查询为我提供了过去 24 小时内发生的所有事务的所需结果。
问题是我需要显示用户作为买方或卖方参与的过去 24 小时内的交易。
$query = Doctrine_Query::create()
->select('th.*')
->from('TransactionHistory th')
->where('th.transaction_end_time > ?', date('Y-m-d H:i:s', time() - 86400 * 1))
->orWhere('th.transaction_buyer_id = ?')
->orWhere('th.transaction_seller_id = ?')
->orderBy('th.id DESC')
->execute(array(), Doctrine::HYDRATE_ARRAY);
return($query);
这给了我所有的结果(更新和超过 24 小时)
我需要一个查询(或其他解决方案),该查询将显示您参与的所有交易(作为买家或卖家)少于 24 小时。
任何想法、文档或显而易见的解决方案将不胜感激。
提前谢谢。
问题是OR。 您想要时间和买方/卖方条件。您只想要买方/卖方的OR。
$query = Doctrine_Query::create()
->select('th.*')
->from('TransactionHistory th')
->where('th.transaction_end_time > ?', date('Y-m-d H:i:s', time() - 86400))
->andWhere('th.transaction_buyer_id = ? OR th.transaction_seller_id = ?')
->orderBy('th.id DESC')
->execute(array(), Doctrine::HYDRATE_ARRAY);
谢谢马特·这仍然给了我相同的结果,但按照这个顺序它有效。谢谢你的协助。
$query = Doctrine_Query::create()
->select('th.*')
->from('TransactionHistory th')
->where('th.transaction_buyer_id = ? OR th.transaction_seller_id = ?')
->andWhere('th.transaction_end_time > ?', date('Y-m-d H:i:s', time() - 86400 * 1))
->orderBy('th.id DESC')
->execute(array($user_id, $user_id), Doctrine::HYDRATE_ARRAY);
return($query);