Lo prometido es deuda, por eso aquí les traigo otro ejemplo de como hacer cosas elementales, en este caso, actualizar registros guardados en una tabla de nuestra base de datos MySQL, usando PHP.
Para ello usaremos una sencilla tabla de ejemplo, un par de archivos php: mostrar-registros.php y actualizar.php.
NOTA: Para no complicar mucho esto, la tabla MySQL y el archivo mostrar-registros.php son exactamente iguales a los que usamos en el ejemplo de borrar los registros, aunque con una mínima diferencia que veremos a continuación.
Mostrar los registros:
El único cambio en este archivo es que agregaremos un vinculo que nos servirá para pasar como variable el ID del registro a actualizar a la pagina que se encargara de hacer el trabajo (actualizar.php).
<?php
// solo agregamos una linea
// al bucle while
// quedaria asi
while($row = mysql_fetch_array($sql)){
echo $row['usuarioNombre']." - ".$row['usuarioEmail'].
" - <a href='eliminar.php?id=$row[usuario_ID]'>Eliminar</a> | <a href='actualizar.php?id=$row[usuario_ID]'>Actualizar</a>\n";
}
?>
Hablando en buen cubano, ya estamos listos para ir al pollo del arroz con pollo :P
Actualizando los registros
Como pudimos ver, en la linea que hemos agregado a nuestro archivo mostrar-registros.php, lo que hacemos es pasar vía $_GET el ID del registro con el que vamos a trabajar al archivo actualizar.php. Nos apoyaremos en un formulario HTML para ejecutar la consulta UPDATE, pero primero tenemos que recoger los datos que vamos a actualizar usando otro consulta SELECT. Bueno, al pollo.
<?php
/** conexion ***************************/
// conectamos a la base de datos
$link = mysql_connect('localhost', 'root', '');
if(!$link) {
die("Error al intentar conectar: ".mysql_error());
}
// seleccionamos la base de datos
$db_link = mysql_select_db('base-de-datos', $link);
if(!$db_link) {
die("Error al intentar seleccionar la base de datos". mysql_error());
}
/** fin conexion ************************/
// recogemos el ID
// del registro a actualizar
if(isset($_GET['id'])){
$id = $_GET['id'];
// hacemos una consulta
// para mostrar los datos
$sql = mysql_query("SELECT * FROM usuarios
WHERE usuario_ID = $id", $link)
or die(mysql_error());
$row = mysql_fetch_array($sql);
// advertimos
$mensaje = "Actualizar los datos del usuario <b>$row[usuarioNombre]</b>";
}
// comprobamos si
// ha sido enviado el formulario
if(isset($_POST['actualizar']) && $_POST['actualizar'] == 'Actualizar'){
// comprobamos que no lleguen campos vacios
if(!empty($_POST['usuarioNombre']) && !empty($_POST['usuarioEmail']) && !empty($_POST['usuarioDNI'])){
// creamos las variables
// que vamos a usar en la consulta UPDATE
// y le asignamos sus valores
$usuario_ID = $_POST['usuario_ID'];
$usuarioNombre = $_POST['usuarioNombre'];
$usuarioEmail = $_POST['usuarioEmail'];
$usuarioDNI = $_POST['usuarioDNI'];
// la consulta UPDATE
$sqlUpdate = mysql_query("UPDATE usuarios
SET usuarioNombre = '$usuarioNombre',
usuarioEmail = '$usuarioEmail',
usuarioDNI = '$usuarioDNI'
WHERE usuario_ID = '$usuario_ID'", $link)
or die(mysql_error());
echo "Registro actualizado correctamente";
}else{
echo "debe llenar todos los campos";
}
}else{
// mostramos el mensaje
echo "<p>".$mensaje."</p>";
?>
<!--
el formulario.
los values de los campos
son los valores que optenemos
de la consulta SELECT
-->
<form name="actualizar-registro" method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
Nombre: <input type="text" name="usuarioNombre" value="<?php echo $row['usuarioNombre']; ?>" /><br />
E-mail: <input type="text" name="usuarioEmail" value="<?php echo $row['usuarioEmail']; ?>" /><br />
DNI: <input type="text" name="usuarioDNI" value="<?php echo $row['usuarioDNI']; ?>" /><br />
<input type="hidden" name="usuario_ID" value="<?php echo $row['usuario_ID']; ?>" />
<input type="submit" name="actualizar" value="Actualizar" />
</form>
<?php } ?>
NOTA: Nótese que el ultimo else cierra debajo del formulario, la función que tiene es esconder el mismo, una vez enviado ;)
Conclusiones:
Como siempre digo, espero que este y los demás ejemplos sirvan de utilidad a los que se inician, que es a quienes van dirigidos. Dada la sencillez de los mismos, esta claro que a estos les faltan algunos detalles que ustedes irán descubriendo a medida que avancen por este camino, interminable además, que es la programación.
NOTA: Recuerda que en el ejemplo de como borrar los registros están la tabla MySQL y el archivo mostrar-registros.php que sirven para este que estas leyendo ahora.
Saludos y Suerte
Te agradezco de nuevo
me sirvieron mucho tus posts
:)
Hola! he implementado este UPDATE en tu Sistema de Noticias pero me aloja el siguiente error:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ” at line 1
La version que tengo en el server es 5.0.37 que sera?
@etzekiel lo que te está diciendo es que tienes un error en la linia 1 de la consulta… debe ser aqui: UPDATE usuarios… lo que no puedes hacer es copiar y pegar, pues WP modifica las comillas y te puede dar un error.
Saludos
Hola otra vez, si cambie las comillas, lo que me paso es que me perdi en el còdigo pero lo he resuelto muchas gracias… he visto que posteaste tu tutorial en maestros del web… ahì RODRIASTU te hizo una pregunta de como agregarle una “fotico” a las noticias lo que le respondiste que con FCK-editor… ahora mi pregunta: como?. He aprendido como subir imagenes a una carpeta y gracias a ti a subir informaciòn, pero aun no logro subir imagenes y texto a la par (no creo que sea imposible pero sin duda me esta costando). Ahora, abusando de tu cordialidad sera posible que me aconsejes que leer? algùn tutorial que creas que me sirva para implementar este editor? bueno, he logrado que funcione como text area pero fotoos? aùn no se como hacerle… bueno, muchas gracias, de todas formas sigo en la batalla. un saludo!
Hola @etzekiel, te dejo un link aquí que te puede resultar explicativo:
http://www.forosdelweb.com/2321638-post24.html
Oye pase trabajo para encontrarlo, jejeje, espero te ayude.
Saludos y Suerte
Efectivamente el script es bueno en lo que hace, solo hay que cambiar las comillas.
Es un claro ejemplo de como usar el UPDATE.
Uno de los mejor explicados en toda la web!! Muchas gracias. Con gente como tu, los demas podemos aprender!
Hola man eres un master muchas gracias por este gran aporte te felicito !!
Muchas gracias amigo!
es necesario llenar todos los campos para que se realice la actualización? Ya repase miles de veces mi php pero aun asi no me deja actualizar yncluso me base en el tuyo y ya no se que hacer
@Uriel Albarrán Oropeza en el ejemplo que tenemos aquí si, hay que llenar todos los campos, osea, si vas a actualizar un registro, no debes dejar el campo nombre vacío, entiendes?
Si tienes otros campos que se pudieran quedar sin llenar, como puede ser teléfono móvil por ejemplo, entonces no lo pasas en la línea que dice:
if(!empty($_POST['usuarioNombre']) && !empty($_POST['usuarioEmail']) …){
…
}
Inténtalo así a ver si te da resultado
Saludos
Te lo agradezco me ha servido mucho felicitaciones por el blog
que onda tengo un problemilla, lo que pasa que cuando le doy al boton actualizar me sale el mensaje: debe de llenar todos los campos, y los estoy llenando todos, no sabes a que se deba?
Muchas gracias me saco de un apuro jejeje
que ay nop se como actualizar registros en my sql???? xfavor algun chico que me ayudeeehh tengo un examen mañana y no se nada sobre eso
Buenas noches
Soy estudiante de informatica y tengo una inquietud, te agradeceria mucho si me colaboras.
Estoy tratando de hacer un grid o rejilla para hacer un programa de facturacion que capture codigo, nombre,cantidad y valor n veces . El desarrollo lo estoy haciendo en html y php pero no se como hacer el grid o rejilla y mucho menos como pasar los datos del grid a la base de datos.
He buscado en libros y en internet durante meses pero a sido imposible. No he encontrado un ejemplo a partir del cual empezar a trabajar. He escuchado hablar de AJAX y de otras soluciones pero no se como funciona ni como integrarlo con php y html.
Te agradeceria mucho tu colaboracion.
Gracias
Antonio Ramirez
utilice tu tutorial es muy util pero tengo un problema no me actualiza mi error es el sigiente Algo está equivocado en su sintax cerca ‘WHERE id_solicitud = ’2” donde la id_solicidud es el parametro que se envia en el link actualizar ahi otra forma de enviar ese parametro
hola es que tengo un problema con la sentencia
WHERE usuario_ID = $id", $link)me dice que algo esta mal no si la comparacion de dos string se haga asi ,
que tengo que agrgarle para qeru funcione muchas gracias
aja supr sto
Que tal otra ves por aqui jejej muy bueno el post pero tengo un problemilla que no logro resolever he acomodado tu modo de actualizar los datos de mi bd pero me marac unas notificaciones:
Notice: Undefined index: id in C:\Archivos de programa\EasyPHP3.1\www\ingles\es\admin\modificar.php on line 40
Notice: Undefined index: no_studentst in C:\Archivos de programa\EasyPHP3.1\www\ingles\es\admin\modificar.php on line 41
Notice: Undefined index: break_time in C:\Archivos de programa\EasyPHP3.1\www\ingles\es\admin\modificar.php on line 43
Registro actualizado correctamente
no se a que se deba haber si me puedes ayudar y gracias!!!
hola man. antes que nada, gracias por tus aportes.
soy novato en esto de php.
todo lo explicado aki me salio perfecto.
aprebechando tu noblesa, me gustaria saber como agregar registros.(ususarios,etc)
si pudieras postearlo o mandarmelo a mi correo, te lo agradeceria muchisimo.
bye suerte en todo man. mil gracias.
Hola, la verdad es que aun no he probado tus aportes , pero lo haré.
El mero hecho de compartir conocimientos rogertm, por supuesto que ya es de agradecer.
En fin, GRACIAS! por compartir, saber, tiempo y dedicación.
P.D. Aunque solo es mi opinión, y pretendo comunicarla sin ofender ni molestar, me parece que hay millones de imagenes mas agradables que [administrator.jpg], lo dicho, solo es una opinión.
Saludos desde Tenerife, la isla picuda.
Muchas Gracias !!! me ayudo mucho para mi proyecto de BD
amigoo! en verdad muchas gracias,, creo q busque en todas partes y nada :P y aqui fue mi salvacion, funciono al 100%.
Gracias xD
el mejor post que encontre de este ejemplo muy buena brother muy buena chevere justo lo que necesitaba
gracias me funciono perfercatamente, el eliminar me arroja un mensaje pero seguro que lo soluciono !!! gracias
MUY BUEN APORTE TODO TE AGRADESCO POR COLABORAR CON TODAS AQUELLAS PERSONAS QUE NOS ESTAMOS INICIANDO EN LA PROGRAMACIÓN PERO TENGO UNA PREGUNTA COMO HAGO PARA QUE UNE VEZ QUE ELIMINE O ACTUALICE RE REDIRECIONE A LA PAGINA MOSTRAR-REGISTROS.PHP GRACIAS DE ANTEMANO POR SU COLABORACION
Hola esta muy bueno tu tutorial, quisiera saber si podía hacerse por ejemplo cuando en un campo de texto le indico algún numero de identificación y me aparezcan los demás datos muy parecido al que explicaste aqui, no se si me entiendes la idea.!!!!
hola, gracias por el post, era precisamente lo que andaba buscando dias atras y nada que lo encontraba… muchas gracias!!!
tengo este mismo problemilla:
que onda tengo un problemilla, lo que pasa que cuando le doy al boton actualizar me sale el mensaje: debe de llenar todos los campos, y los estoy llenando todos, no sabes a que se deba?
Muchas gracias por este aporte, ya no sabia donde buscar un ejemplo q funcione
Verdaderamente eres un genio!!!!!!…..
Yo que antes sabia web hablo de hace 4 años, casi el mismo tiempo del post, me pase mas de 12 horas queriendo armar un grid y en base al registro que selecciones actualizas datos.
De verdad gracias te debo una!!!!
POr fin podre graduarme je je je.
El mejor manual para actualizar datos que he leido en toda la web hasta ahora…
Muchas grácias por vuestro tiempo! De verdad, es un gusto poder encontrar información tan buena en internet.
Un saludo!
Excelente tutorial, me sirvio muchisimo. Solo tengo una consulta, es posible que actualicemos o modifiquemos solo algunos registros de la tabla, por ejemplo yo tengo un campo donde guardo la ruta de una imagen, le asigno en VALUE el valor de ese campo en la tabla, osea la ruta, pero si lo dejo tal y como esta, no me permite actualizar puesto que aparenta no tener la imagen fisica para subirla y actualizar el registro, no sé si me comprendes y si tendrás alguna solución para un problemilla como este?
Desde ya gracias!
F.