在历史记录表中显示过去 24 小时内两个用户的交易


show transactions for two users in history table within the last 24 hours

我正在尝试让一个 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);