nnn21
Новичок
Выборка данных из базы проискходит то- медленно , то - быстро ...
Итак ...
Есть скрипт, который выводит список публикаций, за вывод публикаций с прикрепленными файлами отвечает функция
function show_preprint_info1
задумывался изначально постраничный вывод, потому, что публикаций очень много и на одной странице выводить их будет очень ... долго .
<?
function show_preprint_info1 ($article_row,$year,$id_article) // вывод данных
$file_result=mysql_query("SELECT * FROM file WHERE id_article=$article_row[id]");
if(@$file_row=mysql_fetch_array($file_result))
$num_limith="5"; // количество результатов на страницу
$result1 = mysql_query("SELECT number FROM article WHERE year=$year ORDER BY number"); //
$num_rows = mysql_num_rows($result1); // вычисляем количество строк в базе
$article_result=mysql_query("SELECT id, number , title, body FROM article WHERE year=$year ORDER BY number LIMIT $num_limith");
if ($num_rows<=5)
{
while($article_row=mysql_fetch_array($article_result))
show_preprint_info1($article_row,$year,$id_article);
}
else
{
// получаем номер страницы
if (isset($_GET['page'])) $page=($_GET['page']-1);
else
$page=0;
// вычисляем первый оператор для LIMIT
$start=abs($page*$num_limith);
// составляем запрос и выводим записи
// $start - присваивает номер записи
$res=mysql_query("SELECT id, number , title, body FROM article WHERE year=$year ORDER BY number LIMIT $start,$num_limith");
// while($row=mysql_fetch_array($res))
//
{
while($article_row=mysql_fetch_array($res))
show_preprint_info1($article_row,$year,$id_article);
}
}
// выводим ссылки на страницы, так как у нас подразумевается постраничный вывод
$q="SELECT count(*) FROM article WHERE year=$year";
$res=mysql_query($q);
$row=mysql_fetch_row($res);
$num_rows=$row[0];
$num_pages=ceil($num_rows/$num_limith); // $num_pages - количество получившихся страниц
?>
Непонятно почему скрипт работает по разному, быстро или медленно .. Через клиент MySQL CC , запрос работает быстро, а вот на сайте, нифига непонятно почему - медленно =(
Может быть сервер перегружен ? ЧТо делать, если дело в сервере, ведь понятно, что начальству не объяснишь - неработает потому что типа у вас оборудование слабое ...
Итак ...
Есть скрипт, который выводит список публикаций, за вывод публикаций с прикрепленными файлами отвечает функция
function show_preprint_info1
задумывался изначально постраничный вывод, потому, что публикаций очень много и на одной странице выводить их будет очень ... долго .
<?
function show_preprint_info1 ($article_row,$year,$id_article) // вывод данных
$file_result=mysql_query("SELECT * FROM file WHERE id_article=$article_row[id]");
if(@$file_row=mysql_fetch_array($file_result))
$num_limith="5"; // количество результатов на страницу
$result1 = mysql_query("SELECT number FROM article WHERE year=$year ORDER BY number"); //
$num_rows = mysql_num_rows($result1); // вычисляем количество строк в базе
$article_result=mysql_query("SELECT id, number , title, body FROM article WHERE year=$year ORDER BY number LIMIT $num_limith");
if ($num_rows<=5)
{
while($article_row=mysql_fetch_array($article_result))
show_preprint_info1($article_row,$year,$id_article);
}
else
{
// получаем номер страницы
if (isset($_GET['page'])) $page=($_GET['page']-1);
else
$page=0;
// вычисляем первый оператор для LIMIT
$start=abs($page*$num_limith);
// составляем запрос и выводим записи
// $start - присваивает номер записи
$res=mysql_query("SELECT id, number , title, body FROM article WHERE year=$year ORDER BY number LIMIT $start,$num_limith");
// while($row=mysql_fetch_array($res))
//
{
while($article_row=mysql_fetch_array($res))
show_preprint_info1($article_row,$year,$id_article);
}
}
// выводим ссылки на страницы, так как у нас подразумевается постраничный вывод
$q="SELECT count(*) FROM article WHERE year=$year";
$res=mysql_query($q);
$row=mysql_fetch_row($res);
$num_rows=$row[0];
$num_pages=ceil($num_rows/$num_limith); // $num_pages - количество получившихся страниц
?>
Непонятно почему скрипт работает по разному, быстро или медленно .. Через клиент MySQL CC , запрос работает быстро, а вот на сайте, нифига непонятно почему - медленно =(
Может быть сервер перегружен ? ЧТо делать, если дело в сервере, ведь понятно, что начальству не объяснишь - неработает потому что типа у вас оборудование слабое ...