dominios y alojamiento web en hostalia

Vídeo sobre Bases de datos con PHP: Actualización de registros

11 de September de 2011
Valoración del artículo:
Explicaciones sobre el acceso a bases de datos MySQL desde PHP, veremos como actualizar los registros, modificando los valores de sus campos con la sentencia UPDATE.
Este vídeo ofrece una nueva materia sobre bases de datos en PHP que todavía no habíamos visto en nuestro videotutorial de PHP. Se trata de otra de las sentencias básicas de acceso a bases de datos, la sentencia UPDATE que sirve para actualizar la información de las tablas.

En la anterior entrega habíamos ofrecido una introducción a las bases de datos en PHP, que ahora ampliamos con el presente vídeo, que también nos servirá para afianzar conocimientos anteriores. Asimismo, también quiero dar la referencia del artículo Actualización de un registro de base de datos con PHP, donde se explicó la sentencia UPDATE dentro del Manual de PHP.

Lo primero que veremos en el videotutorial será la creación de una sentencia SQL de tipo UPDATE y la ejecutaremos por medio de PHP. Con esto veremos que ejecutar una sentencia de actualización de registros en la base de datos es algo muy similar a ejecutar instrucciones de selección o inserción que habíamos visto anteriormente.

Más tarde haremos un ejemplo completo de actualización de un registro de una tabla. Aunque un UPDATE propiamente dicho se podría decir que se hace en una única línea de código, este segundo ejemplo implicará la creación de varios scripts, pues se trata de crear toda la estructura para que un usuario pueda:

  • Ver listados todos los registros de una tabla, para que pueda seleccionar uno de ellos.
  • Luego acceder a un formulario con los datos actuales de ese registro, escritos en diversos campos del formulario, de modo que los pueda editar.
  • Por último, una página que reciba los datos del formulario y realice la sentencia UPDATE para actualizar el registro con los nuevos datos recibidos.
Todos esos scripts podrían haberse realizado en una única página, pero por facilitarlos las cosas lo hemos hecho en tres diferentes. En la primera hacemos una operación de selección en la base de datos SELECT, de todos los registros de una tabla, que se muestran en un listado. En el segundo script hacemos una selección de todos los datos de un único registro para mostrarlos en un formulario y en el tercer script hacemos la actualización del registro propiamente dicho. Es decir, que son dos SELECT y un UPDATE, por eso decía en un principio que todo esto nos servirá para poder practicar con lo visto en la introducción a las bases de datos en el vídeo anterior.

El vídeo es un poco largo, ya que dura unos 45 minutos, por eso, aparte de todo lo especificado antes, está repleto de pequeñas técnicas que nos ayudarán en el día a día con las bases de datos y PHP, como la creación de un archivo externo para gestionar las conexiones a MySQL, la necesidad de cerrar la conexión o la manera de realizar comprobaciones en los datos recibidos desde MySQL, para asegurar su integridad antes de utilizarlos en la aplicación web.

En definitiva, espero que el vídeo resulte bastante útil y sirva para aprender varias cosas sobre las bases de datos y PHP, aparte del propio UPDATE.

Compartir en redes sociales

Comentarios
Fueron enviados 13 comentarios al artículo
7 comentarios no revisados
6 comentarios revisados:
EXcelente tutorial
11/9/2011
Interesante, me gusto mucho el tutorial... :D
IMPRESIONANTES VIDEOTUTORIALES
Por: Jose Antonio
16/9/2011
Hasta ahora de todo lo visto sobre video tutoriales,,, esto es de lo mejorcito,,, muy bien explicado,,, animo,,, uno mas a seguiros,,

Un saludo
Gracias por los comentarios!
16/9/2011
Vuestros comentarios animan a seguir trabajando. Muchas gracias!!
No me actualiza el script
05/10/2011
Al tratar de actualizar el cliente me imprime los datos que envia por el formulario de update-cliente-id.php (dejé el echo en la sentencia $ssql, para ver los datos). Así: http://usera.imagecave.com/karbo13/foros/actualizacion_ejercicio.png.jpg

Pero me dá el mensaje de error y no modifica los datos.

Mi archivo update-cliente-id.php es éste:

<!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">

<head>
<title>Bases de Datos</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
<link rel="stylesheet" href="estilos.css" type="text/css" />
</head>

<body>
<h2>Actualización de Datos</h2>

<?php
include("conn.php");
//Esta página recibe el id del cliente a editar
//debo mostrar un formulario con los datos del cliente, para que el usuario pueda ediar lo que desee.
$id_cliente = $_GET["id"];
//Este id es el que está en el enlace anterior y lo recibimos aquí.

//Sentencia SQL para la selección de ese cliente.
$ssql = "select * from clientes where id_cliente =" . $id_cliente; //como es un número no necesita comillas
$cliente_editar = mysql_query($ssql);

