Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ARS Informática

Ajuda em paginação com group by e limit

Recommended Posts

Boa noite ...

 

Estou tentando fazer uma consulta com grop by e limit, porém não consigo fazer a consulta funcionar.

Tenho uma tabela com 6 campos (nome, endereço, cidade, estado, nivel, data) e essa tabela tem 200.000 linhas.

estou tentando fazer uma consulta onde apareçam os nomes por estado.

Ex.:

Estado Nome     endereço  cidade          estado  nivel

Ac         Aramis   teste          Rio Branco   AC           3

Ac         Paulo     teste          Rio Branco   AC           3

Ac         Tais        teste          Rio Branco   AC           3

Sp         Joao       teste          Sorocaba     SP           3

Sp         Marcio    teste          São Paulo     SP           3

...

 

Fiz assim : 

SELECT * FROM nometabela WHERE nivel = '3' GROUP BY estado ORDER BY estado ASC limit $inicio, $quantidade

 

Ele faz a listagem e agrupa por estado mas não faz a paginação.

 

Alguem pode me ajudar ????

 

Obrigado

 

 

      

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ou eu não entendi, ou acho que existe algum erro no seu exemplo.

 

1 - Pq existem duas colunas estado? Foi apenas algum erro na hora de colar/digitar?

2 - Você está agrupando por estado, então como aparecem estados repetidos? Não me parece correto...

 

1 hora atrás, ARS Informática disse:

Ele faz a listagem e agrupa por estado mas não faz a paginação.

Pq não? O que acontece?

 

Em tese, seu GROUP não deveria ter influência ou influenciar no LIMIT. São instruções completamente distintas.

 

Se possível poste exatamente como está no momento e como você gostaria que estivesse (me refiro aos resultados da consulta).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá ...

Fiz desta forma :

 

$sql = "SELECT * FROM nomeRef WHERE nivel = '3' GROUP BY estado ORDER BY estado ASC";
$query = mysql_query($sql) or die(mysql_error());

 

               while($Linha = mysql_fetch_array($query)) {
                        
                        $sqlest = "SELECT * FROM nomeRef WHERE estado = '$Linha[estado]' AND nivel = '3' ORDER BY nome ASC LIMIT $inicio, $quantidade";
                        $queryest = mysql_query($sqlest) or die(mysql_error());
                        
                         while($Linhaest = mysql_fetch_array($queryest)) {

Listagem ...

}

 

Assim lista todos os nomes cadastrados na tabela, agrupados por estado. 

Ex.: Estado de SP -> todos os nomes de são paulo; estado de SC -> todos os nomes de SC ...

 

Mas não consegui fazer a paginação, ele imprime todos na mesma página.

O problema é que tenho que fazer a paginação, pois são muitos dados, são mais de 200 mil linhas.

Tenho que imprimir 1000 linhas por página.

 

Podem me ajudar ???

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 23/01/2018 at 02:55, Matheus Tavares disse:

Ou eu não entendi, ou acho que existe algum erro no seu exemplo.

 

1 - Pq existem duas colunas estado? Foi apenas algum erro na hora de colar/digitar?

2 - Você está agrupando por estado, então como aparecem estados repetidos? Não me parece correto...

 

Pq não? O que acontece?

 

Em tese, seu GROUP não deveria ter influência ou influenciar no LIMIT. São instruções completamente distintas.

 

Se possível poste exatamente como está no momento e como você gostaria que estivesse (me refiro aos resultados da consulta).

 

 

Olá ...

Fiz desta forma :

 

$sql = "SELECT * FROM nomeRef WHERE nivel = '3' GROUP BY estado ORDER BY estado ASC";
$query = mysql_query($sql) or die(mysql_error());

 

               while($Linha = mysql_fetch_array($query)) {
                        
                        $sqlest = "SELECT * FROM nomeRef WHERE estado = '$Linha[estado]' AND nivel = '3' ORDER BY nome ASC LIMIT $inicio, $quantidade";
                        $queryest = mysql_query($sqlest) or die(mysql_error());
                        
                         while($Linhaest = mysql_fetch_array($queryest)) {

Listagem ...

}

 

Assim lista todos os nomes cadastrados na tabela, agrupados por estado. 

Ex.: Estado de SP -> todos os nomes de são paulo; estado de SC -> todos os nomes de SC ...

 

Mas não consegui fazer a paginação, ele imprime todos na mesma página.

O problema é que tenho que fazer a paginação, pois são muitos dados, são mais de 200 mil linhas.

Tenho que imprimir 1000 linhas por página.

 

https://www.cinobras.com.br/sistema/teste.php

 

Podem me ajudar ???

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.