Paginação com Php e Mysql com Group By
Olá..
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.
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.
Alguem pode me ajudar ????
Obrigado
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.
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.
Alguem pode me ajudar ????
Obrigado
Aramis Serafim
Curtidas 0
Respostas
Rob2014
24/01/2018
Você precisa utilizar o GROUP BY?<br />
<br />
Me parece que apenas utilizando o ORDER BY resolverá.<br />
<br />
Quando você utiliza o group by ele agrupa em um único registro as informações de um estado na sua query.<br />
<br />
<br />
Me parece que apenas utilizando o ORDER BY resolverá.<br />
<br />
Quando você utiliza o group by ele agrupa em um único registro as informações de um estado na sua query.<br />
<br />
GOSTEI 0