Цикл while долго подгружает таблицу каким способом можно переделать код что бы ускорить работу кода что бы подгружались данные быстрей PHP: <?php include('config.php'); function mysqlConnect($db,$user,$pass) { $link = mysql_connect('localhost', $user, $pass) or die (mysql_error()); mysql_query("SET NAMES 'utf8'"); mysql_select_db($db,$link); return $link; } $mysql = mysqlConnect($dbname,$dbuser,$dbpass); $tabContent = ' <table class="fixed-mashine-table mod"> <tr> <th><a href="" class="thead-title">Группа станков</a></th> </tr> '; $sql = mysql_query("SELECT * FROM `sellCache`;"); while($groups = mysql_fetch_array($sql)) { $tabContent .= ' <tr> <td><a href="/'.$groups['url'].'" target="_blank">'.$groups['groupSell'].'</td> </tr>'; } $tabContent .= ' </table> <div class="wrapper-machine-table"> <table class="mashine-table mod"> <tr> <th><a href="" class="thead-title">Кол-Во</a></th> <th><a href="" class="thead-title">Цены(от - до)</a></th> <th><a href="" class="thead-title">Средняя цена</a></th> <th>Выбор</th> </tr> '; $allCount = 0; $g3e711 = 0; $sql = mysql_query("SELECT * FROM `sellCache`;"); while($groups = mysql_fetch_array($sql)) { if ($groups['groupSell'] == '3Е711' && $g3e711 == 0) { $g3e711++; } else { $allCount += $groups['count']; $tabContent .= ' <tr> <td>'.$groups['count'].'</td> <td>'.$groups['prices'].'</td> <td>'.$groups['srPrice'].'</td> <td style="text-align:center;"> <label class="unified-wrapper-checkbox"> <input value="" type="checkbox" class="pCheckbox"> <span class="check"></span> </label> </td> </tr>'; } } $tabContent .= ' </table> </div> <div style="text-align: right; font-size: 14px; margin: 5px;"><label style="cursor:pointer;"><input type="checkbox" class="checkAll"> Выбрать все</label></div> <script type="text/javascript" src="/rewriteGoogle/tablesorter/script.js"></script> <script type="text/javascript"> var sorter = new TINY.table.sorter("sorter"); sorter.head = "head"; sorter.asc = "asc"; sorter.desc = "desc"; sorter.even = "evenrow"; sorter.odd = "oddrow"; sorter.evensel = "evenselected"; sorter.oddsel = "oddselected"; sorter.paginate = false; sorter.currentid = "currentpage"; sorter.limitid = "pagelimit"; sorter.init("table",1); document.getElementById("countId").className = "desc"; </script> '; mysql_close($mysql); $tpl = file_get_contents('template/template_sell.tpl'); $tpl = str_replace('{REQUEST}',trim(rawurldecode($_SERVER['REQUEST_URI'])),$tpl); $tpl = str_replace('{Группа}',$group,$tpl); $tpl = str_replace('{Таблица}',$tabContent,$tpl); $tpl = str_replace('{Кол-во}',$allCount,$tpl); echo($tpl); ?> Заранее спасибо за ответ!
Другой вопрос, это зачем вообще старые функции использовать mysql_connect() Внимание Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции: mysqli_connect() PDO::__construct()
@ADSoft, в коде этого вроде нет. Но есть среди разметки, что тоже не оч. хорошо. @Khaybulla, делайте запрос до начала формирования контента, т.е. не смешивайте его с разметкой, даже если при этом не происходит его вывод. Для повышения скорости вместо дубля запроса используйте сброс результата перед повторным его использованием (см. ф-цию previewrow() в этом комменте). Если позиций слишком много, используйте пагинацию. Возможно, имеет смысл применить кэширование, чтобы не лезть в базу и не формировать контент при обработке каждого запроса к странице.
Спасибо большое за совет! первый способ особо не чего не поменял может совсем немного ускорил но этого не достаточно, воспользуюсь вторым способом думаю это наверняка ускорит работу.