0
試過這兩種方式,評論代碼是原始的,結果是兩次相同。Modx將資源廣告排序爲字符串,而不是數字
/*
$sql = "select * from modx_site_content where context_key = '$context' order by ABS(id) ASC;";
$results = $modx->query($sql);
foreach($results as $result){
$output[] = '('.$result['id'].') '.$result['pagetitle'].'=='.$result['id'];
}
*/
$criteria = $modx->newQuery('modResource');
$criteria->where(array(
'context_key' => $context,
));
$criteria->sortby('id','ASC');
$results = $modx->getCollection('modResource',$criteria);
foreach($results as $result){
$result = $result->toArray();
$output[] = '('.$result['id'].') '.$result['pagetitle'].'=='.$result['id'];
}
的結果將是:100,101,102,103,50,51,52,53等,這是對它們進行排序爲字符串,而不是整數。我檢查數據庫,該字段是一個主鍵[和一個整數],如果你會注意到,即使在我的評論代碼中,我試圖明確地將它整理爲一個整數。
這裏發生了什麼&我該如何正確排序?
[即50,51,52,53,100,101,012等..]
很奇怪。你的代碼*應該*返回按照數字順序排列的ID。如果你var_dump $輸出,它排序錯誤?在數據庫中,id是:int(10)unsigned NOT NULL AUTO_INCREMENT – oori
yes - 如果轉儲$ output數組,它將按照數據庫的順序正確排序 –