Hola!! de nuevo.. se me ocurrio hacer una funcion dinamica, donde al inicio me muestre la estructura de una tabla como lo hicimos anteriormente, pero adicional pueda agregar nuevos campos a la tabla y tambien poder eliminarlos...
... anteriormente habia chequeado algo similar pero este gestionaba usuarios...
bueno aqui te pongo el codigo, seria muy bueno que lo revisaras y me pudieras señalar que esta mal... te agradezco de antemano.
Código PHP:
<?
require("aut_config.inc.php"); // Como vimos anteriormente, esta es donde estan las variables necesarias para conectar.
$pag=$_SERVER['PHP_SELF'];?>
<html>
<head>
<title>Gestión tablas</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF">
<?php
function cabeceraHTML(){
echo <<< HTML
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
// Aqui esta la Hoja de estilos
<style type="text/css">
<!--
.botones { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 9pt; color: #FFFFFF; background-color: #0099FF; border-color: #000000 ; border-top-width: 1pix; border-right-width: 1pix; border-bottom-width: 1pix; border-left-width: 1pix}
.imputbox { font-size: 10pt; color: #000099; background-color: #FFFFFF; font-family: Verdana, Arial, Helvetica, sans-serif; border: 1pix #000000 solid; border-color: #000000 solid; font-weight: normal}
A:VISITED { font-weight: normal; color: #0000CC; TEXT-DECORATION:none; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt}
A:LINK { font-weight: normal; color: #0000CC; TEXT-DECORATION:none; font-family: Verdana, Arial, Helvetica, sans-serif; border-color: #33FF33 #66FF66; clip: rect( ); font-size: 10pt}
A:ACTIVE { font-weight: normal; color: #FF3333; TEXT-DECORATION:none; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt}
A:HOVER { font-weight: normal; color: #0000CC; font-family: Verdana, Arial, Helvetica, sans-serif; font-weight: normal; text-decoration: underline; font-size: 10pt}
-->
</style>
</head>
<body bgcolor="#FFFFFF">
HTML;
}
// aqui esta lo que teniamos anteriormente
$db_conexion= mysql_connect("$sql_host", "$sql_usuario", "$sql_pass") or die (mysql_error());
mysql_select_db("$sql_db")or die(mysql_error());
$consulta = "DESCRIBE usuarios";
$res = mysql_query ( $consulta );
$numres = mysql_num_rows ( $res );
if (!isset($_GET['accion'])){
// posicionamiento de consulta en el script original
cabeceraHTML();
//aqui esta el encabezado de la tabla
echo <<< HTML
<table width="800" border="1" cellspacing="0" cellpadding="4" bordercolor="#CCCCCC" align="center">
<tr>
<td colspan="4" bgcolor="#0099FF">
<div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b><font color="#FFFFFF">.:
Gestion de tablas :.</font></b></font><br>
<a href="Salirses.php">Cerrar Sesion</a>
</div>
</td>
</tr>
<tr bgcolor="#00CCCC">
<td width="18%">
<div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#FFFFFF">Campo
</font></b></div>
</td>
<td width="16%">
<div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#FFFFFF">Tipo
</font></b></div>
</td>
<td width="10%">
<div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#FFFFFF">Nulo
</font></b></div>
</td>
<td width="10%">
<div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#FFFFFF">LLave
</font></b></div>
</td>
<td width="10%">
<div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#FFFFFF">Default
</font></b></div>
</td>
<td width="18%">
<div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#FFFFFF">Extra
</font></b></div>
</td>
<td width="18%" bgcolor="#CCFFCC">
<div align="center"><font color="#FFFFFF"><a href="$pag?accion=nuevo">Agregar Campo</a></font></div></td>
</tr>
HTML;
while ( $filas = mysql_fetch_array ( $res ) or die(mysql_error()));
{
// lo que teniamos antes echo $filas['Field']."|".$filas['Type']."|".$filas['Null']."|".$filas['Key']."|".$filas['Default']."|".$filas['Extra']."|<br/>";
echo <<< HTML
<tr>
<td width="18%" bgcolor="#FFA4A4"><div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">$filas['Field'].</font></div></td>
<td width="16%" bgcolor="#FFA4A4"><div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"> $filas['Type'].</font></div></td>
<td width="10%" bgcolor="#FFA4A4"><div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">$filas['Null'].</font></div></td>
<td width="10%" bgcolor="#FFA4A4"><div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">$filas['Key'].</font></div></td>
<td width="10%" bgcolor="#FFA4A4"><div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">$filas['Default'].</font></div></td>
<td width="18%" bgcolor="#FFA4A4"><div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">$filas['Extra'].</font></div></td>
<td width="18%" bgcolor="#CCFFCC">
<div align="center"><a href="$pag?accion=borrar&field=$filas['field']"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Borrar</font></a><font face="Verdana, Arial, Helvetica, sans-serif" size="2">
</td>
</tr>
HTML;
}
echo "</table>";
mysql_free_result($res);
mysql_close();
}
// aqui le agregue la funcion de borrar
if (isset($_GET['Field'])){
if ($_GET['accion']=="borrar"){
mysql_fetch_array ( $res ) or die(mysql_error());
$total_registros = mysql_num_rows ($res);
mysql_free_result($res);
$Field_borrar= $_GET['Field'];
mysql_query("ALTER TABLE $sql_tabla DROP Field=$Field_borrar") or die(mysql_error());
mysql_close();
header ("Location: $pag");
exit;
}
// aqui le di la funcion de agregar campo
if ($_GET['accion']=="nuevo"){
cabeceraHTML();
echo <<< HTML
<form method="post" action="$PHP_SELF?accion=hacernuevo">
<table width="350" border="1" cellspacing="0" cellpadding="4" align="center">
<tr>
<td colspan="2" height="30" bgcolor="#0099FF">
<div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#FFFFFF">.:
Registro de Usuarios :.</font></b></div>
</td>
</tr>
<tr bgcolor="#FFFFCC">
<td width="158">
<div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Nombre del campo
: </font></div>
</td>
<td width="170"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">
<input type="text" name="nombrecampo" class="imputbox" maxlength="20">
</font></b></td>
</tr>
<tr bgcolor="#FFFFCC">
<td width="158">
<div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">longitud
: </font></div>
</td>
<td width="170"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">
<input type="longitud" name="longitud" class="imputbox" maxlength="15">
</font></b></td>
</tr>
<tr bgcolor="#FFFFCC">
<td colspan="2" height="40">
<div align="center">
<input type="submit" name="Submit" value=" Registrar " class="botones" >
</div>
</td>
</tr>
</table>
</form>
HTML;
}
if ($_GET['accion']=="hacernuevo"){
$nombrecampo=$_POST['nombrecampo'];
$longitud=$_POST['longitud'];
$usuarios_consulta = mysql_query("ALTER TABLE $sql_table ADD $nombrecampo VARCHAR( $longitud ) NOT NULL") or die(mysql_error());
$total_encontrados = mysql_num_rows ($res);
mysql_free_result($res);
mysql_close();
header ("Location: $pag");
exit;
}
?>
</body>
</html>