私は現在、レガシーアプリケーションをリファクタリングし、少しずつ zend フレームワーク 1.12 に変換しています。
これを zend db に変換する方法について頭を悩ませていますが、これを 1 つのクエリで実行できる方法はありますか?
今のところ、最初にフォルダーのリストをフェッチしてから、フォルダーごとに追加のクエリを実行していることがわかります...これを1つのクエリとして実行すると、パフォーマンスが向上しますよね?
$folders_query = DB::Query("select * from contacts_folders order by sort_order, name");
while($folders = DB::FetchArray($folders_query)){
$counts_total = DB::QueryOne("SELECT count(cm.messages_id) AS total
FROM contacts_basics cb, contacts_messages cm
WHERE cb.contacts_id = cm.contacts_id
AND cm.folders_id = '" . $folders['folders_id'] . "'
AND cm.status = '1'
AND cm.mark = '0'");
if ($counts_total >0){
$folders_name = '<strong>' . $folders['name'] . ' (' . $counts_total . ')</strong>';
} else {
$folders_name = $folders['name'];
}
echo '<li><a href="messages.php?fID=' . $folders['folders_id'] . '">';
echo $folders_name;
echo '</a></li>';
}