Страницы

Поиск по вопросам

четверг, 6 июня 2019 г.

Скрипт вывода товаров, очень долго грузится

Функции выборки товаров из базы: function result_to_array($result) { $res_array = array(); $count = 0; while( $row = $result->fetch_assoc() ) { $res_array[$count] = $row; $count++; } return $res_array; }
function get_product() { connect_db(); global $mysqli; $result = $mysqli->query("SELECT *FROM `product` ORDER by `id` DESC"); $result = result_to_array($result); return $result; } На самой странице все товары выводятся циклом foreach: $products = get_product();

html код
Проблема в том, что страница с товарами открывается ну очень долго, раньше просто на этой же самой странице делал запрос и выводил все через while, по скорости было ощутимо быстрее. Подскажите, что я делаю не так и почему так медленно работает скрипт?


Ответ

А много ли товаров? И можно оптимизировать конструкцию, убрав $count while( $row = $result->fetch_assoc() ) { $res_array[] = $row; } Перед выполнением кода и после выполнения добавьте microtime() function result_to_array($result) { $ra_start = microtime();
$res_array = array(); $count = 0; while( $row = $result->fetch_assoc() ) { $res_array[$count] = $row; $count++; }
$ra_end = microtime(); echo $ra_end - $ra_start; return $res_array; }
function get_product() { $gp_start = microtime();
connect_db(); global $mysqli; $result = $mysqli->query("SELECT *FROM `product` ORDER by `id` DESC"); $result = result_to_array($result);
$gp_end = microtime(); echo $gp_end - $gp_start; return $result; } На самой странице все товары выводятся циклом foreach: $products = get_product();
html код: По результатам сможете увидеть, какой кусок у Вас долго выполняется.

Комментариев нет:

Отправить комментарий