2012-12-06 48 views
0

我需要爲鏌鋣網頁過濾條目排序列表。我有一個分貝數項與「表1」和列「ID」,「姓名」,「someparam1」等我可以鏌鋣MySQL的數組排序

$companies = $modx->getCollection('Company'); 
foreach($companies as $company) { 
    $fields = $company->toArray(); 
    $output .= $modx->getChunk('showEntryTpl', $fields); 
} 
return $output; 

在頁面上打印整個名單,但我仍然無法打印使用recommendation#1recommendation#2同一個列表: 來自實例文檔鏌鋣:

$c = $xpdo->newQuery('Box'); 
$c->innerJoin('BoxOwner','Owner'); // arguments are: className, alias 
$c->where(array(
    'width' => 5, 
    'Owner.user' => 2, 
)); 
$c->sortby('name','ASC'); 
$c->limit(5); 
$boxes = $xpdo->getCollection('Box',$c); 

使用這種方式

$sortingcriteria = 'id'; 

$s = $modx->newQuery('modResource'); 
$s->sortby($sortingcriteria,'ASC'); 
$out = $modx->getCollection('Company',$s); 

return $out; 

不起作用。我如何按選定的列對列表進行排序,然後進行篩選?

回答

1

謝謝VASIS和肖恩·金博爾的建議!此代碼從db按ASC/DESC順序排序並按某個值進行過濾,從中抽取幾條記錄:

$sortingcriteria = 'id'; 
$filter1 = 'free'; 
$s = $modx->newQuery('Company'); 
$s->sortby($sortingcriteria,'ASC'); 
$s->where(array(
    'pay_type' => $filter1, 
)); 
$out = $modx->getCollection('Company',$s); 
$output = ''; 
foreach ($out as $item) { 
    $fields = $item->toArray(); 
    $output .= $modx->getChunk('showAllCompaniesTpl', $fields); 
} 

return $output; 
1
$sortingcriteria = 'id'; 

$s = $modx->newQuery('Company'); // your mistake here. Need to use 'Company' instead 'modResource' 

,然後你可以排序和篩選條目

$s->sortby($sortingcriteria,'ASC'); 
$s->where(array(
    'column_name1' => 5, 
    'column_name2' => 2, 
)); 
$out = $modx->getCollection('Company',$s); 

$output = ''; 
foreach ($out as $item) { 
    $output .= $item->get('column_name') . '<br/>'; 
} 

return $output; 
+0

不幸的是,沒有積極的結果...不是與公司,也不是modResource。使用我以前的版本,它至少會在頁面上打印「數組」。仍然是'$ companies = $ modx-> getCollection('Company'); 的foreach($公司作爲$公司){$ 字段= $公司 - >指定者(); $ output。= $ modx-> getChunk('showAllCompaniesTpl',$ fields); } return $ output;' 從db打印一個列表但未排序。 – boldnik

+0

'公司'是一個自定義的擴展? Modx是否意識到它?要麼在系統中註冊,要麼在您的代碼段中包含/需要? –

+0

是的,此代碼旨在與自定義表「公司」一起使用,並假定該包已與「addPackage」連接。如果您不將「column_name1」,「column_name2」和「column_name」替換爲實際在「Company」表中的列的名稱,則這將不起作用。 – Vasis