Mostrar como Tabla HTML los detalles de los campos de las tablas de una base de datos MySQL con PHP

Monday 26 de July de 2010, 9:33 am 6 Comments

Creo que es el título más largo que he usado en un post… “Mostrar como Tabla HTML los detalles de los campos de las tablas de una base de datos MySQL con PHP“… no encontré una mejor forma de resumirlo.

Hace poco tuve la necesidad de mostrar como tablas HTML los detalles de los campos (sus nombres, tipos, llaves, valores por defecto, etc) de las tablas de una base de datos MySQL en particular, utilizando PHP. Tomando la idea de David, la modifiqué y traduje según mis requerimientos (intentando dejar el script lo más general posible), y el resultado fué el siguiente código.

<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8" />
<title>Detalles de las Tablas de una Base da Datos</title>
 
<style type="text/css">
body			{ font-family: Arial, Verdana, Sans; font-size: 14px; }
table.tabla-bd		{ border-right:1px solid #ccc; border-bottom:1px solid #ccc; }
table.tabla-bd th	{ background:#eee; padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc; }
table.tabla-bd td	{ padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc; }
</style>
 
</head>
<body>
 
<?php
# Datos de Conexión a la Base de datos
# (Hay que ajustarlos a tus necesidades particulares)
$servidor  = 'miservidor';
$usuario   = 'miusuario';
$password  = 'miclave';
$basedatos = 'mibasededatos';
 
# Establecer la conexión a la Base de Datos
$conexion = mysql_connect($servidor,$usuario,$password);
mysql_select_db($basedatos,$conexion);
 
# Consulta SQL que devuelve los nombres de las tablas de la Base de Datos
$tablas = mysql_query('SHOW TABLES',$conexion) or die('Imposible mostrar tablas');
 
 
while($tabla = mysql_fetch_row($tablas)) {
 
	$nombreTabla = $tabla[0];
	echo '<h3>Tabla: ',$nombreTabla,'</h3>';
 
	# Consulta SQL que devuelve los campos de cada tabla
	$campos = mysql_query('SHOW COLUMNS FROM '.$nombreTabla) or die('Imposible mostrar campos de '.$nombreTabla);
 
	# Muestra como tabla HTML los detalles de los campos de la tabla correspondiente
	if(mysql_num_rows($campos)) {
		echo '<table class="tabla-bd" cellpadding="0" cellspacing="0"><thead><tr><th>Campo</th><th>Tipo</th><th>Nulo</th><th>Llave</th><th>Defecto</th><th>Extra</th></tr></thead><tbody>';
		while($detalles = mysql_fetch_row($campos)) {
			echo '<tr>';
			foreach($detalles as $detalle=>$valor) {
				echo '<td>',$valor,'</td>';
			}
			echo '</tr>';
		}
		echo '</tbody></table><br />';
	}
}
 
#Cerrar la conexión a la Base de Datos
mysql_close($conexion);
?>
 
</body>
</html>

¿Simple no? También podrías reutilizar el código anterior, por ejemplo: Si tienes una clase que encapsule el manejo de tus bases de datos, podrías usar el script anterior como método, y así invocarlo con un simple $basedatos->mostrarTablas(); … bueno, es sólo una idea.

Share

Post tags