Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Select para listar colunas do banco de dados

Existe por select uma forma de listar as colunas do banco de dados retornando num array?

É que fiz uma simulação de um cadastro com 30 campos, criei no banco de dados, mas pensei que poderia gerar a página de cadastro fazendo um loop nas colunas e criando os campos.

5 respostas

No MySQL tem algumas formas de fazer isso.

DESC `tabela`;
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'banco_de_dados' AND TABLE_NAME = 'tabela';
SHOW COLUMNS FROM tabela;

Eu uso a primeira por pura preguiça. rsrsrsrs

Mas, talvez a segunda forma seja a mais enxuta pra você pegar, pois realmente só traz o nome da coluna.

Espero ter ajudado.

rsrs qual é a primeira e qual a segunda?

por preguiça imagino que seria : show columns from tabela;

e a outra mais certinha seria a : SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'banco_de_dados' AND TABLE_NAME = 'tabela';

Quando faço essa segunda pelo php my admin ele lista mas depois dá um monte de erros..

posso abusar um pouco? como coloco esse resultado num array?

seria algo assim? (por que não deu certo)

$colunas = array(); $selectColunas = mysqli_query($conexao, "SELECT XXXXX");

while($coluna = mysqli_fetch_assoc($selectColunas)){

array_push($colunas, $coluna) ;

}

Olá Fernando, Faz assim:

$result = mysql_query("SELECT colunas FROM tabela");
$colunasArray = Array();
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    $colunasArray [] =  $row['names'];  
}

Depois faça um var_dump ou print_r na variável $colunasArray que você vai perceber que as colunas que você selecionou no SELECT estarão lá!

Qualquer coisa avisa aqui

solução!

Opa, Fernando. Cada linha que eu postei é uma forma de fazer. Pra preencher o array utilizando a seguna (e maior) forma, pode fazer assim:

$colunas = array();
$selectColunas = mysqli_query(
    $conexao,
    "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'banco_de_dados' AND TABLE_NAME = 'tabela';"
); 
while($coluna = mysqli_fetch_assoc($selectColunas)){
    array_push($colunas, $coluna['COLUMN_NAME']) ;
}

print_r($colunas)

Como eu digitei isso no celular, pode ter algo errado, mas, tenta aí e fala pra gente o que deu.

Valeuuuuuuu