JOIN || array()
Поместить все в запрос
Код:
$result_site = Query("
SELECT site_id, site_user_id AS user_id, site_domain, site_name, site_status, site_date, u.user_name, u.user_lastname, u.user_fathername,
tem.template_name AS site_template_name, t.type_name AS site_type_name
FROM ".PREFIX."realty_sites
LEFT JOIN realty_users AS u ON u.user_id = site_user_id
LEFT JOIN realty_sites_template AS tem ON tem.template_id = site_template_id
LEFT JOIN realty_sites_type AS t ON t.type_id = site_type_id
$sql_search ORDER BY site_user_id ASC $str_limit"
);
SELECT site_id, site_user_id AS user_id, site_domain, site_name, site_status, site_date, u.user_name, u.user_lastname, u.user_fathername,
tem.template_name AS site_template_name, t.type_name AS site_type_name
FROM ".PREFIX."realty_sites
LEFT JOIN realty_users AS u ON u.user_id = site_user_id
LEFT JOIN realty_sites_template AS tem ON tem.template_id = site_template_id
LEFT JOIN realty_sites_type AS t ON t.type_id = site_type_id
$sql_search ORDER BY site_user_id ASC $str_limit"
);
Или сделать массивы и обрашаться к ним ко ключу. Данных в таблицах sites_template и sites_type менее 50 и 10 соответственно.
Код:
$result_site = Query("
SELECT site_id, site_user_id AS user_id, site_domain, site_name, site_status, site_date, u.user_name, u.user_lastname, u.user_fathername,
site_template_id, site_type_id
FROM realty_sites
LEFT JOIN realty_users AS u ON u.user_id = site_user_id
$sql_search ORDER BY site_user_id ASC $str_limit"
);
$result_template=Query("SELECT template_id,template_name FROM sites_template");
$data_template=array();
while($row_template=mysql_fetch_row($result_template))
$data_template[$row_template[0]]=$row_template[1];
$result_sites_type=Query("SELECT type_id,type_name FROM sites_type");
$data_sites_type=array();
while($row_sites_type=mysql_fetch_row($result_sites_type))
$data_sites_type[$row_sites_type[0]]=$row_sites_type[1];
SELECT site_id, site_user_id AS user_id, site_domain, site_name, site_status, site_date, u.user_name, u.user_lastname, u.user_fathername,
site_template_id, site_type_id
FROM realty_sites
LEFT JOIN realty_users AS u ON u.user_id = site_user_id
$sql_search ORDER BY site_user_id ASC $str_limit"
);
$result_template=Query("SELECT template_id,template_name FROM sites_template");
$data_template=array();
while($row_template=mysql_fetch_row($result_template))
$data_template[$row_template[0]]=$row_template[1];
$result_sites_type=Query("SELECT type_id,type_name FROM sites_type");
$data_sites_type=array();
while($row_sites_type=mysql_fetch_row($result_sites_type))
$data_sites_type[$row_sites_type[0]]=$row_sites_type[1];
Я всегда использовал первый вариант, но мне сказали что при больших объемах данных (более 60т.) в таблице realty_sites запрос на выборку данных становиться очень долгим.
Ну я бы использовал первый вариант... 60 тыс это небольшой объем
Уже есть два варианта почему бы просто не сравнить скорости выполнения?