Este lo hice hace ya un poco de tiempo, cuando estaba comenzando, asi que ahi les va un vil CopyPaste, nisiquiera un review, es el mismo exactamente (Falta de tiempo y eso) XD El objetivo de este ejemplo no es hacer una agenda con todas las posibles funcionalidades, sino mas bien mostrar las operaciones basicas [...]
Este lo hice hace ya un poco de tiempo, cuando estaba comenzando, asi que ahi les va un vil CopyPaste, nisiquiera un review, es el mismo exactamente (Falta de tiempo y eso) XD
El objetivo de este ejemplo no es hacer una agenda con todas las posibles funcionalidades, sino mas bien mostrar las operaciones basicas de una BD en MySQL con PHP. Tampoco pretende ser una guia definitiva, sino mas bien una guia de orientacion para principiantes, por lo que gran parte de lo aqui presentado puede y debe ser optimizado por el lector. Este tutorial requiere tener creada una BD de nombre “agenda”;, y dentro de ella una tabla llamada “contactos”; con los campos: ID[Extra: auto_increment], nombre, email, telefono.
Nota:Aún cuando este tutorial esta pensado para novatos, te aconsejo leeas el Tutorial basico de Base de Datos y Como crear bases de datos mysql desde el cpanel.
Las aclaraciones al igual que los comentarios del autor irán entre corchetes [Aclaración/ComentarioAutor]
Si no pudiste crear la BD estas son las consultas SQL necesarias, solo introducelas en la pestaña SQL o directamente a la consola de SQL
Para crear la BD:
CREATE DATABASE `agenda`; /*Para crear la tabla:*/ CREATE TABLE `contactos` ( `ID` INT( 2 ) NOT NULL AUTO_INCREMENT , `nombre` MEDIUMTEXT NOT NULL , `email` MEDIUMTEXT NOT NULL , `telefono` MEDIUMTEXT NOT NULL , PRIMARY KEY ( `ID` ) ) TYPE = MYISAM COMMENT = 'Tabla para gestionar los datos de los contactos de mi agenda';
Documentación:
- Formulario para agregar un contacto:
- Cajas de texto: nombre,email y telefono.
- Boton enviar.
- Cajas de texto: nombre, email y telefono
- Boton actualizar.
- Conectar.php: Encargado de hacer la autentificación y conectarse a la Base de Datos
- AgregarContacto.php: Sript que recibe el nombre, email y telefono de nuestro contacto, para despues agregarlo a la BD
- BuscarContacto.php: Busca en la BD y muestra las coincidencias con la palabra buscada.
- MuestraActualizaDatos.php: Recibe la ID del contacto, muestra sus datos y actualiza los datos en la BD
- EliminaContacto.php: Recibe la ID del contacto y lo elimina de la BD
Empezaremos por hacer un sencillo formulario para agregar contactos, esto solo es el lado HTML:
<form name="form1" method="post" action="AgregarContacto.php"><br /> Nombre: <input type="text" name="nombre"/><br /> e-mail: <input type="text" name="email"/><br /> telefono: <input type="text" name="telefono"/><br /> <input type="submit" name="Submit" value="Enviar"/><br /> </form>
Esto solo es un simple formulario, que envia las variables por el metodo post [method="post"] al archivo AgregarContacto.php [action="AgregarContacto.php"].
Ahora viene la parte donde PHP entra en escena, asi que empezaremos por el script que nos conecta a la BD.
Conectar.php.
< ?php <br /> function Conectar() <br /> { <br /> //Establecemos una conexión al servidor, especificando el servidor al que queremos conectarnos[generalmente "localhost"] al igual que un usuario y contraseña.<br /> if (!($link= mysql_connect ( "tuServidor" , "tuUsuario" , "tuPassword" )))<br /> { <br /> echo "Error de conexion a la BD, verifique que el usuario y contraseña que proporcionó sean correctos."; <br /> exit ();//Si la conexión fue fallida, terminamos de ejecutar el script. Es una especie de break para el script. <br /> } <br /> return $link; //Regresamos la ID de la conexion, en caso de ser fallida esta linea no llega a ejecutarse.<br /> } <br /> ?>
AgregarContacto.php
<?php include("Conectar.php");//Importamos el script que hace la conexión if($conexion=Conectar())//Nos conectamos, $conexion guarda la ID de conexion.. { mysql_select_db("agenda",$conexion);//mysql_select_db nos permite seleccionar una BD previamente creada, su primer parametro es el nombre de la BD y el segundo la ID de la conexion. //Guardamos en $sql las sentencias SQL,con las cuales insertamos en la tabla "contactos" los datos nombre, email, telefono. $sql="INSERT INTO `contactos` (`ID`,`nombre`,`email`,`telefono`) VALUES ('','$nombre','$email','telefono');"; if(mysql_query($sql,$conexion))//con mysql_query enviamos una consulta SQL a la MySQL. El primer parametro es la consulta SQL[las guardamos en el string $sql] y el segundo, la ID de la conexion. { //Mostramos los datos que vamos a actualizar en pantalla echo "<p><strong>Datos que se actualizaron en la BD</strong></p>\n"; echo "<p> Nombre: ".$nombre."</p><p>email: ".$email."</p><p>Teléfono: ".$telefono."</p>\n"; } else {echo "Problemas al guardar los datos";}//Puede que la tabla o algun campo que pusiste en la sentencia SQL[string $sql] no exista en la BD. Reviza tu String $sql } else{echo "Problemas al conectarse a la BD";} ?>
Al principio del tutorial se te pidio que previamente crearas la BD con las especificaciones que el mismo requeria, una de ellas es que el campo ID tuviera como extra “auto_increment”. Cuando creaste la tabla te pidio las propiedades que se le asignarian a cada campo, si lo creaste desde phpMyAdmin, la propiedad extra auto_increment se encuentra al final del extremo derecho de la pagina. Por si acaso dejo un screen:

BuscarContacto.php
<html> <head> <title>Busqueda por nombre del contacto'')//Verificamos que el que el campo nombre no este vacio {<br /> $tabla="contactos"; $campo="nombre";<br /> $sql=mysql_select_db("agenda",$conexion);//Seleccionamos la BD agenda<br /> //Selecionamos todos los registros de la tabla contactos, que contengan el nombre que estamos buscando["%" es un comodin, es como el "*" al hacer busquedas de archivos en el PC] y le pedimos que las coincidencias nos las ordene segun el valor de la ID de cada contacto["ORDER BY"].<br /> $sql="SELECT * FROM $tabla WHERE $campo LIKE '%$buscado%' ORDER BY $campo";<br /> $resultado=mysql_query($sql,$conexion);<br /> if($fila=mysql_fetch_array($resultado))//Si se encontró alguna coincidencia......<br /> {<br /> echo "<table border='1'>";//...pues mostramos los resultados en una tabla<br /> echo "<tr><td>ID</td><td>Nombre</td><td>e-mail</td><td>Teléfono</td></tr>";<br /> <br /> do {<br /> echo "<tr>";<br /> echo "<td align='center'>".$fila["ID"]."</td>";<br /> //En el nombre, insertamos un hipervinculo a MustraDatosActualiza.php al cual le pasamos todos los parametros en la url.[para fines educativos esto sirve ;) ]<br /> echo "<td><a href='MuestraActualizaDatos.php?ID=".$fila["ID"]."&nombre=".$fila["nombre"]."&telefono=".$fila["telefono"]."&email=".$fila["email"]."'>".$fila["nombre"]."</a></td>\n";<br /> echo "\t<td>".$fila["telefono"]."</td>";<br /> echo "\t<td>".$fila["email"]."</td>";<br /> echo "</tr>";<br /> }while($fila = mysql_fetch_array($resultado)); //Mientras exista un resultado que mostrar<br /> } <br /> }else {echo "Porfavor introduce un nombre a buscar";}<br /> }<br /> }<br /> else{echo "Problemas al conectarse a la BD";}<br /> }else//quiere decir que no se ah realizado ninguna busqueda, porque no se ah recibido el valor de $ValidarPHP con el metodo post <br /> {echo "¿cual es el nombre del contacto que quieres buscar?";} <p>?></p>
Para fines practicos se inserto codigo HTML en el php, para no tener que enviar los datos a otro archivo php. Esto gracias a que tenemos un cuadro de texto oculto, al cual le asignamos un valor[<input n ame="ValidarPHP" type="hidden" value="1">], y solo entraremos a ejecutar el script si se recibio el valor “1″ correspondiente al asignado en el formulario. Tambien hay que recordar que se inserta un hiperviculo mediante el cual se le envian los datos del registro al archivo MuestraActualizaDatos.php para su posterior actualizacion.
MuestraActualizaDatos.php
< ?php<br /> <br /> echo "<html><br /><head><title>Actualizando datos</title></head><body><h3>Datos a actualizar de $nombre: </h3><form name='DatosCliente' method='post' action='MuestraActualizaDatos.php'><input name='ID' type='hidden' value='" . $ID."'/><input name='Evaluador' type='hidden' value='1'/><p><textarea name='nombre' id='nombre'>".$nombre."</textarea></p><p><textarea name='email' id='email'>".$email."</textarea></p><p><textarea name='telefono' id='telefono'>".$telefono."</textarea></p><input type='submit' name='submit' value='Actualizar'/></form></body>";<br /> if($Evaluador)<br /> {<br /> include("Conectar.php");//Importamos el script que hace la conexión<br /> if($conexion=Conectar())//Nos conectamos, $conexion guarda la ID de conexion..<br /> {<br /> if($sql=mysql_select_db("agenda",$conexion))<br /> {<br /> $sql="UPDATE contactos SET nombre='$nombre',telefono='$telefono',email='email'WHERE ID=$ID";<br /> $resultado=mysql_query($sql,$conexion);//Hacemos la consulta para actualizar los datos<br /> if($resultado)<br /> {echo "<p>Datos del cliente actualizados.</p>";}<br /> else<br /> {echo "Los datos del cliente no fueron actualizados, problemas con la conexión a la BD<p></p>";}<br /> }else {echo "Problemas al seleccionar la tabla";}<br /> }else {echo "Problemas al conectarse a la BD";}<br /> //Liga para regresar a la pagina anterior[Los resultados] || Eliminar el contacto || Buscar otro contacto <br /> }else{echo "Modifica los campos necesarios para actualizar";}<br /> echo "<p><a href='javascript:history.back()'>Regresar</a> || <a href=EliminaContacto.php?ID=".$ID.">Eliminar Contacto</a>||<a href='BuscaContacto.php'>Buscar otro contacto</a></p>";<br /> ?>
Al igual que en formulario de buscar, se agrego una caja de texto invisible, para tomarlo como bandera y decidir si ejecutar la busqueda o esperar a que el usuario actualize
EliminaContacto.php
< ?php include("Conectar.php");//Importamos el script que hace la conexión if($conexion=Conectar())//Nos conectamos, $conexion guarda la ID de conexion.. { mysql_select_db("agenda",$conexion); $sql="DELETE FROM contactos WHERE ID=$ID"; $resultado=mysql_query($sql,$conexion); if($resultado) {echo "Registro $ID eliminado correctamente";} else {echo "Problemas al eliminar";} } else{echo "Problemas al conectar a la BD";} ?>
Para este script solo era necesario enviar la pura ID, tambien se pudo enviar el nombre y personalizar un poco mas la eliminacion. Si se desea conservar los datos, pero solo darlos de baja; una buena solucion es agregar un campo mas a la tabla en el cual se indica el estado del registro[Activo=1/Inactivo=0]
Tambien esta disponible una version lista para imprimir: aqui
No related posts.
Related posts brought to you by Yet Another Related Posts Plugin.

















12 Comentarios
Es cosa mía, o te has colado en el copia pega de los dos primeras archivos .php
Son identicos!!!
Cachis, con lo bien que iba
oye disculpa tengo dudas en lsa secuencia insert into, os campos debia declararlos como text o como char,
$sql=”INSERT INTO `contactos` (`ID`,`nombre`,`email`,`telefono`) VALUES (‘’,’$nombre’,’$email’,’telefono’);”;
ese punto y coma antes de las comillas dobles de cierre deberia de existir? en en values por que aparece las comillas simples sin nada las que pertenecen al ID.
Muchas gracias por tu ayuda y por tu colaboración
he armado todo de nuevo llegue hasta la captura de la información, aumentado algunas cositas
paara una aplicación practica pero……………. NO PASO
DE………. {echo “Los datos del cliente no fueron actualizados, problemas con la conexión a la BD”;}
REVISE TODO NO SE ENCUENTRO EL ERROR
AGRADECERE CUALQUIER COLABORACIÓN
GRACIAS
Actualizando datos
Registro de: $ID
Apellidos / Fecha de Nacimiento:
".$nombre."
".$apellido."
".$nacido."
Numero de Registro CAULP / Ultima Cuota CANCELADA
".$caulp."
".$cuotas."
Domicilio / Macrodistrito-Distrito-OTB:
".$dir."
".$zona."
E-mail / Teléfono / Célular :
".$email."
".$telefono."
".$celular."
Organización en la que trabaja / Nombre de la unidad /Cargo:
".$empresa."
".$eunidad."
".$ecargo."
Teléfonos / Dirección / Zona / Ciudad:
".$etelefono."
".$edir."
".$ezona."
".$eciudad."
";
if($Evaluador)
{
include("conectar.php");//Importamos el script que hace la conexión
if($conexion=Conectar())//Nos conectamos, $conexion guarda la ID de conexion..
{
if(mysql_select_db("etica",$conexion))
{
$sql="UPDATE contactos SET
nombre='$nombre',
apellido='$apellido',
nacido='$nacido',
ci='$ci',
de='$de',
caulp='$caulp',
cuotas='$cuotas',
dir='$dir',
zona='$zona',
email='$email',
telefono='$telefono'
celular='$celular'
empresa='$empresa'
edir='$edir'
ezona='$ezona'
eciudad='$eciudad'
etelefono='$etelefono'
eunidad='$eunidad'
ecargo='$ecargo'
WHERE ID=$ID LIMIT 1"; // where caompo definico
$resultado=mysql_query($sql,$conexion);
//Hacemos la consulta para actualizar los datos
if($resultado)
{echo "Datos del cliente actualizados.\n";}
else
{echo "Los datos del cliente no fueron actualizados, problemas con la conexión a la BD";}
}else {echo "Problemas al seleccionar la tabla";}
}else {echo "Problemas al conectarse a la BD";}
//Liga para regresar a la pagina anterior[Los resultados] || Eliminar el contacto || Buscar otro contacto
}else{echo "Modifica los campos necesarios para actualizar";}
echo "||Regresar || Eliminar el Registro||Buscar otra vez||Registro Todo de Nuevo||";
?>
Alguien me puede decir como como declaro variables en php, y ademas como identificar tipo de datos, como notaran no se nada de esto pero necesito saber eso, ya uqe tengo que hacer una agenda en este leguaje de programacion, y no tengo idea.
tengo un problema con Conectar.Php para Minichat me podrias ayudar
oye no entiendo muy bien la parte decodigo de
BuscarContacto.php
esta parte>
php]
Busqueda por nombre del contacto”)//Verificamos que el que el campo nombre no este vacio
{
el tag …….no se cierra?
Si se cierra, es problema con el theme Actual de WordPress.
Gracias.
Buen tutorial, pero pudiste a ver puesto los archivos para descargar en un archivo .rar, revisando el código, si copias y pegas te topas con un mundo de errores y no veo ni por donde que alguien de una solución,
espero subas los archivos, ayudarias un poco mas,…
@cooosmos: Gracias por tu comentario, en cuanto pueda los subo, ahora ando un poco corto de tiempo; pero si tienes algun problema no dudes en contactarme para ayudarte.
Antetodo gracias por tu ayuda.
Estoy intentando montar la agenda, pero en la parte:
BuscarContacto.php
[php]
Busqueda por nombre del contacto”)//Verificamos que el que el campo nombre no este vacio
{
$tabla=”contactos”; $campo=”nombre”;
Algo no va bien debe faltar algo de código
Podrías colgarlo.
Gracias
necesidad de comprobar:)
Oye ayudame hacer una agenda porfabor dame unos tips son las 5 am no e dormido ya ni leei bien tu post ayudame porfa