21490 Posts in 5783 Topics by 2622 members
|
Page:
1
|
Go to End | |
| Author | Topic: | 492 Views |
-
Return Odd DataObjects Only

7 August 2010 at 4:45am
I use this to get 10 "Article" items, ranked by "RankingDate":
DataObject::get("Article", $q ,'RankingDate DESC','','10');
I only want ODD items to be returned. Only the 1st, 3rd, 5th, 7th and 9th item should be returned.
The MySQL query for that looks something like this:
select *
from
(select *, @rn:=@rn+1 rn
from (select @rn:=0) r, `sitetree`
WHERE `ClassName` LIKE '%Article%'
order by `Title`
limit 10
) sq
where rn%2=1How can I do this with DataObject::get()?
-
Re: Return Odd DataObjects Only

7 August 2010 at 5:26am
How about....
$dosArticle = DataObject::get("Article", '','RankingDate DESC','','20');
$dosOnlyOddArticle = new DataObjectSet();
if ($dosArticle)
foreach($dosArticle as $doArticle)
{
if($doArticle->Odd())
{
$dosOnlyOddArticle->push($doArticle);
}
}
} -
Re: Return Odd DataObjects Only

7 August 2010 at 6:36am
Thanks, swaiba. But your idea is not as kind on memory as if SQL did the work.
-
Re: Return Odd DataObjects Only

8 August 2010 at 12:22am
oh, it's didn't look like that would be an issue, but I guess you know where you need to optimise... I was always taught to get it working (whilst think of memory and CPU cycles) and then come back and address the demonstrated bottlenecks later...
why don't use directly query your datable using mysql_query or DB::query if this is a real memory hog that you want to streamline?
| 492 Views | ||
|
Page:
1
|
Go to Top |


