ver una tabla sentencia propiedades para obtener nombres nombre mostrar los las desde consultar como comando columnas campos php sql mysql

una - obtener nombre de columnas mysqli php



Obtener nombres de columna de tabla en MySQL? (17)

¿Hay una manera de tomar el nombre de las columnas de una tabla en mysql? usando php


Esta solución es desde la línea de comandos mysql.

mysql>USE information_schema;

En la siguiente consulta, simplemente cambie <--DATABASE_NAME--> a su base de datos y <--TABLENAME--> a su nombre de tabla donde solo desea valores de campo de la declaración DESCRIBE

mysql> SELECT COLUMN_NAME FROM COLUMNS WHERE TABLE_SCHEMA = ''<--DATABASE_NAME-->'' AND TABLE_NAME=''<--TABLENAME-->'';


Examinar:

mysql_query(''DESCRIBE ''.$table);


He escrito un script php simple para obtener columnas de la tabla a través de PHP: Show_table_columns.php

¡Disfrutar!


Hice una función PDO que devuelve todos los nombres de columna en una matriz simple.

public function getColumnNames($table){ $sql = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = :table"; try { $core = Core::getInstance(); $stmt = $core->dbh->prepare($sql); $stmt->bindValue('':table'', $table, PDO::PARAM_STR); $stmt->execute(); $output = array(); while($row = $stmt->fetch(PDO::FETCH_ASSOC)){ $output[] = $row[''COLUMN_NAME'']; } return $output; } catch(PDOException $pe) { trigger_error(''Could not connect to MySQL database. '' . $pe->getMessage() , E_USER_ERROR); } }

La salida será una matriz:

Array ( [0] => id [1] => name [2] => email [3] => shoe_size [4] => likes ... )

Lo siento por el necro pero me gusta mi función;)

PS No he incluido la clase Core, pero puedes usar tu propia clase ... DS


La función mysql_list_fields puede interesarte; pero, como dice el manual:

Esta función está en desuso. Es preferible usar mysql_query() para emitir una declaración de la SHOW COLUMNS FROM table [LIKE ''name''] SQL SHOW COLUMNS FROM table [LIKE ''name''] .


La función MySQL describe la tabla debería llevarlo a donde quiere ir (ponga el nombre de su tabla en "tabla"). Tendrás que analizar la salida un poco, pero es bastante fácil. Como recuerdo, si ejecuta esa consulta, las funciones de acceso a resultados de la consulta PHP que normalmente le darían un par clave-valor tendrán los nombres de columna como las claves. Pero ha pasado un tiempo desde que usé PHP, así que no me obligues a eso. :)


Las siguientes sentencias de SQL son casi equivalentes:

SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = ''tbl_name'' [AND table_schema = ''db_name''] [AND column_name LIKE ''wild''] SHOW COLUMNS FROM tbl_name [FROM db_name] [LIKE ''wild'']

Referencia: INFORMATION_SCHEMA


Necesitaba nombres de columna como una matriz plana, mientras que las otras respuestas devolvían matrices asociativas, así que utilicé:

$con = mysqli_connect(''localhost'',$db_user,$db_pw,$db_name); $table = ''people''; /** * Get the column names for a mysql table **/ function get_column_names($con, $table) { $sql = ''DESCRIBE ''.$table; $result = mysqli_query($con, $sql); $rows = array(); while($row = mysqli_fetch_assoc($result)) { $rows[] = $row[''Field'']; } return $rows; } $col_names = function get_column_names($con, $table);

$ col_names ahora es igual a:

( [0] => name [1] => parent [2] => number [3] => chart_id [4] => type [5] => id )


Puede utilizar DESCRIBE :

DESCRIBE my_table;

O en versiones más nuevas puedes usar INFORMATION_SCHEMA :

SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = ''my_database'' AND TABLE_NAME = ''my_table'';

O puedes usar MOSTRAR COLUMNAS :

SHOW COLUMNS FROM my_table;


Qué tal esto:

SELECT @cCommand := GROUP_CONCAT( COLUMN_NAME ORDER BY column_name SEPARATOR '',/n'') FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = ''my_database'' AND TABLE_NAME = ''my_table''; SET @cCommand = CONCAT( ''SELECT '', @cCommand, '' from my_database.my_table;''); PREPARE xCommand from @cCommand; EXECUTE xCommand;


También es interesante notar que puedes usar
EXPLAIN table_name que es sinónimo con DESCRIBE table_name y SHOW COLUMNS FROM table_name aunque EXPLAIN se usa más comúnmente para obtener información sobre el plan de ejecución de la consulta.


También es posible que desee revisar mysql_fetch_array() , como en:

$rs = mysql_query($sql); while ($row = mysql_fetch_array($rs)) { //$row[0] = ''First Field''; //$row[''first_field''] = ''First Field''; }


También hay esto si prefieres:

mysql_query(''SHOW COLUMNS FROM tableName'');


en mysql para obtener los detalles de las columnas y la estructura de la tabla siguiendo las palabras clave o las consultas

1. DESC table_name

2. DESCRIBE table_name

3. SHOW COLUMNS FROM table_name

4. SHOW create table table_name;

5. EXPLAIN table_name


esto funcionó para mí ..

$sql = "desc MyTableName"; $result = @mysql_query($sql); while($row = @mysql_fetch_array($result)){ echo $row[0]."<br>"; }


puede obtener toda la estructura de la tabla utilizando el siguiente comando simple.

DESC TableName

o puede utilizar la siguiente consulta.

SHOW COLUMNS FROM TableName


$col = $db->query("SHOW COLUMNS FROM category"); while ($fildss = $col->fetch_array()) { $filds[] = ''"{''.$fildss[''Field''].''}"''; $values[] = ''$rows->''.$fildss[''Field''].''''; } if($type == ''value'') { return $values = implode('','', $values); } else { return $filds = implode('','', $filds); }