Trabalhando e listando diferentes tabelas em php com mysql
08/05/2014
0
$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.
João Oliveira
Posts
09/05/2014
David Sylvestre
A estrutura das tabelas é a mesma?
O nome das tabelas é o nome dos estados?
09/05/2014
João Oliveira
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; }
Tabela estado de 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>
Tabela do estado do 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>
09/05/2014
David Sylvestre
function estado_listar($conexao, $estado){ $sql = "SELECT ano, cidade, populacao FROM {$estado}"; $resultado = mysqli_query($conexao, $sql); return $resultado; }
09/05/2014
João Oliveira
09/05/2014
David Sylvestre
Caso o estado nao for o nome da tabela, poderia ser montado um array com a chave sendo o estado e o valor o nome da tabela e através do estado setar o nome da tabela dinamicamente.
17/05/2014
João Oliveira
22/05/2014
David Sylvestre
Exatamente isso, ai vai depender de como estão os nomes das tabelas, no caso presumo que elas tenhar o mesmo nome do estado.
22/05/2014
João Oliveira
29/05/2014
David Sylvestre
Clique aqui para fazer login e interagir na Comunidade :)