Anda di halaman 1dari 14

10-2-2015

AGENDA
PHP-MYSQL

Salvador Campos Gil


3 ASIR

Creacin de una agenda a travs de PHP y MYSQL.


Lo primero ser crear una base de datos con mysql.
Entramos en el terminal de Ubuntu y escribimos esto:
Sudo mysql -h localhost -u root p
Create database agenda.
Create table agenda con los parmetros que le queramos dar.

Ahora que tenemos creada la base de datos, a travs de Netbeans empezaremos a


configurarla.
En primer lugar crearemos index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Agenda</title>
</head>
<style type="text/css">
.agenda {
margin:100px auto 0 auto;
width:701px;
height:468px;
}
.agenda #contenidor {
padding:25px;
width:276px;
height:428px;
}
</style>
<body>
<div class="agenda">
<div id="contenidor">

<table width="100%" height="404" border="0">


<tr>
<td height="38" colspan="3" align="center" valign="middle"><h1>Agenda
</h1></td>
</tr>
<tr>
<td colspan="3" valign="top"><center>Salvador campos<br /><br /><br />
<a href="insertaagenda.html"> Agregar contactos</a> &nbsp;
<a href="buscaagenda3.php">Buscar contactos</a>
<a href="borraagenda.php">Borrar contactos</a>
<a href="listadoagenda.php">Listado agenda</a>
<a href="modificar.php">modificar agenda</a>
</center>
</td>
</tr>
</table>
</div>
</div>
</body>
</html>
Aqu hemos creado la portada de la agenda, y le hemos aadido unos enlaces hacia las pginas
de agregar, buscar, borrar, listar y modificar.

Ahora vamos a crear insertaagenda.html para insertar los datos de las personas.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" type="text/css" href="agenda.css">
<title>Insertar nuevo contacto</title>
</head>
<body>
<h1>Alta de Contacto:</h1>
<form action="insertaagenda.php" method="post">
Nombre: <input type="text" name="nombre"/><br/><br/>
Apellidos: <input type="text" name="ap1"/> &nbsp;
<input type="text" name="ap2"/><br/><br/>
Telfono: <input type="text" name="telefono"/><br/><br/>
e-mail: <input type="text" name="email"/><br/><br/>
Direccin: <input type="text" name="direccion"/><br/><br/>
Provincia: <input type="text" name="provincia"/><br/><br/>
Fecha de Nacimiento: <input type="text" name="fecha"/><br/><br/>
<input type="submit" value="Guardar"/>
<input type="reset" value="Limpiar"/>
</form>

</body>
</html>
Hemos creado unos formularios (nombre, apellidos, teledono, email, direccin, provincia y
fecha de nacimiento.) en los cuales se les pondrn los datos y se enviaran a insertaagenda.php.

<html>
<body>
<?php
$nombre=$_POST['nombre'];
$ap1=$_POST['ap1'];
$ap2=$_POST['ap2'];
$direccion = $_POST['direccion'];
$email=$_POST['email'];
$fecha=$_POST['fecha'];
$telefono=$_POST['telefono'];
$provincia=$_POST['provincia'];
//Transformo fecha de DD-MM-YYYY a YYYY-MM-DD
$fecha = date_create_from_format('d-m-Y', $fecha);
$fechanueva = date_format($fecha, 'Y-m-d');
$link = mysql_connect("localhost", "root", "root") or die("No he podido conectar con el
servidor");
mysql_select_db("agenda",$link) or die("No he podido conectar con la BD");
$sql = "INSERT INTO agenda (nombre, apellido1, apellido2, direccion,
telefono, email, fechanacimiento, provincia) ".
"VALUES ('$nombre', '$ap1', '$ap2', '$direccion', '$telefono', '$email',
'$fechanueva','$provincia')";
$result = mysql_query($sql,$link) or die("No he podido insertar el contacto");
echo "<p>El contacto $nombre $ap1 $ap2 ha sido insertado.</p>\n";
mysql_close($link);
?>
<div align="center"><a href="index.php">Inicio</a></div>
</body>
</html>
Creamos unas variables para que sean mas cmodo poner los POST, y conectamos a nuestra
base de datos y al servidor.
A travs de INSER INTO agenda, insertaremos los datos de insertaagenda.html.

Creamos listadoagenda.php para poder ver los datos insertados.


