Написал поиск для сайта, на языке php - бд mySql, сам являюсь фронтенд девелопером, всё работает, но зависает сильно, думаю проблема во множественных запросах в базу, или может надо как то закрывать сессию?
`$link = mysqli_connect('localhost',$user,$psswd,'$local_db');
$rows2 = mysqli_fetch_assoc(mysqli_query($link,'SELECT `title` FROM
`tbl_product` WHERE `product_id` = '.$i));
$rows3 = mysqli_fetch_assoc(mysqli_query($link,'SELECT `vendor_code` FROM
`tbl_product` WHERE `product_id` = '.$i));
$rows4 = mysqli_fetch_assoc(mysqli_query($link,'SELECT `seo_keywords` FROM
`tbl_product` WHERE `product_id` = '.$i));
$rows5 = mysqli_fetch_assoc(mysqli_query($link,'SELECT `alias` FROM
`tbl_product` WHERE `product_id` = '.$i));
$rows6 = mysqli_fetch_assoc(mysqli_query($link,'SELECT `product_id` FROM
`tbl_product` WHERE `product_id` = '.$i));
$rows7 = mysqli_fetch_assoc(mysqli_query($link,'SELECT `is_public` FROM
`tbl_product` WHERE `product_id` = '.$i));`
А также еще одна возможная причина, что фото c ценой приходиться парсить, использую, jquery Ajax и phpQuery, но товаров много.
`<script>
$( '.product_photo' ).each(function() {
var product_index = $(this).attr('photo-index');
var url = $(this).attr('photo-url');
//
$.ajax({
type: 'POST',
url: '/prokladka/search/index.php',
data: 'class='+product_index+'&url='+url,
success: function(data){
$('.results').append(data);
}
});
//
});
</script>`
Файл обработчик Ajax:
`// incoming vars
$url = $_POST['url'];
$class = $_POST['class'];
// incoming vars
//
// including lib
include($_SERVER['DOCUMENT_ROOT'].'/prokladka/lib/phpquery-master/phpQuery/phpQuery.php');
// including lib
//
// lets start parsing
$page = file_get_contents($url);
$document = phpQuery::newDocument($page);
//
$img = $document->find('.product-album img')->attr('src');
$price = $document->find('.product-single .price')->html();
$price = trim(preg_replace('~\s+~s', ' ', $price));
//
echo "
<script>
$(document).ready(function(){
$('.product_photo_$class').attr('src','$img');
$('.product_price_$class').html('".$price."');
});
</script>
";
// lets start parsing`
mysqli_close ( mysqli $link )
закрывает открытое соединение с базой данных. И все данные можно вместить в один запрос
$rows2 = mysqli_fetch_assoc(mysqli_query($link,'
SELECT title
,vendor_code
,seo_keywords
, alias
, product_id
,is_public
FROM tbl_product
WHERE product_id
= '.$i));
А потом получить поля как удобно. В таблице, как я понимаю, это вообще будет одна строка? Тогда можно вообще упростить до
SELECT *
FROM `tbl_product`
WHERE `product_id` = '.$i
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок