Problemas com paginação....
Esse é um trecho do meu código:
// Convertendo os Nomes para os Nomes de Usuário
$user2username = mysql_query( 'SELECT `username` FROM `pusers` WHERE `name` = \'' . $_POST['select25'] . '\'',
$GLOBALS['link'] ) or die( db_error( mysql_errno() ) );
$username = mysql_fetch_array( $user2username, MYSQL_ASSOC );
//----------------------------------------------
// Preparando a paginação
// Total de registros
$totalQuery = 'SELECT COUNT(*) AS total FROM `imoveis` WHERE `owner` = \'' . $username['username'] . '\'';
$total = mysql_result( mysql_query( $totalQuery, $GLOBALS['link'] ), 0, 'total' );
// Definindo / resgatando a página atual
if( isset( $_GET['page'] ) ? $page = $_GET['page'] : $page = 0 );
// Definindo o limite máximo de resultados por página
$max = 1; //depois troca pra 15
// Calculando quantas páginas haverão
$pages = ceil( $total / $max );
// Definindo / resgatando qual será o primeiro registro da página corrente
$begin = $page * $max;
// Consultando...
$query = 'SELECT * FROM `imoveis` WHERE `owner` = \'demo\' ORDER BY `' . $_GET['orderFilter'] . '` ' . $_GET['orderType'] . ' LIMIT ' . $begin . ',' . $max . '';
print $query . '<br />';
$result = mysql_query( $query ) or die( db_error( mysql_errno() ) );
if( mysql_num_rows( $result ) )
{
while( $rows = mysql_fetch_array( $result, MYSQL_ASSOC ) )
{
$houses[] = $rows;
$GLOBALS['Smarty'] -> assign( 'total', mysql_num_rows( $result ) );
}
if($page > 0) {
$menos = $page - 1;
$url = "index.php?act=busca&CODE=20&page=".$menos."&orderFilter=".$_GET['orderFilter']."&orderType=".$_GET['orderType'];
echo " | <a href='" . $url . "'>Anterior</a>";
}
for($i = 1;$i < $pages; $i++) {
$url = "index.php?act=busca&CODE=20&page=".$i."&orderFilter=".$_GET['orderFilter']."&orderType=".$_GET['orderType'];
echo " | <a href='" . $url . "'>$i</a>";
}
if($page < $pages ) {
$mais = $page + 1;
$url = "index.php?act=busca&CODE=20&page=".$mais."&orderFilter=".$_GET['orderFilter']."&orderType=".$_GET['orderType'];
echo " | <a href='" . $url . "'>Próxima</a>";
}
//-----------------------------------------
$GLOBALS['Smarty'] -> assign( 'houses', $houses );
//-----------------------------------------
$GLOBALS['Smarty'] -> assign( 'Clock', 'Página gerada em ' . $GLOBALS['Clock'] -> showTime() . ' segundos' );
$GLOBALS['Smarty'] -> display( 'public/buscaImobiliaria.tpl' );
}
else
{
$GLOBALS['Smarty'] -> assign( 'Clock', 'Página gerada em ' . $GLOBALS['Clock'] -> showTime() . ' segundos' );
$GLOBALS['Smarty'] -> display( 'public/noResults.tpl' );
}
}Acabei de adaptar a paginação, mas tem uns probleminhas e eu queria saber se poderiam ajudar-me:
Pra começar a paginação em si, a sua função base não funciona. Nessa seçãoe existe um clausula WHERE para limitar a exibição dos registros à um único usuário.
Pois bem, na página UM a query funciona normal, passando o condicional para o WHERE. Mas quando clico no link "Próxima", simplesmente desaparece esse valor do WHERE. Eu sei porque eu printei ela para ver.
Segundo que por enquanto, tem problema no "Anterior". Quando se vai para uma página maior que UM, o link "Anterior" aparece (óbvio). Porém ele faz sumir os números entre ele e a palavra "Próximo"
Terceiro que, o link "Anterior", na forma como está sendo construído faz com que, caso eu esteja na página "DOIS" seja formado uma URL com o parâmetro GET page sendo ZERO. Como a página ZERO não existe, ao clicar nele, a página desaparece por completo.
----------------------------------------------------------------------------------------------------------------------------------------------
Eu suponho, que o primeiro problema se deve a eu estar usando o Smarty para os templates. Digo isso porque todo o layout tá no template e no próprio há menus dropdown para alternar entre os filtros de ordenação (pelo campo do MySQL) e pela ordenação ASC/DESC
E funciona, nenhuma cláusula é perdida na transição.
E como eu, pra testar, imprimi direto no topo do site a paginação PODE SER que não esteja pegando a cláusula do WHERE a partir da página DOIS.
Mas como eu só sei trabalhar com arrays com o Smarty (usando {foreach}), não sei como assignar para montar a tabelinha da paginação.
Bom dois problemas "e meio", alguém pode ajudar?
P.S.: Parti como base para a apaginação o script do Fabyo, de 2005
Discussão (5)
Carregando comentários...