O problema e o seguinte...
tenho uma pagina que gera alguns resultados de uma busca no bd
<? require_once('config.php'); require_once('layout.php'); $objDB=start_db(); if(empty($_GET['id']) or !($catNome=$objDB->getOne("SELECT catNome FROM categorias WHERE Id=$_GET[id] LIMIT 1")) ) Header("Location: ".HTTP_INDEX); $objLay=new Layout(HTML_LAYOUT); $objCad=$objLay->open(HTML_RANKCATEGORIA); if(!isset($_GET['n'])) $_GET['n']=0; $page=$_GET['n']*PAGINA_RESULTADOS; $arInfo=$objDB->getAll("SELECT cadastros.Id, cadSnome, votos, if(SUM(log.Id)/log.Id>0,SUM(log.Id)/log.Id,0) as Votoshoje, Cliques FROM cadastros, categorias LEFT JOIN log ON (log.Id=cadastros.Id) WHERE cadastros.cadCategoria=categorias.Id and categorias.Id=$_GET[id] GROUP BY cadastros.Id ORDER BY votos DESC, Votoshoje DESC LIMIT $page,".PAGINA_RESULTADOS); for($n=0;$n<count($arInfo);$n++){ $arInfo[$n]['n']=(string)(($n+1)+($page)); $arInfo[$n][3]=@(string)(int)$arInfo[$n][3]; $arInfo[$n][1]=@htmlspecialchars($arInfo[$n][1]); } if($_GET['n']>0) $objCad->replace_once('ant',$_GET['n']-1); else $objCad->remove(0); $numpages=$objDB->getOne('SELECT if(FLOOR(COUNT(*)/'.PAGINA_RESULTADOS.')=COUNT(*)/'.PAGINA_RESULTADOS.',FLOOR(COUNT(*)/'.PAGINA_RESULTADOS.'),FLOOR(COUNT(*)/'.PAGINA_RESULTADOS.')+1) FROM cadastros WHERE cadastros.cadCategoria='.$_GET['id'] ); if($_GET['n']<$numpages-1) $objCad->replace_once('prox',$_GET['n']+1); else $objCad->remove(1); if($numpages>1){ $objNs=$objCad->get_code(0); $objNsn=new Layout; $code=''; for($n=0;$n<$numpages;$n++){ $objNsn->code=$objNs->code; $objNsn->replace_once('n',$n); $objNsn->replace_once('m',$n+1); $code.=$objNsn->code; } $objCad->code_replace(0,$code); }else $objCad->code_remove(0); $objCad->replace_once('cat',$catNome); $objCad->replace_once('id',$_GET['id']); $objCad->loop_replace('r',$arInfo); $objLay->make($objCad); $objDB->disconnect(); ?>
Esses resultados são impressos em uma página HTML atraves de "variaveis" [1] , [2], (m), [n] que são definidos nessa página que coloquei o codigo ai...
Bom isso funciona normalmente, so que essa página exibe varios resultos e faz uma paginação dos msmos, onde (m) e numero de páginas que existe...
Ate onde eu conseguir enteder isso e feito nesse trecho
$numpages=$objDB->getOne('SELECT if(FLOOR(COUNT(*)/'.PAGINA_RESULTADOS.')=COUNT(*)/'.PAGINA_RESULTADOS.',FLOOR(COUNT(*)/'.PAGINA_RESULTADOS.'),FLOOR(COUNT(*)/'.PAGINA_RESULTADOS.')+1) FROM cadastros WHERE cadastros.cadCategoria='.$_GET['id'] ); if($_GET['n']<$numpages-1) $objCad->replace_once('prox',$_GET['n']+1); else $objCad->remove(1); if($numpages>1){ $objNs=$objCad->get_code(0); $objNsn=new Layout; $code=''; for($n=0;$n<$numpages;$n++){ $objNsn->code=$objNs->code; $objNsn->replace_once('n',$n); $objNsn->replace_once('m',$n+1); $code.=$objNsn->code; }
O problema e que ele gera isso sem nenhum limit
ou seja a paginação fica infinita, se for gerada 5000 paginas ele vai mostrar os 5000 links..
Anterior 1 2 3 4 5 6 7 8 9 .................................................... 5000 Proxima
Ja tentei usar LIMIT na conexão mais deu certo...
so lembrando que outr sistema de paginação eu não posso usar pq senão quebro todo o sistema o site, preciso dar um jeito com esse ai msmo......