我有这样的查询:
$Record = new Pod('event');
$where_clause = "DATE(enddate) >= CURDATE() AND event_type.name='Training'";
$Record->find('startdate ASC', 100, $where_clause);
当我有2个满足查询时,它只返回1个项目。
我查看了每个查询:
$Record = new Pod('event');
$where_clause = "DATE(enddate) >= CURDATE()";// AND
$Record->find('startdate ASC', 100, $where_clause);
并且
$Record = new Pod('event');
$where_clause = "event_type.name='Training'";// AND
$Record->find('startdate ASC', 100, $where_clause);
我在两个查询中都有2个项目。
你能提供一些提示来解决这个问题吗?提前谢谢。
答案 0 :(得分:2)
您使用的代码旨在与Pods 1.X一起使用,但您的查询本身看起来不错。使用Pods 2.X,您可能希望执行下面的代码,该代码将pods()全局函数与其方法find组合在一起,然后使用total方法检查返回的项目数。
$param = array(
"where" => "DATE(enddate) >= CURDATE() AND event_type.name='Training'",
"orbery" => "t.startdate ASC",
"limit" => "100",
);
$pod = pods( 'event', $param );
$number = $pod->total();
您知道$ pod中的记录和$ number中的总数,当您循环遍历$ pod中的结果时,可以使用它来控制循环。如果您愿意,可以使用total_found来获取您不会限制的记录数量。
此外,您是否检查过您确实有两条应该返回的记录。当您组合两个查询时,其中只有一个符合这两个条件是可能的。
您还应该查看Perry Bonwell's tutorial,了解如何查询未来事件。他使用PHP而不是SQL函数来处理日期,但除此之外他也有类似的方法。