Ir para conteúdo

POWERED BY:

Arquivado

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

johnoliver

Trabalhando e listando diferentes tabelas em php com mysql

Recommended Posts

Olá, estou começando meus estudo de php e me deparei com um problema em um projeto. Estou montando um site para um trabalho de faculdade onde eu uso tabelas para listar os dados de homicídios de todos os estados brasileiros, cada estado possui sua própria pagina. Ai começa o meu problema, por que cada estado possui sua própria tabela, e eu uso uma pagina php separada denominada controller, onde eu faço a conexão e extração dos dados do banco de dados do mysql. O que gostaria de saber e como posso otimizar meu código, pois da maneira que estou fazendo eu praticamente crio todo o código de controller para cada estado. Vou postar meu codigo do controller para ver se tem como otimizar. E desculpa se me expressei mal, como estou começando eu mesmo fico confuso.


$conexao = mysqli_connect("localhost", "root", "root", "estados");

function estado_listar($conexao){
$sql = "SELECT ano, cidade, populacao FROM mg";
$resultado = mysqli_query($conexao, $sql);

return $resultado;
}

$dados = listarDados($conexao);

function listarDados($conexao){
$resultado = estado_listar($conexao);

$data = array();

while($row = mysqli_fetch_array($resultado)){
$data[] = array("cidade" => $row['cidade'], "populacao" => $row['populacao'], "ano" => $row['ano']);
}
return $data;
}

O que estou fazendo e que toda vez que vou fazer uma nova pagina para outro estado tenho que recriar o código, gostaria de saber se tem alguma maneira de criar um modo que não precisa fazer isso, de forma que ele carregue a tabela do estado que vou usar na pagina.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Envie a sigla do estado via get,recupere e insira o dado enviado via get na sua query

$estado=$_GET['estado']; //suposição e sugestão apenas
$sql = "SELECT ano, cidade, populacao FROM '$estado' "; 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual razão de ser uma tabela para cada estado ?

Seria melhor uma só tabela com uma coluna para o estado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

e que cada estado tem sua própria pagina php, e nele consequentemente a listagem da sua tabela. Vou fazer o seguinte vou postar o meu código como esta, como poderão ver eu tive que criar 2 entradas para cada tabela no controller, gostaria de saber se tem como otimizar isso, pois são 27 estados.

 

controller:

<?php

	$conexao = mysqli_connect("localhost", "root", "root", "estados");
	$conexao_ac = mysqli_connect("localhost", "root", "root", "estados");
	
		if( mysqli_connect_error($conexao) ){
		echo "A conexão falhou, erro reportado: ".mysqli_connect_error();
		exit();
		}
		
		function estado_listar($conexao){
	$sql = "SELECT ano, cidade, populacao FROM mg ORDER BY ANO DESC";
	$resultado = mysqli_query($conexao, $sql);
	
	return $resultado;
}
		function ac_listar($conexao_ac){
	$sql_ac = "SELECT ano, cidade, populacao FROM ac ORDER BY ANO DESC";
	$resultado_ac = mysqli_query($conexao_ac, $sql_ac);
	
	return $resultado_ac;
}
	
		$dados_ac = listarDados_ac($conexao_ac);
		$dados = listarDados($conexao);
	

	
	@mysqli_close($conexao);
	
	function listarDados($conexao){
		$resultado = estado_listar($conexao);
		
		$data = array();
		
		while($row = mysqli_fetch_array($resultado)){
			$data[] = array("cidade" => $row['cidade'], "populacao" => $row['populacao'], "ano" => $row['ano']);
		}
		return $data;
	}
	
	function listarDados_ac($conexao_ac){
		$resultado_ac = ac_listar($conexao_ac);
		
		$data_ac = array();
		
		while($row = mysqli_fetch_array($resultado_ac)){
			$data_ac[] = array("cidade" => $row['cidade'], "populacao" => $row['populacao'], "ano" => $row['ano']);
		}
		return $data_ac;
	}

Chamando a tabela mg na pagina do estado Minas Gerais

 <table class="table striped">
                        <thead>
                            <th class="text-left">Cidade</th>
                            <th class="text-left">População</th>
                            <th class="text-left">Homicidios em 2011</th>
      </tr>
                        </thead>
                        <tbody>
    <?php 
	require_once("controller.php");
	
	foreach($dados as $linha) { ?>

                        <tr><td><?=$linha['cidade']?></td><td class="right"><?=$linha['populacao']?></td><td class="right"><?=$linha['ano']?></td></tr>
    
    <?php } ?>
</tbody>

                    </table>

chamando a tabela ac na pagina do estado Acre

<table class="table striped">
                        <thead>
                            <th class="text-left">Cidade</th>
                            <th class="text-left">População</th>
                            <th class="text-left">Homicidios em 2011</th>
      </tr>
                        </thead>
                        <tbody>
    <?php 
	require_once("controller.php");
	
	foreach($dados_ac as $linha) { ?>

                        <tr><td><?=$linha['cidade']?></td><td class="right"><?=$linha['populacao']?></td><td class="right"><?=$linha['ano']?></td></tr>
    
    <?php } ?>
</tbody>

                    </table>

Espero que consigam enter agora, eu quero otimizar o controller.

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.