Criando listas com PHP/MySQL
2010
Hoje resolvi variar um pouco. Como estou ajudando um amigo no seu TCC, escrevi para ele uma função bem legal, pelo menos eu achei, depois me falem o que acharam. Eu vou colocar ela aqui em duas etapas. Nessa primeira, vamos criar uma lista, somente passando uma tabela do banco. A assinatura da função vai ficar mais ou menos assim:
<?php
include_once('conexao.php');
include('funcoes.php');
CriarLista('Estado');
?>
A conexão é bem simples, faça como quiser.
Já a função, baseia-se na instrução SQL: SHOW FULL COLUMNS FROM TB_CLIENTE. Essa instrução retorna uma lista com os campos: Field, Type, Collation, Null, Key, Default, Extra Privileges e Comment. Para nós, nesse momento só interessam Field e Comment. Explico. Pegaremos os campos que retornam nessa SQL e com eles, comporemos a nova SQL com os campos que a primeira retornou, ficou claro?
Nos comments da tabela em questão, eu coloquei a descrição dos campos, tipo o campo EST_CODIGO tem o comentário “Código”.
Para usar, eu fiz o trechinho de código abaixo:
$sql = 'SHOW FULL COLUMNS FROM ' . $tabela; // Crio a string
$res = mysql_query($sql); // Envia a string para o banco e guarda o retorno
$sql = 'select '; // Crio a nova SQL
$estrutura = array(); // Inicializo o array
$pos = 1; // Inicializa 1ª posição
echo "<table border='1'>
<tr>"; // Monta o início da tabela
while ($lin = mysql_fetch_assoc($res)) {
echo "<td>".$lin['Comment']."</td>";
$estrutura[$pos++] = $lin;
$sql .= $lin['Field'] . ', ';
}
echo "</tr>";
$sql = substr($sql, 0, strlen($sql) - 2);
$sql .= " from ". $tabela ;
Com esse código ai conseguimos compor uma nova SQL, algo como Select EST_CODIGO, EST_NOME from ESTADO. Assim, poderemos fazer a nova consulta como deve ser. Além disso, todo o resultado daquele resource fica armazenado em um array chamado estrutura, para consulta posterior.
Com esses dados em mãos, vamos simplesmente fazer a nova consulta no banco e trazer os dados para dentro da tabela. Veja como fica esse trecho:
$res = mysql_query($sql);
while ($lin = mysql_fetch_assoc($res)) {
echo "<tr>";
foreach ($estrutura as $campo) {
echo "<td>".$lin[$campo['Field']]."</td>";
}
echo "</tr>";
}
echo "</table>";
e assim funciona, e no próximo post eu coloco o arquivo para download e também como paginar o resultado dessa função.
Até mais
August 31st, 2010 at 08:37
[...] This post was mentioned on Twitter by Ken Curte?, Elias Praciano, RADAGA Proc. Dados, Ken Curte?, JulianoRibeiro and others. JulianoRibeiro said: pra quem curte #PHP mas cansou de fazer o mesmo código sempre > http://digs.by/d2JyB4 [...]
September 6th, 2010 at 23:13
Interessante para um sistema que permita a criação de tabelas pelo usuário. Pena que usuários sempre acham um jeito de complicar tudo.
September 11th, 2010 at 21:24
[...] de colocar uma listagem bem simples, buscando os dados do banco e montando numa tabela, eu vou colocar o resto da implementação, bem [...]
July 16th, 2011 at 09:29
Boa Noite!, o meu nome é Andreia estudo Artes e adorei muito do teu blogue! Muito linda muito bem!
Concordo muito bem tudo aquilo que aqui observei.Existe sempre imenso que regidir nos blogues!Nada nada mais desafiante do que implementar a nossa marca na net!
Adeus