Tengo el siguiente código:
Código PHP:
echo "<table>";
echo "<tr>";
echo "<td valign='top'>";
echo "<table width='100%' cellpadding='2' cellspacing='2' border='0' class='forumline' align='center'>";
echo "<tr class='encabeza' valign='middle'>";
echo "<td width='120' align='center'>Tabla</td>";
echo "<td width='80' align='center' colspan='3'>Acción</td>";
echo "</tr>";
$sql="show table status from dpswd where name!='funcion' and name!='habilidad' and name!='portada' and name!='notas' and name!='resp_consul'";
$result=mysql_query($sql,$link);
$colorfondo='#E9E9E9';
while ( $mrow=mysql_fetch_object($result) )
{
if ($colorfondo=='#F6f6f6') $colorfondo='#E9E9E9'; else $colorfondo='#F6f6f6';
$tablas=$mrow->Name;
$registros=$mrow->Rows;
$id=$tablas;
echo "<tr valign='middle' onMouseOut=\"this.bgColor='$colorfondo';\" onMouseOver=\"this.bgColor='#FAD29F';\" bgcolor='$colorfondo'>";
echo "<td width='120' align='left' class='tablas'><b>$tablas</b></td>";
echo "<td align='center'><a href='".$_SERVER['PHP_SELF']."?examinar&tabla=$tablas'><img src='images/examinar.gif' border='0' alt='Examinar' title='Examinar'></a></td>";
echo "<td align='center'><a href='".$_SERVER['PHP_SELF']."?insertar&$tablas'><img src='images/insertar.gif' border='0' alt='Insertar' title='Insertar'></a></td>";
echo "<td align='center'><a href='".$_SERVER['PHP_SELF']."?vaciar&$tablas'><img src='images/vaciar.gif' border='0' alt='Vaciar' title='Vaciar'></a></td>";
echo "</tr>";
}
echo "</table>";
echo "</td>";
echo "</tr>";
echo "</table>";
Este código, me muestra algunas tablas de mi base datos, además tiene unas opciones de:
Examinar,
Insertar y
Vaciar. Estoy trabajando sobre la opción examinar, por lo que toda la idea va a estar encaminada hacia esa opción, (
para que no pierdan mi objetivo). Cuando doy clic en examinar, me muestra la tabla con sus registros y cada registro tiene 2 opciones:
Editar y
Eliminar.
El código de examinar es el siguiente:
Código PHP:
echo "<tr>";
echo "<td valign='top' colspan='2'>";
echo "<table cellpadding='1' cellspacing='1' border='0' class='forumline'>";
echo "<tr class='encabeza' valign='middle'>";
echo "<td align='center'></td>";
$sql="select * from dpswd.$tabla limit $desde, $cantidadlinea";
$result = mysql_query($sql,$link);
$campos = mysql_num_fields($result);
for ($j=1; $j<$campos; $j++)
{
$nombre = mysql_field_name($result,$j);
echo "<td align='center' valign='middle'>";
echo "<a href='".$_SERVER['PHP_SELF']."?desc&nombre=$nombre&examinar&tabla=$tabla' class='orden' title='Ordenar descendentemente'><img src='images/desc.gif' border='0'></a> $nombre ";
echo "</td>";
echo "</tr>";
$colorfondo='#E9E9E9';
for ($i=0;$i<mysql_num_rows($result);$i++)
{
if ($colorfondo=='#F6f6f6') $colorfondo='#E9E9E9'; else $colorfondo='#F6f6f6';
echo "<tr valign='top' onMouseOut=\"this.bgColor='$colorfondo';\" onMouseOver=\"this.bgColor='#FAD29F';\" bgcolor='$colorfondo'>";
echo "<td valign='top'>";
echo "<table width='100%' cellpadding='2' cellspacing='1' border='0'>";
echo "<tr align='center' valign='top'>";
echo "<td><a href='".$_SERVER['PHP_SELF']."?editar&tabla=$tabla&lolo=$nombre' title='Editar'><img src='images/editar.gif' border='0'></a></td>";
echo "<td><a href='".$_SERVER['PHP_SELF']."?eliminar' title='Borrar'><img src='images/eliminar.gif' border='0'></td>";
echo "</tr>";
echo "</table>";
echo "</td>";
for ($k=1;$k<$campos;$k++)
{
$uno=substr(mysql_result($result, $i, $k),0,40);
$cadena=strtok($uno,".");
$cadena2=htmlspecialchars($cadena);
echo "<td style='font-size:11px'>$cadena2</td>";
}
echo "</tr>";
}
}
echo "</table";
echo "</td>";
echo "</tr>";
Hasta aquí casi todo bien, pero los problemas empiezan cuando voy a
Editar pues debe decirle que registro es el que quiero
Editar, pero no se como darle un valor calve de un registro determinado.
El código de edición que tengo hasta el momento es:
Código PHP:
$sql="SHOW COLUMNS FROM $tablas";
$result = mysql_query($sql,$link);
echo "<tr><td colspan='2' class='encabeza'>Editando $tablas</td></tr>";
while ($row = mysql_fetch_assoc($result)) {
$campos=$row;
echo "<tr>";
echo "<td align='right' valign='top'>".$campos['Field'].": </td>";
echo "<td>";
if ( $campos['Key']==MUL ) {
$campo_foraneo = $campos['Field'];
$sql="SELECT CONCAT( referenced_table_name) AS tabla_referencia FROM information_schema.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_SCHEMA = 'dpswd' AND REFERENCED_TABLE_NAME IS NOT NULL AND COLUMN_NAME = '$campo_foraneo' ORDER BY TABLE_NAME, COLUMN_NAME"; $result=mysql_query($sql,$link);
$cols=mysql_fetch_object($result);
$tabla=$cols->tabla_referencia;
$sql="select $campo_foraneo from dpswd.$tabla";
$result=mysql_query($sql,$link);
echo "<select name='".$campos."'>";
echo "<option>- - - </option>";
while ( $select=mysql_fetch_assoc($result) ){
$select_campo=$select;
echo "<option value='".$select_campo[$campo_foraneo]."'>".$select_campo[$campo_foraneo]."</option>";
}
echo "</select>";
}elseif( $campos['Type']==longtext )
{
echo "<textarea name='".$campos['Field']."' cols='50' rows='4'></textarea>";
}else{
if ( $campos['Key']==PRI )
{
echo "valor del id";
}else{
echo "<input type='text' name='".$campos['Field']."' value='' />";
}
}
echo "</td>";
echo "</tr>";
}
echo "<tr><td></td><td align='left'><input type='submit' name='guardar' value='Guardar'></td></tr>";
El otro detalle esta en que cuando quiero editar un registro por ejemplo: la tabla
usuarios, en ella esta el campo foraneo
id_funcion, que viene de la tabla
funcion, el select me muestra el número de cada registro de la tabla funcion, sin embargo lo que quiero es que me salgan las funciones y no los números de cada función.