Criando listas com PHP/MySQL

Aug 30
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

4 Responses to “Criando listas com PHP/MySQL”

  1. Tweets that mention Criando listas com PHP/MySQL « Juliano Ribeiro -- Topsy.com says:

    [...] 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 [...]

  2. Fábio da Costa Leal says:

    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. :)

  3. Criando listas com PHP/MySQL – Paginação « Juliano Ribeiro says:

    [...] de colocar uma listagem bem simples, buscando os dados do banco e montando numa tabela, eu vou colocar o resto da implementação, bem [...]

  4. Andreia says:

    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 :)

Leave a Reply

Arquivo

Categorias