2014-03-25 3 views
-1

내가 xPDO SQL 쿼리의 정렬 순서에 어떤 문제가 있는지 알아 내려고 노력하고있어개체 정렬 순서가 잘못

이 쿼리 정확이 SQL ~에

$criteria = $this->modx->newQuery($table); 
$criteria->sortby($sortby,$sortdir); 
$options = $this->modx->getCollectionGraph($table,$criteria); 
$criteria->prepare(); 
echo '<pre>'.$criteria->toSQL().'</pre>'; 

결과 :

SELECT `Location`.`id` AS `Location_id`, `Location`.`created` AS `Location_created`, 
`Location`.`modified` AS `Location_modified`, `Location`.`location` AS 
`Location_location`, `Location`.`group` AS `Location_group`, `Location`.`comment` 
AS `Location_comment` 
FROM `flow_location` AS `Location` ORDER BY location asc 

그러나, 나는 쿼리를 통해 루프를 시도하는 경우 :

foreach($options as $option) { 
    echo $option->get($value).'<br>'; 
} 

데이터베이스의 주문 ID별로 레코드를 표시합니다.

어떻게 해결할 수 있습니까?

답변

1

location asc으로 주문하고 있지만 location은 귀하의 검색어에 정의되어 있지 않습니다. 열 location의 이름을 Location_location으로 변경하므로 Location_location asc으로 주문해야합니다.

SELECT `Location`.`id` AS `Location_id`, `Location`.`created` AS `Location_created`, 
`Location`.`modified` AS `Location_modified`, `Location`.`location` AS 
`Location_location`, `Location`.`group` AS `Location_group`, `Location`.`comment` 
AS `Location_comment` 
FROM `flow_location` AS `Location` ORDER BY location asc 
+0

내가 SQL 브라우저에서 해당 쿼리를 실행하면 올바르게 작동 및 순서를 않습니다 - 당신이 [$ criteria-> sortby ($ 테이블 같은 결과를 yeilds Location_location으로 주문하려고 말하는 것을 볼 .'_ ' . $ sortby, $ sortdir); getCollectionGraph를 정렬 할 수 있는지 확신 할 수 없습니다. 왜냐하면 getCollectionGraph를 사용하면 코드가 작동하기 때문입니다. –

+0

Gotcha. modx에 대해 많이 알지는 못하지만 PHP에서 쿼리 후 usort() 함수로 객체를 정렬 할 수 있습니다. 일부 예를 보려면 SO를 누릅니다. –

관련 문제