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

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

我正在尝试让 php table 仅显示过去 24 小时的交易。

记录存储在交易历史table中,每条记录都有一个"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。您需要时间和 buyer/seller 条件。您只需要 buyer/seller.

的 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);

谢谢 Matt S。这仍然给我相同的结果,但按此顺序它有效。谢谢你的协助。

      $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);