Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/09/2012, 03:17
drentero
 
Fecha de Ingreso: febrero-2011
Ubicación: Madrid
Mensajes: 9
Antigüedad: 13 años, 2 meses
Puntos: 0
Modificar registros mediante formulario

Muy buenas:

Soy nuevo en esto y estoy intentando realizar un script que me permita seleccionar un registro de una bd, mostrarme los campos (editables) en una tabla, editarlos y luego que se modifiquen en la bd.

Tengo varias consultas:

- Al seleccionar uno de los registros y cargar el archivo editar.php, me sale:

Notice: Undefined index: action in C:\xampp\htdocs\editar.php on line 9

No entiendo a qué se debe este error.

- Al ya modificar algún dato, le doy a guardar y me sale:


Notice: Undefined index: id in C:\xampp\htdocs\editar.php on line 7

No se ha podido ejecutar la consulta. Compruebe si la sintaxis de la misma es correcta.

Y no consigo que me modifique el registro. Si hago un echo de la consulta sql, no consigo recuperar el campo IdPolideportivo. Pero, en cambio, si hago un echo de este campo, sí que me lo escribe.



Lo estoy haciendo con dos archivos php. Os pego el código aquí:

modificar.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">
<head>
<title>Proyecto de fin de carrera</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="css/estilos.css" rel="stylesheet" type="text/css" />
</head>
<body>
<BR><BR><BR><BR><BR><BR>

<?php
include('config.php');

$consulta="SELECT * FROM $tabla order by IdPolideportivo ASC";
$datos= mysql_query($consulta,$conexion) or die("<p>No se ha podido ejecutar la consulta. Compruebe si la sintaxis de la misma es correcta.<p>");


echo "<H1> Listado de los ". $tabla;
echo "<BR><BR>";

?>
<table class='tabla'>

<?php while ($registro = mysql_fetch_assoc($datos))

{ ?>
<tr>
<td><?php echo $registro['Nombre']; ?></td>
<td><a href="editar.php?id=<?php echo $registro['IdPolideportivo']; ?> ">Editar</a></td>
</tr>
<?php }
mysql_free_result($datos);

?>

</table>
<BR><BR>



<BR><BR>
<A HREF="/principal.html">Volver</A>

</body>
</html>

-------------------------------------------------------------------------------------------------------

editar.php

<html>
<body>
<?php
include('config.php');
$idempresa = ($_GET["id"]);
$action = ($_GET["action"]);
if ($action == "edit") {
$id = ($_POST["id"]);
$nombre = ($_POST["Nombre"]);
$direccion = ($_POST["Direccion"]);
$distrito = ($_POST["Distrito"]);
$sql = "UPDATE $tabla SET ";
$sql.= "nombre='".$nombre."', direccion='".$direccion."', distrito='".$distrito."' ";
$sql.= "WHERE idPolideportivo=6 ";
mysql_query($sql, $conexion);
}

// consultamos los datos

$consulta="SELECT * FROM $tabla WHERE IdPolideportivo =".$idempresa;
$datos= mysql_query($consulta,$conexion) or die("<p>No se ha podido ejecutar la consulta. Compruebe si la sintaxis de la misma es correcta.<p>");

$registro = mysql_fetch_assoc($datos);
$total = mysql_num_rows($datos);
if ($total == 0) {
// si no hay datos redireccionamos al listado
header("location: listado.php");
exit;
}
?>
<form method="post" action="editar.php?action=edit">
<strong>Nombre</strong>
<input type="text" name="Nombre" value="<?php echo $registro['Nombre']; ?>" />
<strong>Dirección</strong>
<input type="text" name="Direccion" value="<?php echo $registro['Direccion']; ?>" />
<strong>Distrito</strong>
<input type="text" name="Distrito" value="<?php echo $registro['Distrito']; ?>" />
<input type="text" id="id" name="id" value="<?php echo $registro['IdPolideportivo']; ?>" />
<button type="submit">Guardar</button>
<button type="reset">Limpiar</button>
</form>
</body>
</html>

La base de datos tiene unos cuantos registros y el campo IdPolideportivo es de tipo INT. ¿Se os ocurre qué puede estar fallando?

Gracias!!!!!