<html>
<head>
<link rel="stylesheet" type="text/css" href="agenda.css">
</head>
<body>
<h1>Todos mis contactos</h1>
<table>
<tr>
<th>NOMBRE</th><th>DIRECCION</th><th>TELEFONO</th><th>EMAIL</th><th>DIRECCION<
/th><th>PROVINCIA</th><th>FECHA DE NACIMIENTO</th>
</tr>
<?php
// Conectar con el Servidor
$link = mysql_connect("localhost", "root", "root")
or die ("No puedo conectarme con el servidor");
// Usar la BD
mysql_select_db("agenda",$link)
or die ("No puedo abrir la BD");
// Hacer la consulta
$consulta= "SELECT * FROM agenda";
$resultado = mysql_query($consulta, $link)
or die ("No puedo ejecutar la consulta");
// Voy leyendo fila a fila
$i=0;
while ($fila = mysql_fetch_array($resultado)){
if ($i%2==0){
echo "<tr>";
}
else{
echo "<tr id='naranja'>";
}

$i++;
// Celda del Nombre completo = Nombre + Apellido1 + Apellido2
echo "<td>".$fila['nombre']." ".$fila['apellido1']." ".$fila['apellido2']."</td>";
// Celda de la direccin
echo "<td>".$fila['direccion']."</td>";
// Celda del telfono
echo "<td>".$fila['telefono']."</td>";
// Celda del email
echo "<td>".$fila['email']."</td>";
// Celda de direccion
echo "<td>".$fila['direccion']."</td>";
// Celda de la provincia
echo "<td>".$fila['provincia']."</td>";
// Celda de la fecha
echo "<td>".$fila['fechanacimiento']."</td>";
echo "</tr>\n";
}
mysql_close($link); // Cerrar la conexin
?>
<div align="center"><a href="index.php">Inicio</a></div>
</table>
</body>
</html>

Conectamos con nuestra base de datos y creamos una tabla para poder verlo ordenado de
esta manera, fila a fila.
<th>NOMBRE</th><th>DIRECCION</th><th>TELEFONO</th><th>EMAIL</th><th>DIRECCION<
/th><th>PROVINCIA</th><th>FECHA DE NACIMIENTO</th>

Vamos a crear el apartado para borrar registros borraagenda.php


<HTML>
<HEAD>
<TITLE>Borraagenda.php</TITLE>
</HEAD>
<BODY>
<div align="center">
<h1>Borrar un registro</h1>
<br>
<?php
//Conexion con la base
mysql_connect("localhost","root","root");
//seleccin de la base de datos con la que vamos a trabajar
mysql_select_db("agenda");
echo '<FORM METHOD="POST" ACTION="borraagenda2.php">Nombre<br>';
//Creamos la sentencia SQL y la ejecutamos
$sSQL="Select nombre From agenda Order By nombre";
$result=mysql_query($sSQL);
echo '<select name="nombre">';
//Mostramos los registros en forma de men desplegable
while ($row=mysql_fetch_array($result))
{echo '<option>'.$row["nombre"];}
mysql_free_result($result)
?>
</select>
<INPUT TYPE="SUBMIT" value="Borrar">
<input type='reset' value='Ordenar'/>
</FORM>
</div>
</BODY>
</HTML>