//Tengo que comprobar que ese cliente existe!!!
if(mysql_num_rows($cliente_editar)>0){

//Consigo los datos de ese cliente
$fila = mysql_fetch_object($cliente_editar);
//Esta funcion devuelve un dato de objeto
//creo un formulario con los datos de ese cliente
?>
<form action="update-cliente-id2.php" method="post">
<input type="hidden" name ="id_cliente" value="<?php echo $id_cliente; ?>">
Nombre:
<br />
<input type="text" name="nombre" size="40" value="<?php echo $fila->nombre; ?>">
<!-- Lo coloco así porque estoy recuparando el valor desde una función que devuelve datos de objeto -->
<br />
Dirección:
<br />
<input type="text" name="direccion" size="40" value="<?php echo $fila->direccion; ?>">
<br />
CIF:
<br />
<input type="text" name="cif" size="40" value="<?php echo $fila->cif; ?>">
<br />
Comentarios:
<br />
<textarea cols=30 rows=6 name="comentarios"><?php echo $fila->comentarios;?></textarea>
<br />
<input type="submit" value="Editar" />

</form>
<?
}else{
//Aqui estaremos si hay 0 clientes en ese id
echo "Lo lamento, no encontré ese cliente que deseas editar!!";
}
?>
<br />
<a href="update-con-seleccion-cliente.php">Cancelar y seleccionar otro cliente</a>
<?php
//Importante!! Cerrar la conexión al terminar el script
mysql_close($conexion);
?>
</body>
</html>



Y éste es el update-cliente-id2.php del action:

<?php
//Esta es la página final donde hacemos el update
include("conn.php");

$ssql = "UPDATE clientes set ";
$ssql .= "nombre='" . $_POST["nombre"] . "', ";
$ssql .= "direccion='" . $_POST["direccion"] . "', ";
$ssql .= "cif='" . $_POST["cif"] . "', ";
$ssql .= "comentarios='" . $_POST["comentarios"] . "', ";
$ssql .= "where id_cliente=" . $_POST["id_cliente"];

//Imprimo lo que ejecutaran las sentencias para ver si hay errores
echo $ssql;
echo "<br />";
//Ya lo he verificado y lo elimino o lo comento para que no salga.

if(mysql_query($ssql)){
echo "Cliente actualizado con éxito";
}else{
echo "Error al insertar!!!!";
}

//Importante!! Cerrar la conexión al terminar el script
mysql_close($conexion);
?>
<br />
<a href="update-con-seleccion-cliente.php">Cancelar y seleccionar otro cliente</a>

Lo único diferente que tengo con el vídeo es que mi tabla se llama "clientes", pero supongo que se podrá llamar como sea.

ezequie...
Felicidades!!!
26/10/2011
Excelente video tutorial, me ha sido de mucha utilidad ya que apenas empiezo a entrar a esto del php muchas gracias por compartir tus conocimientos.!!!!!

Salduos!!!

heman90
Correcion a otto1303
21/11/2011
Otto, esto es lo que vos pusiste en tu pagina donde actualiza la base de datos.

$ssql = "UPDATE clientes set ";
$ssql .= "nombre='" . $_POST["nombre"] . "', ";
$ssql .= "direccion='" . $_POST["direccion"] . "', ";
$ssql .= "cif='" . $_POST["cif"] . "', ";
$ssql .= "comentarios='" . $_POST["comentarios"] . "', ";
$ssql .= "where id_cliente=" . $_POST["id_cliente"];


El problema esta en la linea que dice:
$ssql .= "comentarios='" . $_POST["comentarios"] . "', ";


Pusiste una coma al final que no va. Porque la sintaxis del update seria:

mysql_query("update nombra_tabla set campo1='valor1', campoN='valorN' where campoX='valorX' ");


Y en la tuya quedaria con mas campos a modificar, pero entre el ultimo campo='valor' y el WHERE te quedaria una COMA. Me explico? Tu linea de comentarios tendria que ser asi:

$ssql .= "comentarios='" . $_POST["comentarios"] . "' ";

Fijate que le saque la ultima coma que le pusiste, ya que entre los campo/valor a agregar los separas con comas, pero el ultimo campo/valor y el WHERE no va nada.
Me parece que ese es tu error. No pude ver la imagen que subiste al principio. Si no se arregla con el cambio que te dije, copia y pega el error que te da y veo si te puedo ayudar. Soy novato pero bastante estructurado, por eso lo vi! XD
avisame.


EXCELENTES LOS VIDEOTUTORIALES Y LOS MANUALES. LA ROMPEN

Manuales relacionados
Categorias relacionadas
El autor
Últimas noticias
Donaciones
Si piensas que te hemos ayudado y merecemos tu apoyo económico...