PDA

Ver la versión completa : Borrado de datos mediante un formulario



fideos
12-06-2008, 05:43
Hola. Tengo una pag que contiene varios frames y el que tengo el problema es el frame de la izquierda que contiene un pequeño formulario para ver si me lista y me borra un registro de una base de datos. El botón de listar mensajes si me lo hace bien y mando los datos hacia los otros frames. El botón de borrar usuario, no me lo borra El frame se llama framelateral2.php. El formulario es este que tiene una lista desplegable con los nombres de los usuarios y 2 botones, uno para listar mensajes y otro para borrar usuarios:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>
<? require('../configuracion.php');
$sql = "select usuario from usuarios";
$consulta = mysql_query ($sql, $con) or die ("Error en la consulta: ".mysql_error());
?>
<body>
<table width="259" height="569" border="1">
<tr>
<td align="center" valign="top" bgcolor="#99CCFF"><div align="center">
<form id="form1" name="form1" method="post" action="gestion3.php" target = "framearriba2">
<p><font face = "Verdana">Usuarios</font>&nbsp;&nbsp;&nbsp;
<? echo '<select name="user">';
// Introducimos los valores de la consulta en la lista desplegable de usuarios
while ($resultado = mysql_fetch_row ($consulta))
foreach ($resultado as $valor)
echo '<option>'.$valor;
echo '</select>';
?>
</p>
<p>
<input type="submit" name="listar" value="Listar Mensajes" />&nbsp;&nbsp;&nbsp;&nbsp;
</form>
<form id="form2" name="form2" method="post" action="framelateral2.php" >
<input type="submit" name="borrar" value="Borrar Usuario" />
</form>
</p>
<p>&nbsp;</p>
</div></td>
</tr>
</table>
<?
$usuario = $HTTP_POST_VARS['user'];
if (isset($HTTP_POST_VARS['borrar'])) {
echo '<p align = "center"> El usuario es : '.$usuario.'</p>';
//header ("Location: contenedor2.php");
$sql2 = "delete from usuarios where usuario = '$usuario'";
$borrado = mysql_query ($sql2, $con) or die ("Error en el borrado del usuario: ".mysql_error());
}?>
</body>
</html>
Ya he dicho que cuando pulso el boton de borrar no me borra el registro. El caso es que no recoge el texto que hay seleccionado en la lista desplegable. Gracias

KaoS
29-06-2008, 15:02
Fideos estás usando dos formularios diferentes, por tanto cuando pulsas "Borrar usuario" estás llamando a framelateral2.php pero no le estás enviando ninguna variable porque form2 no tiene variables. Si quieres enviar el usuario leccionado en form1 podrías hacerlo así:


<form id="form1" name="form1" method="post" action="gestion3.php" target = "framearriba2">

<p><font face = "Verdana">Usuarios</font>&nbsp;&nbsp;&nbsp;
<?

echo '<select name="user">';
// Introducimos los valores de la consulta en la lista desplegable de usuarios
while ($resultado = mysql_fetch_row ($consulta))
foreach ($resultado as $valor)
echo '<option>'.$valor;
echo '</select>';
?>
</p>
<p>
<input type="submit" name="listar" value="Listar Mensajes" />&nbsp;&nbsp;&nbsp;&nbsp;
</form>


<form id="form2" name="form2" method="post" action="framelateral2.php" >

<!-- AQUÍ DEFINES TB LAS VARIABLES -->


<p><font face = "Verdana">Usuarios</font>&nbsp;&nbsp;&nbsp;
<?

echo '<select name="user">';
// Introducimos los valores de la consulta en la lista desplegable de usuarios
while ($resultado = mysql_fetch_row ($consulta))
foreach ($resultado as $valor)
echo '<option>'.$valor;
echo '</select>';
?>
</p>
<p>
<input type="submit" name="listar" value="Listar Mensajes" />&nbsp;&nbsp;&nbsp;&nbsp;
<input type="submit" name="borrar" value="Borrar Usuario" />
</form>


IMPORTANTE: seguramente el segundo mysql_fetch_row ($consulta) no te va a funcionar porque ya extragiste los datos, así que puedes usar un array la primera vez que los extraes (añadiendo cada elemento extraido al array) y luego recorrerlo de nuevo para volver a imprimirlos.

Espero que te sea de ayuda.
Un saludo,
KaoS