Fórum Trabalhando e listando diferentes tabelas em php com mysql #478424
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
Curtir tópico
+ 0Posts
09/05/2014
David Sylvestre
A estrutura das tabelas é a mesma?
O nome das tabelas é o nome dos estados?
Gostei + 0
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>Gostei + 0
09/05/2014
David Sylvestre
function estado_listar($conexao, $estado){
$sql = "SELECT ano, cidade, populacao FROM {$estado}";
$resultado = mysqli_query($conexao, $sql);
return $resultado;
}Gostei + 0
09/05/2014
João Oliveira
Gostei + 0
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.
Gostei + 0
17/05/2014
João Oliveira
Gostei + 0
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.
Gostei + 0
22/05/2014
João Oliveira
Gostei + 0
29/05/2014
David Sylvestre
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)