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

时间:2016-04-20 22:01:54

标签: php mysql doctrine symfony-1.4

我正在尝试使用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小时。

任何想法,文档或明显的解决方案都将受到高度赞赏。

提前致谢。

2 个答案:

答案 0 :(得分:0)

问题是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);

答案 1 :(得分:0)

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