private function donate_list($server) {
$server = intval($server);
$query = $this->db->query("SELECT * FROM mcr_donates WHERE status = 1 AND server_id = $server");
ob_start();
while ($donate = $this->db->fetch_assoc($query)) {
$data = array(
'TITLE' => $donate['title'],
'IMG' => $donate['img'],
'PRICE' => $donate['price']
);
echo $this->core->sp(MCR_THEME_MOD."/profile/donate-id.html", $data);
}
return ob_get_clean();
}
private function server_list() {
$query = $this->db->query("SELECT * FROM mcr_servers");
ob_start();
while ($ar = $this->db->fetch_assoc($query)) {
$data = array(
'TITLE' => $ar['title'],
'DESCRIPTION' => $ar['description'],
'DONATES' => $this->donate_list($ar['id'])
);
echo $this->core->sp(MCR_THEME_MOD."/profile/server-id.html", $data);
}
return ob_get_clean();
}
Есть 2 функции, 1 выводит в цикле сервера, вторая донаты для каждого сервера. Вторая запускается в цикле и по идее там все равно не будет большой нагрузки, так как серверов не много, но хотелось бы оптимизировать как-то. К тому же сейчас выводится только 1 сервер и донаты к нему, а второй игнорируется. Если убрать строку
'DONATES' => $this->donate_list($ar['id'])
то выводятся все сервера. Можно ли составить запрос, который будет выдавать массив с серверами, где одно поле будет массив с донатами этого сервера?