Время ожидания почти наверняка происходит из-за того, что ваш запрос медленный - и вы почти наверняка можете улучшить его производительность, убедившись, что у вас есть правильные проиндексированные столбцы, и выполнив некоторые JOIN-ы.
Что если вы переписали конструкцию запроса следующим образом:
$q = 'SELECT
j.*,
jt.description as job_type,
l.description as location,
i.description as industry
FROM tb_jobs AS j
INNER JOIN tb_job_type AS jt ON j.job_type_id = jt.jobtype_id
INNER JOIN tb_location AS l ON j.location_id = l.location_id
INNER JOIN tb_industry AS i ON j.indsutry_id = i.industry_id';
if (! empty($SelectedType)){
$where = "WHERE j.job_ad_type = '$SelectedType'";
}else{
$where = '';
}
$q .= $where;
Убедитесь, что все столбцы внешних ключей (j.location_id и т. Д.) Проиндексированы.
Если вы хотите, чтобы вывод начинался раньше, вам нужно
- запросить базу данных
- Вывести все ваши заголовки и т. Д.
- напишите вам пока цикл как:
ob_end_flush();flush();
while($row = mysql_fetch_assoc($process)
{
ob_start();
//build your ITEM and echo it here
ob_end_flush(); flush();
}
PS: Я также заметил еще один вопрос, связанный с SQL, здесь, на SO. Я думаю, что вы очень хорошо обслужитесь, если будете лучше понимать, как работает SQL. Я настоятельно рекомендую получить копию " SLQ Clearly Explained " - она дает именно то, что обещает заголовок - четкое объяснение SQL (в общем, не увязая в обсуждении различных реализаций)