あるボタンを押すと画面が真っ白になるので調べてみると、このコードが出てきました。だいぶ簡潔に書きましたが、実コードは1つのfuncitonが150行くらいになってました。results、otherResultsの両変数は数万件のデータをDBから引っ張ってきてます。
<?php
function getResults() {
$results = $this->findAll();
$otherResults = $this->findAll2();
foreach ($results as $key => $val) {
$results1 = findById($val['id_1']);
$results[$key]['name_1'] = $results1[0]['name'];
$results2 = findById($val['id_2']);
$results[$key]['name_2'] = $results2[0]['name'];
}
for ($i = 0; $i < count($results); $i++) {
$items = array('maguro', 'ikura', 'uni');
foreach ($items as $item) {
$results[$i][$item] = $otherResults[$results[$i]['id']][$item];
}
}
return $results;
}
そもそもまず全行全桁取得するなと…というか、DBの仕事をアプリ側でしかもループで強行するなと
これの作者は where と order by を覚えるところから...
foreachからforになぜ移行したのか?