Здравейте имам някакъв проблем с кода за странициране и не разбирам какъв е.
Когато направя само 2 записа на страница ми ги отваря мигновено, но когато задам в кода да са повече от 2 пример 10 на страница ми бави по няколко секунди 4-5 за да отвори страницата с записите от базата данни.
Да ли проблема ми е в страницирането или е от бавната проверка и подредба на записите за да ги визуализира ползвам платен хост но при други страници не ми го прави зареждат си за стотни от секундата.
Все пак ето и кода който изкарва записите.
Благодаря предварително!
Когато направя само 2 записа на страница ми ги отваря мигновено, но когато задам в кода да са повече от 2 пример 10 на страница ми бави по няколко секунди 4-5 за да отвори страницата с записите от базата данни.
Да ли проблема ми е в страницирането или е от бавната проверка и подредба на записите за да ги визуализира ползвам платен хост но при други страници не ми го прави зареждат си за стотни от секундата.
Все пак ето и кода който изкарва записите.
PHP:
<?PHP if(!DEFINED('human')) die('<code>PERMISSION DENIDED!</code>'); ?>
<table cellpadding="0" cellspacing="0" style="border: #000000 1px solid;padding-left: 3px;width:100%" class="title">
<?php
$onpage = 2;
if(is_numeric($_GET[cid])){
$sql = " and `servers`.`cid`='$_GET[cid]'";
}
else {
$sql='';
}
if(is_numeric($_GET['page']) and $_GET[page]>0){$page=$_GET['page'];}else{$page='0';}
$db->zaqvka("SELECT * FROM `servers`, `cats` where `servers`.`cid`=`cats`.`cid` and od='1' $sql");
$br = $db->broi();
$lm1 = $page * $onpage;
$db->zaqvka("SELECT * from `servers`,`cats` where `servers`.`cid` = `cats`.`cid` and od='1' $sql order by servers.sid desc limit $lm1,$onpage");
if($db->broi()==0){
echo "<tr><td>Няма сървъри</tr><td>";
}
else {
echo "<tr><td height=\"20\">Сървър</td><td>Тип</td><td>Играчи</td><td>Карта</td><td>Статус</td></tr>";
$m = 1;
while($r=$db->rezultati()){
if($m==1){
$color = '#FFFFFF';
$tcolor = '#000000';
$m=2;
}
else{
$color = '#F3F3F3';
$tcolor = '#000000';
$m=1;
}
//$st = query($r[ip],$r[port],'status');
$sinfo = query($r[ip], $r[port], 'info');
if($sinfo){$status = '<font color="green">Online</font>';}else{$status = '<font color="red">Offline</font';}
$ime = $r[ime];
$karta = isset($sinfo[mapname]) ? $sinfo[mapname] : 'N/A';
$sinfo[players] = isset($sinfo[players]) ? $sinfo[players] : 0;
$sinfo[maxplayers] = isset($sinfo[maxplayers]) ? $sinfo[maxplayers] : 0;
$players = $sinfo[players].'/'.$sinfo[maxplayers];
$r[ip]=gethostbyname($r[ip]);
echo "<tr><td style=\"border: #cccccc 1px solid;background: $color;\"><span style=\"color:$tcolor\">$r[0]<br>$r[ip]:$r[port]</span></td><td style=\"border: #cccccc 1px solid;background: $color;\"><a href=\"index.php?module=servers&cid=$r[cid]\"><span style=\"color:$tcolor\">$r[ime]</span></a></td><td style=\"border: #cccccc 1px solid;background: $color;\">$players</td><td style=\"border: #cccccc 1px solid;background: $color;\">$status</td><td style=\"border: #cccccc 1px solid;background: $color;\"><a href=\"index.php?module=server&servid=$r[sid]\">Инфо</a></td></tr>";
}
}
$nav = stranici('index.php?module=servers&page=', $onpage, 2, $br, $page, '&cid='.$_GET[cid]);
?>
</table>
<br><center><?=$nav?></center>
PHP:
function stranici($str,$nastr,$ppp,$numnastr,$stranica,$dop){
if($numnastr<=$nastr) return false;
if(empty($stranica) or $stranica<0) $stranica = 0;
$pg = intval($stranica/$ppp);
$stranici=ceil($numnastr/$nastr);
$fp=$ppp*$pg-1;
if($fp<0)$fp=0;
if(0<$stranica-1) $nav.=' <a href="'.$str.'0'.$dop.'" class="stranici">Първа</a>';
if($pg!=0) $nav .= ' <a href="'.$str.''.$fp.$dop.'" class="stranici">< 10</a>';
if($stranica>0) $nav .= ' <a href="'.$str.''.($stranica-1).$dop.'" class="stranici"><</a>';
for($i=1;$i<=$ppp;$i++){
$n = $i + $pg*$ppp;
if(($n-1)*$nastr>=$numnastr) break;
if($n!=$stranica+1) $nav .= ' <a href="'.$str.''.($n-1).$dop.'" class="stranici">'.$n.'</a>';
else $nav .= ' <b class="stranica">'.$n.'</b> ';
}
if(($stranica+1)<$stranici and ($stranica+1)<($ppp*($pg+1))) $nav.= ' <a href="'.$str.''.($stranica+1).$dop.'" class="stranici">></a>';
if(($nastr*$ppp)*($pg+1)<$numnastr and ($ppp*($pg+1))<$stranici-1) $nav.=' <a href="'.$str.''.($ppp*($pg+1)).$dop.'" class="stranici">> 10</a>';
if($stranica<$stranici-2) $nav.=' <a href="'.$str.''.($stranici-1).$dop.'" class="stranici">Последна</a>';
$lastpage=''.($ppp*($pg+1)).$dop.'';
$fs = 1 + $pg*$ppp + 10;
return '<b >'.$nav.'</b>';
}