Jump to content
adrianno

Ajuda com paginação

Recommended Posts

Fala pessoal beleza?

Tenho um problema para resolver,  tenho um sistema em PHP com MySQL, mas preciso melhorar a paginação,  tenho uma 2 lógicas de paginação em mente, uma delas é a que mais se encontra e videos, blogs, postagens  mostrando na web,

 

onde damos um primeiro select CAMPO from TABELA, contamos  o resultado e temos o total de registros para tratar a quantidade de páginas, limite, quantidade que vai aparecer por página etc,  apos isso damos novamente o select CAMPOS from TABELA limite x, y  de acordo com o que obtivemos na lógica da paginação com a primeira SQL. esta lógica até que funciona, mas, não consegui aplicar ela usando JOIN  agrupando 2 ou mais tabelas, pois ai, eu teria  que fazer esta contagem  lá a primeira SQL, ou seja no fim, teria 2 SQL sendo executadas , uma mais rápida devido ao limit passado, mesmo assim ainda seriam 2 consultas.

Outras lógica seria dar um SELECT count(CAMPO) from TABELA  seria uma SQL mais rápida,  mas...  se eu tiver um JOIN agrupando dados de uma tabela de categoria + produtos, eu teria que contar o resultado já agrupado das 2.

Já pensei em executar a consulta normal, retornar o array dos dados, e depois paginar este array  com array_slice, e dividir ele de acordo com a quantidade de páginas e registros de cada.

Já fiz paginação com JS/AJAX  mas mesmo assim, ainda preciso passar os dados totalizados, consigo uma boa visualização final na interface, mas por tras, sei que o processamento no MYSQL pesa

 

Lembrando que em cada caso citado, cada vez que alteramos entre as páginas, é novamente executado os calculos.

 

Alguem tem uma lógica bacana para paginação? de forma que nao fique pesado, lento em uma tabela muito grande?

 

 

 

 

 

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By asacap1000
      Galera já verifiquei vários páginas do google mas não encontrei o que precisava. Temos um sistema a qual no final temos a opção d imprimir os dados. que até aí está perfeito utilizo bootstrap para o layout e está ok. Porém preciso colocar a opção de pdf também aí não sai de jeito nenhum com o bootstrap. preciso gerar algo neste formato.
       

       
      Se alguem puder me dar um norte referente a isso agradeço demais.
    • By gersonab
      bom dia.
      estou com um problema aqui, quando vou fazer update de uma página com dados vindos do banco os select option mostra os dados corretamente porém os value capturados não estão corretos, um exemplo, se for de cidades vem no value somente o primeiro nome da cidade enquanto na exibição do nome vem completo, logo, quando faço o update grava somente o primeiro nome, pois esta se dividindo e criando campos.
      <select class="form-control" name="cidade"> <option value="">-- Selecionar --</option> <?php $curc4 = $pdo->query("SELECT * FROM comarca ORDER BY comarc asc"); while ($lic4 = $curc4->fetch(PDO::FETCH_ASSOC)) { echo "<option value=".$lic4['comarc']." ".($cidade == $lic4['comarc'] ? "selected":"")." >".$lic4['comarc']."</option>"; } ?> </select> como é mostrado no console:
      <option value="ANGRA" dos="" reis="">ANGRA DOS REIS</option> desde já agradeço ajuda
    • By Rodrigo5468
      Olá a todos(as), boa tarde!
       
      Tenho uma Query e um pequeno código em PHP para mostrar os resultados em uma tabela, mas estão repetindo os resultados da Query. Gostaria de uma solução, ou uma gambiarra para isso.
      Query
      SELECT DISTINCT b.ID AS "ID", b.Character AS "Personagem", b.Money AS "DinMao", b.BankMoney AS "DinBanco", b.Savings2 AS "DinPoupa", c.houseOwner AS "IDono", SUM(c.houseMoney) AS "DinCasa" FROM characters b INNER JOIN houses c ON (b.ID = c.houseOwner) ORDER BY ((b.Money+b.BankMoney+b.Savings2+c.houseMoney)) DESC LIMIT 0, 1000 PHP
      if(mysqli_num_rows($q) > 0) { while($r = $q->fetch_assoc()) { //Código da Tabela } }  
      Observação:
      Quando eu removo a seguinte parte da minha Query que é: SUM(c.houseMoney) AS "DinCasa" e deixo assim: c.houseMoney AS "DinCasa"
      Os dados da minha tabela repetem, não sei o motivo e/ou a circunstância disso. Mas peço a ajuda de vocês para solucionar. Vale ressaltar que (ID e houseOwner) tem os mesmos valores, só o valor da casa que recebe o valor do ID, e ele pode ter quantas casa ele quiser, e se ele tiver cinco casas, mostrará o resultado cinco resultados na minha tabela, como posso resolver isso?
       
       
      Meu muito obrigado desde já.
    • By guilhermefdavid
      Olá,
      tenho uma aplicação PHP com algumas funções que não estão funcionando na hospedagem.
      Esta aplicação utiliza apenas conexão com banco de dados -> mysql_connect, mysql_select_db, entre outras de MYSQL.
      Alguma ideia de qual extensão, dentre as existentes na imagem anexa deveria(m) estar ativada(s)?
       
      Um abraço!

    • By Rafaellaranjo
      Estou sofrendo a um tempo com consumo alto de CPU em meu servidor na maioria dos casos em virtude do MYSQL, trabalho com PHP e APACHE e MYSQL. Realizei inúmeras tentativas para acabar com o alto consumo porém todas fracassadas. O evento costuma ocorrer sempre nos mesmos horários, parte da manhã por volta de 9:30/11:00 e parte da tarde entre 14:00/16:00. Meu servidor possui hardware suficiente para suportar, porem acredito que esteja mal configurado. Estou encaminhando alguns processos que observo estar executando em excesso obtidos através do ps aux.
      dovecot/pop3-login
      dovecot/imap-login
      dovecot/lmtp -L
      php-fpm: pool app (o que mais aparece)
      Ps: utilizo um servidor CENTOS 7
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.