Conectamos con la base de datos y a travs de la consulta Select nombre From agenda Order
By nombre ordenamos los datos por nombre.
echo '<select name="nombre">';
while ($row=mysql_fetch_array($result))
{echo '<option>'.$row["nombre"];}
Con esos parmetro crearemos el men desplegable para poder elegir el nombre que quieras y
esto nos llevara a la pagina borraagenda2.php
<HTML>
<HEAD>
<TITLE>Borraagenda2.php</TITLE>
</HEAD>
<BODY>
<?php
$link = mysql_connect("localhost", "root", "root") or die("No he podido conectar con el
servidor");
mysql_select_db("agenda",$link) or die("No he podido conectar con la BD");

$nombre1 = $_POST['nombre'];
//Creamos la sentencia SQL y la ejecutamos
$sql="Delete From agenda Where nombre='$nombre1'";
$result = mysql_query($sql,$link) or die("No he podido borrar el contacto");
echo "<p>El contacto ha sido borrado.</p>\n";
mysql_close($link);
?>

<h1><div align="center">Registro Borrado</div></h1>


<div align="center"><a href="listadoagenda.php">Visualizar el contenido de la base</a></div>

</BODY>
</HTML>
Esta pgina ejecutara la orden de borrar a travs de la orden delete from agenda.

Buscaagenda3.php
<html>
<head><title>Bsqueda de contactos </title>
<link rel="stylesheet" type="text/css" href="agenda.css">
</head>
<body>
<?php
if (!isset($_POST['boton'])){ //Primera vez que entra
echo "
<form action='buscaagenda3.php' method='post'>
Nombre: <input type='text' name='nombre'/><br/><br/>
Apellido: <input type='text' name='apellido'/><br/><br/>
<input type='submit' name='boton' value='Buscar'/>
<input type='reset' value='Limpiar'/>
</form>
";
}
else{ //Ya haba pulsado el botn Buscar
// Leo las variables del formulario
$nombre=$_POST['nombre'];
$apellido1=$_POST['apellido'];
// Me conecto con el servidor y la base de datos
// y realizo la bsqueda
$conexion=mysql_connect("localhost","root","root")
or die("No me puedo conectar con el servidor");
mysql_select_db("agenda",$conexion)
or die("No puedo conectar con la BD");
$consulta="SELECT * FROM agenda WHERE nombre='$nombre' and
apellido1='$apellido1' ";
$resultado=mysql_query($consulta,$conexion);
// Muestro los datos resultado de la bsqueda.

// Puede ser que encuentre a 0 o ms personas, atencin a las


// distintas posibilidades
$numerofilas=mysql_num_rows($resultado);
if ($numerofilas==0){
echo "<p>No he encontrado ese contacto: $nombre $apellido1</p>";
}
else{ //Hay datos
$fila=mysql_fetch_array($resultado);
echo '
<form>
Nombre: <input type="text" value="'.$fila['nombre'].'" readonly/><br/><br/>
Apellidos: <input type="text" value="'.$fila['apellido1'].'" readonly/>
<input type="text" value="'.$fila['apellido2'].'" readonly/><br/><br/>';
echo "Direccin: <input type='text' value='".$fila['direccion']."'
readonly/><br/><br/>";
echo "email: <input type='text' value='".$fila['email']."' readonly/><br/><br/>";
echo "Provincia: <input type='text' value='".$fila['provincia']."'
readonly/><br/><br/>";
$fecha=strftime("%d/%m/%Y",strtotime($fila['fechanacimiento']));
echo "Fecha de nacimiento: <input type='text' value='$fecha' readonly/><br/><br/>";
echo "</form>\n";
}
mysql_close($conexion);
}
?>
<div align="center"><a href="index.php">Inicio</a></div>
</body>
</html>
Aqu estn tres pginas en una, pero funciona igualmente. Primero creamos dos formularios,
uno para poner el nombre y otro el apellido de la persona que busca, y al darle a enviar no
llevar a la siguiente parte donde nos mostrara los datos a treves de esta consulta
$consulta="SELECT * FROM agenda WHERE nombre='$nombre' and apellido1='$apellido1' ";
Ordenados por filas como podemos ver a continuacin.

Modificar.php
<HTML>
<HEAD>
<TITLE>modificar.php</TITLE>
</HEAD>
<BODY>
<div align="center">
<h1>Actualizar un registro</h1>
<br>
<?php
$link = mysql_connect("localhost", "root", "root") or die("No he podido conectar con el
servidor");
mysql_select_db("agenda",$link) or die("No he podido conectar con la BD");
echo '<FORM METHOD="POST" ACTION="modificar2.php">Nombre<br>';
//Creamos la sentencia SQL y la ejecutamos
$sql="Select nombre From agenda Order By nombre";
$result=mysql_query($sql,$link);
echo '<select name="nombre">';
//Generamos el menu desplegable
while ($row=mysql_fetch_array($result))
{echo '<option>'.$row["nombre"];}
?>
</select>
<br>
Telfono<br>
<form action="insertaagenda.php" method="post">
Nombre: <input type="text" name="nombre2"/><br/><br/>
Apellidos: <input type="text" name="ap1"/> &nbsp;
<input type="text" name="ap2"/><br/><br/>
Telfono: <input type="text" name="telefono"/><br/><br/>
e-mail: <input type="text" name="email"/><br/><br/>

Direccin: <input type="text" name="direccion"/><br/><br/>


Provincia: <input type="text" name="provincia"/><br/><br/>
Fecha de Nacimiento: <input type="text" name="fecha"/><br/><br/>
<INPUT TYPE="SUBMIT" value="Actualizar">
</FORM>
</div>
</BODY>
</HTML>
Esta parte tambin est en dos paginas, en la primera nos saldr un formulario para rellenar
los datos del usuario que se quiera modificar, el cual lo podremos elegir encima de este.
Esto enviara la informacin a modificar2.php
<HTML>
<HEAD>
<TITLE>Modificar2.php</TITLE>
</HEAD>
<BODY>
<?php
//Conexion con la base
$link = mysql_connect("localhost", "root", "root") or die("No he podido conectar con el
servidor");
mysql_select_db("agenda",$link) or die("No he podido conectar con la BD");
$nombre1 = $_POST['nombre'];
$nombre2 = $_POST['nombre2'];
$a1 = $_POST['ap1'];
$a2 = $_POST['ap2'];
$tele = $_POST['telefono'];
$emai = $_POST['email'];
$dir = $_POST['direccion'];
$prov = $_POST['provincia'];
$fec = $_POST['fecha'];
//Creamos la sentencia SQL y la ejecutamos

$sql="Update agenda Set nombre='$nombre2', apellido1='$a1', apellido2='$a2',


telefono='$tele', email='$emai', direccion ='$dir', provincia='$prov', fechanacimiento='$fec'
Where nombre='$nombre1'";
$result = mysql_query($sql,$link) or die("No he podido actualizar el contacto");
echo "<p>El contacto ha sido actualizado.</p>\n";
mysql_close($link);
?>
<h1><div align="center">Registro Actualizado</div></h1>
<div align="center"><a href="listadoagenda.php">Visualizar el contenido de la base</a></div>
</BODY>
</HTML>

A travs de esta consulta actualizar los datos $sql="Update agenda Set nombre='$nombre2',
apellido1='$a1', apellido2='$a2', telefono='$tele', email='$emai', direccion ='$dir',
provincia='$prov', fechanacimiento='$fec' Where nombre='$nombre1'";

Al final de cada pgina he creado enlaces para poder volver a la portada de la agenda o bien
para poder ver el listado.