¡Hola de nuevo! Me imagino que habrán estado estudiando casi todo lo que estuvimos viendo hasta aquÃ, ya que en la clase de hoy vamos a dar una vueltita por casi todos los temas.
Lo que vamos a hacer es continuar con nuestro ejemplo de la tabla de noticias, vamos a traer la noticia que queremos editar y para ello usaremos una variable “get” con la ID de la noticia. Luego con esa ID, haremos una consulta para traer todos los datos que incluiremos en un formulario y a su vez enviaremos las variables “post” con los nuevos datos para editarla. ¿Sencillo, no?
Editando una noticia
Supongamos que el archivo nuestro es editar-noticias.php, lo que vamos a hacer es llamarlo de la siguiente manera:
http://direccion.com/editar.php?idNoticia=23
Entonces en nuestro archivo (previo nos conectamos con la base de datos como siempre) vamos a tener un if para ver si existe una variable get idNoticia, en caso de que exista hacemos la consulta para traer los datos completos
if ( !empty($_GET['idNoticia']) ) {
// traemos la noticia
$query = “SELECT idNoticia,titulo,cuerpo,estado FROM `noticias` WHERE idNoticia = {$_GET['idNoticia']} limit 1″;
$response = mysql_query($query, $conn);
$noticia = mysql_fetch_assoc($response);
}
Y luego, una vez que tenemos nuestra variable noticia con todos los datos de la base de datos, vamos a completar el formulario con los datos originales de la siguiente manera:
<h1>Agregar Nueva Noticia</h1>
<form action=”editar-noticias.php” method=”post”>
<label for=”titulo”>TÃtulo</label><br />
<input id=”titulo” name=”titulo” value=”<? echo $noticia['titulo']; ?> ” type=”text” /><br /><br />
<label for=”cuerpo”>Cuerpo</label><br />
<textarea id=”cuerpo” name=”cuerpo” rows=”5″ cols=”50″><? echo $noticia['cuerpo']; ?></textarea><br /><br />
<label for=”estado”>Estado</label>
<select id=”estado” name=”estado”>
<option value=”publicado” <? if ( $noticia['estado'] == ‘publicado’ ) echo ’selected=”selected”‘; ?>>Publicado</option>
<option value=”borrado” <? if ( $noticia['estado'] == ‘borrado’ ) echo ’selected=”selected”‘; ?>>Borrado</option>
</select><br /><br />
<button type=”submit” name=”submit” value=”1″>Editar Noticia</button>
<input name=”idNoticia” value=”<? echo $noticia['idNoticia']; ?>” type=”hidden” />
</form>
Como verán hay dos cambios importantes con respecto al formulario de ingreso de noticias, en este completamos el atributo value con los datos originales. Y el otro cambio es que agregamos un nuevo campo al formulario de tipo hidden, o sea, oculto con el valor de la ID de la noticia que estamos editando.
Este formulario lo enviaremos a un archivo que contendrá el script, puede ser este mismo archivo, de la misma forma que lo hicismos al ingresar una noticia.
Si hiciéramos eso, tendrÃamos que tener entonces (antes de hacer nuestra consulta para traer la noticia) otro if para saber si recibimos las variables post para editarla.
if ( !empty($_POST['submit']) ) {
$query = “UPDATE `noticias` set titulo = ‘{$_POST['titulo']}’, set cuerpo = ‘{$_POST['cuerpo']}’, estado = ‘{$_POST['estado']}’ WHERE idNoticia = {$_POST['idNoticia']} LIMIT 1″;
$response = mysql_query($query, $conn);
}
Nuestro archivo terminado queda de la siguiente manera:
<?
// datos de configuracion
$ip = ‘localhost’;
$usuario = ‘usuario’;
$password = ‘password’;
$db_name = ‘baseDeDatos’;
// conectamos con la db
$conn = mysql_pconnect($ip,$usuario,$password) or die();
// seleccionamos la base de datos
$huboerror = mysql_select_db($db_name,$conn) or die();
// si se envia el formulario de edicion
if ( !empty($_POST['submit']) ) {
$query = “UPDATE `noticias` set titulo = ‘{$_POST['titulo']}’, set cuerpo = ‘{$_POST['cuerpo']}’, estado = ‘{$_POST['estado']}’ WHERE idNoticia = {$_POST['idNoticia']} LIMIT 1″;
$response = mysql_query($query, $conn);
}
// si tenemos id de noticia
if ( !empty($_GET['idNoticia']) ) {
// traemos la noticia
$query = “SELECT idNoticia,titulo,cuerpo,estado FROM `noticias` WHERE idNoticia = {$_GET['idNoticia']} limit 1″;
$response = mysql_query($query, $conn);
$noticia = mysql_fetch_assoc($response);
}
?>
<html>
<head>
<title>Formulario de Edición de Noticias</title>
</head>
<body>
<h1>Agregar Nueva Noticia</h1>
<form action=”editar-noticias.php” method=”post”>
<label for=”titulo”>Titulo</label><br />
<input id=”titulo” name=”titulo” value=”<? echo $noticia['titulo']; ?> ” type=”text” /><br /><br />
<label for=”cuerpo”>Cuerpo</label><br />
<textarea id=”cuerpo” name=”cuerpo” rows=”5″ cols=”50″><? echo $noticia['cuerpo']; ?></textarea><br /><br />
<label for=”estado”>Estado</label>
<select id=”estado” name=”estado”>
<option value=”publicado” <? if ( $noticia['estado'] == ‘publicado’ ) echo ’selected=”selected”‘; ?>>Publicado</option>
<option value=”borrado” <? if ( $noticia['estado'] == ‘borrado’ ) echo ’selected=”selected”‘; ?>>Borrado</option>
</select><br /><br />
<button type=”submit” name=”submit” value=”1″>Editar Noticia</button>
<input name=”idNoticia” value=”<? echo $noticia['idNoticia']; ?>” type=”hidden” />
</form>
</body>
Borrando una noticia
Para borrar una noticia lo vamos a hacer de la misma manera, utilizando una variable get que contenga la ID de la noticia que estamos borrando.
if ( !empty($_GET['idNoticia') ) {
$query = DELETE FROM `noticias` WHERE idNoticia = {$_GET['idNoticia']} LIMIT 1″;
$response = mysql_query($query, $conn);
}
Bueno, espero que les haya gustado la clase de hoy, hasta la semana que viene.
| << CLASE ANTERIOR |








Martes, 10 de Junio de 2008 a las 10.52
Deseo un software para programar en php. como lo consigo; ya que estoy recibiendo los talleres de php y no se en que editor programar aquÃ. Ahora. Adobe Dreamwaver sirve?
Gracias.
Ah, es muy interesante los talleres. Les agradezco todo.
Lunes, 11 de Agosto de 2008 a las 13.20
solo se puede actualisar con link , es decir con GET ? , con POST no se puede? como seria con POST?
Lunes, 25 de Agosto de 2008 a las 16.22
Hola!!!
he seguido este blog (desde el taller de flash y ahora en php) y está super, gracias por la aportación… estás ayudando a que me entusiasme a programar en php… actualmente juego muy poco con cold fusion
Saludos y felicidades por los talleres
Martes, 26 de Agosto de 2008 a las 11.07
Hola de nuevo, ya quedó lo del post pasado….
saludos!
Viernes, 5 de Septiembre de 2008 a las 15.10
Hola como se puede eliminar de un noticias todos los comentarios de dicha noticia mas claro cuando elimino una noticia me gustarÃa poder eliminar todo sus comentarios de dicha noticias al mismo tienpo que elimino la noticia lo cual tendrÃa que eliminar dos registros de tablas diferentes noticias y comentarios, se puede hacer con dos reconset de cada tabla por el metodo GET pasar variable de url de cada una de tablas
ejemplo eliminar.php?id_noticias=id&id_comentarios=id_delete.
Esto seria correcto para poder eliminar el registro de noticia mas todos los comentarios de dicha noticia o no.
Miércoles, 8 de Octubre de 2008 a las 15.04
Saludos.
Arriba se menciona que editar-noticia.php va a ser llamado con:
http://direccion.com/editar.php?idNoticia=23
Pregunta? desde donde
Pregunta? por qué el agregado …_idNoticia=23
Gracias
Sábado, 8 de Noviembre de 2008 a las 18.07
hola buenas me gustaria saber si se puede hacer en 3 tablas diferentes ejemplo
1-categoria
2-noticias
3-comentarios
en realidad lo que yo busco es poder eliminar ejemplo una categoria con sus correspondiente noticias y comentarios y si esto se puede hacer en tablas MyISAM
Miércoles, 3 de Diciembre de 2008 a las 18.40
sip, se puede power
Miércoles, 3 de Diciembre de 2008 a las 22.49
RUBEN te recomiendo Notepad++
Lunes, 22 de Diciembre de 2008 a las 14.06
Hola que tal!
Se me presentó un problema :s
Al escribir http://... editar-noticias.php?idNoticia=2
me tira el siguiente error:
“Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource…”
Que sucedió!? :s
Martes, 23 de Diciembre de 2008 a las 22.52
Hola Justi estoy en esta parte y puse todo el codigo como se menciona aqui en editar_noticias.php el cual lo llamo asi… http://…/editar-noticias.php?idNoticias=3 y no me sale nada. ni siquiera me sale ese error que menciona Carlos… solo aparece la pagina web en blanco y tengo en la base de datos 5 registros… no se si sera el problema porque el formulario esta en modo POST y se envia un Get… podrias revisar el código .. o en otro caso subirlo para ver que esta mal?
jeje
Ah carlos creo que el error a de ser porque en las sentencias de SQL al llamar a la tabla debe ir asi `nombre_tabla` y no asi ‘nombre_tabla’, yo pensaba que era comilla simple pero era la tilde inversa, has y veras que ya no te sale ningun error, lo mas probable es que no te salga nada como a mi
Sábado, 27 de Diciembre de 2008 a las 01.34
Hola ya solucione mi error era solo que en vez de poner el nombre de la base de datos ponia la de la tabla, tremendo lio por solo copiar y pegar jeje al final m di cuenta del error y lo solucione, y como despedida dejo el consejo de revisar los campos ya que esos errores de conexion son por eso uno se olvid siempre algo una comilla, o una letra menos o que esta demas… Revisen con calma… ok hasta pronto
Domingo, 18 de Enero de 2009 a las 16.48
No me anduvo :S
Cuando apreto editar noticia me dice que no se encuentra la web :S….
Jueves, 23 de Abril de 2009 a las 02.36
Hola que tal?
Muy bueno el taller.. acabo de encontrarlo en mi búsqueda para armar una pequeña aplicación para el registro de personas en un evento.
Tengo una pregunta con respecto de esta parte de la actualización de registros… por ejemplo, de acuerdo al procedimiento primero mandamos llamar el registro original y pasamos los datos que ya están en la tabla como los valores de los campos en el formulario. Pero por ejemplo, si tengo un campo desplegable que toma su valor de los datos de otra tabla… ¿cómo despliego su valor actual?
Viernes, 24 de Abril de 2009 a las 11.24
@antonio disculpame pero realmente no entendi cual es tu pregunta, explicame por favor que es lo que necesitas hacer y yo te digo bien si puedo cual es una buena solucion para eso.
Lunes, 8 de Junio de 2009 a las 15.49
Hola Justi
Con este taller he avanzado bastantito en php (o yo creo
). Bueno aquà mi consulta: en una primera página hago INSERT perfectamente en cuatro campos de mi tabla, y en la página siguiente necesito insertar otros 5 campos del mismo registro, entonces puse UPDATE pero no logro que se carguen los datos. He probado utilizando una variable de sesión, pero no logro mi cometido. Lo que hago es cargar esa variable con la clave (id_encuesta) que es autoincremental, pero no sé donde se pierde porque no llega a la segunda página.
Te agradecerÃa si me puedes aclarar como usar “correctamente” la variable de sesión o si puede haber una mejor solución.
Muy agradecida como siempre
Marita
Jueves, 11 de Junio de 2009 a las 11.58
@marita hola, siempre que uses sessiones te tenes que asegurar que lo primero que tengas en el script de php luego del < ? sea session_start(), ya que hay que avisarle que se va a usar sesiones. QuedarÃa algo asÃ:
Viernes, 4 de Septiembre de 2009 a las 11.10
Hola, he encontrado dos fallos en el codigo del editado de noticias.
Lo más probable es que estoy haciendo algo mal puesto que nadie lo comenta. Solo enviamos información al fichero editar-noticias.php de dos modos: por ‘GET’ o por ‘POST’, pero nunca con los dos a la vez (siguiendo el script). Ahora en el formulario utilizamos la variable “$noticia” solo definida en el apartado de recepción de información por medio del GET. Cuando enviamos la información por POST, al no entrar en el if de GET al cargar el formulario muestra error de variable no definida “$noticia”. Para solucionarlo hay dos modos: o definimos ( y cargamos) la variable “$noticia” tal y como esta definida (y cargada) en el “if” de GET, o la cargamos por fuera de ambos, aunque la primera me parece la mas correcta, puesto que ya se cargaria con la edicion ejecutada.
El segundo fallo esta en al sentencia “UPDATE”: la instruccion “SET” se coloca una sola vez al principio y luego las columnas a modificar van separadas por comas.
Espero que esto les sea de utilidad a alguien.
Muchas gracias por estos talleres.
Lunes, 7 de Septiembre de 2009 a las 13.34
@Tcaos gracias por marcar esos errores, estas en lo correcto, ahora corrijo esta clase.
Lunes, 26 de Octubre de 2009 a las 19.34
Buena tarde Justi, te felicito por el curso esta muy bueno, estoy inicando en esto de la programación web y gracias a tu taller estoy avanzando un poco.
en los ejemplos que tienes con que extencion guardas las páginas, porque las guarde como .phtml pero no me la muestra correctamente tuve que crear una con el scrip en php y otra en html ejem(enviar_noticia.html que enlaza a subir.noticias.php) y asi si me funciono, pero este codigo no me corre, podrian colocar un ejemplo de como queda la pag. en modo diseño?, asi me queda el pág.
[url=http://www.subirimagenes.com/imagen-noticia-3453592.html]Ver Imagen
Sábado, 1 de Mayo de 2010 a las 15.06
Hola Justin, por favor ayudame con el formato del botón estoy trabajando con dreamweaver, pero el valor 1 del botón en la variable submit no se envÃa, espero tu prnto ayuda, gracias
Lunes, 21 de Junio de 2010 a las 19.32
hola, por qué hay que poner http://direccion.com/editar.php?idNoticia=23 el número 23 a qué se refiere, perdonen la ignorancia.
Miércoles, 15 de Diciembre de 2010 a las 01.22
Hola justi por mas que intento actualizar la información por medio de Post no puedo hacerlo, lo único posible estar traer la información de la BD, mas no puedo actualizarla después enviar la nueva info.
PodrÃas ayudarme por favor.
Saludos!
Jueves, 13 de Enero de 2011 a las 19.48
Cuidado!. La refdacción del
http://direccion.com/editar.php?idNoticia=23 /editar.php?idNoticia=23
asÃ, sin más, sólo puede conducir a errores.
Sábado, 19 de Febrero de 2011 a las 12.18
me hubiera gustado que siguieran con el ejemplo que empezaron de la agenda.debo empezar otra vez todo.
Viernes, 8 de Abril de 2011 a las 01.07
Hola Gracias por el taller de php. esta muy bueno y eh aprendido demasiado con estas clases tan buenas
fijense q tengo un problema con la variable $noticia. no se en donde deberia de ir porq me tira el erro asi
Undefined variable: noticia
gracias ojala alguien me ayude
Jueves, 1 de Septiembre de 2011 a las 18.38
Hola justin primero que nada muchas gracias x tu taller es genial n_n, tengo un problema al momento de la ejecucion del programa me da este error en los campos: Notice: Undefined variable: noticia
podrias ayudarme a sabercual fue mi error
muchas gracias x todo
Miércoles, 7 de Septiembre de 2011 a las 23.18
Hola que tal, felicitaciones por tus lecciones, pero tengo un error y no puedo entender que pasa con la variable noticia que me dice que no esta definida; por favor una ayuda