Archivo

Posts Tagged ‘ejercicio’

Ejercicio web completa

15 de noviembre de 2012 Deja un comentario

Intentaremos hacer una web parecida a la siguiente:

Puedes utilizar el siguiente esqueleto:

<html>
    <head>
        <title></title>
        <link rel="stylesheet" type="text/css" href="pagina.css"/>
        <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
         <script type="text/javascript" src="https://maps.google.com/maps/api/js?sensor=false">
        </script>
        <script type="text/javascript" src="mimapa.js"></script>
        <!-- La anterior línea la sustituiríamos por un include de PHP
            si los mapas de Google Maps API 3 van a leer de MySQL -->        
    </head>
    <body>  <!-- Si utilizamos Google Maps hay que poner onload="inicializar() dentro de la etiqueta body"-->
        <div id="principal">
            <div id="banner">
                <?php
                include ("banner.inc");
                ?>
            </div>
            <div id="menu">
                <?php
                include("menu.inc");
                ?>
            </div>
            <div id="content">
                <div id="contenido">
                    <?php
                    include("paginaprincipal.php");
                    ?>
                </div>
                <div id="mapa">
                    <?php
                    include("mapaderecha.php");
                    ?>
                </div>
            </div>
            <div id="pie">
                <?php
                include("pie.inc");
                ?>
            </div>            
        </div>        
    </body>
</html>

Continuamos desarrollando. Para ver como va quedando todo, creamos un fichero de CSS que nos muestre el aspecto de las capas, luego cambiaremos los colores:

PAGINA.CSS

*{
    margin-top:0px;
    margin-bottom:0px;
    padding-top:0px;
    padding-bottom:0px;
}
body {
    text-align:center;
    margin: 0 auto;
    padding:0px;
    background: #999999;
}
#principal{
    text-align:left;
    margin: 0 auto;
    padding:0px;
    background: white;
    width: 850px;
}
#banner{
    background: url('imagenes/desert.jpg')  orange;
    height: 150px;
}
#menu{
    background: green;
}
#content{
    width:100%;
    float:left;
    min-height: 500px;
    background:white;
}
#contenido{
    background: blue;
    width:650px;
    float:left;
    min-height: 500px;
}
#mapa{
    background: yellow;
    width:200px;
    float:right;
}
#pie{
    background: red;
}


/* ***************** CSS PARA MAPA DE CONTACTOS ************************ */
#map_canvas{
    margin: 0 auto;
    padding: 0 auto;
    width:200px;
    height:400px;
}
#mapa h1{
    color:red;
    font-size: 18px;
    text-align: center;
}

Esquema del sitio

MENU.INC

<ul>
<li><a href=»#»>Nuevo contacto</a></li>
<li><a href=»paginalistado.php»>Listado</a></li>
<li><a href=»#»>Borrar</a></li>
<li><a href=»#»>Búsqueda</a></li>
</ul>

PAGINAPRINCIPAL.PHP

<h1>Contenido principal</h1>
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do 
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim 
ad minim veniam, quis nostrud exercitation ullamco laboris nisi
 ut aliquip ex ea commodo consequat. Duis aute irure dolor in
  reprehenderit in voluptate velit esse cillum dolore eu fugiat
   nulla pariatur. Excepteur sint occaecat cupidatat non proident,
    sunt in culpa qui officia deserunt mollit anim id est laborum.

BANNER.INC

&nbsp;
<h1>Mi página personal</h1>

PIE.INC

<ul>
    <li><a href="#">Contacto</a></li>
    <li><a href="#">Como llegar</a></li>
    <li><a href="#">Copy right</a></li>
    
</ul>

MAPADERECHA.PHP

<h1>Mapa de mis contactos</h1>
<div id="map_canvas">&nbsp;</div>

MAPA.INC

<script type="text/javascript">
    function inicializar(){        
        var ventana;
        var latitudlongitud = new google.maps.LatLng(37.206167,-3.614254);
        var opciones = {
            zoom: 12,
            center: latitudlongitud,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        var mapa = new google.maps.Map(document.getElementById("map_canvas"),opciones);
        
        <?php
        // Conecta con BD y ejecutar consulta
            // Conectar con el Servidor
    $link = mysql_connect("localhost", "root", "acrear2012") 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"; // Consulta por defecto
    $resultado = mysql_query($consulta, $link) or die ("No puedo ejecutar la consulta");
    // Voy leyendo fila a fila
    while ($fila = mysql_fetch_array($resultado)){
        $latitud=$fila['X'];
        $longitud=$fila['Y'];
        $id=$fila['id'];
        $nombrecompleto= $fila['nombre'].' '.$fila['apellido1'].' '.$fila['apellido2'];
        $direccion=$fila['direccion'];
        $provincia=$fila['provincia'];
        $telefono=$fila['telefono'];
        $correo=$fila['email'];
        $fecha=$fila['fechanacimiento'];   
  echo "var coordenadas = new google.maps.LatLng($latitud,$longitud);
        var marcador$id = new google.maps.Marker({
            position: coordenadas,
            map: mapa,
            title: '$nombrecompleto',
            icon: 'imagenes/statue-2.png'
        });
        var cadena$id='<div>'
        +'<h1>$nombrecompleto</h1>'
        +'<p>$direccion ($provincia)</p>'
        +'<p>Teléfono: $telefono</p>'
        +'<p>email: $correo</p>'
        +'<p>Fecha de nacimiento: $fecha</p>'
        +'<p><img src=\"imagenes/pepito.jpg\" alt=\"foto de pepito\" width=50px/></p>'
        +'</div>';
        google.maps.event.addListener(marcador$id, 'click', function() {
          if (ventana) ventana.close();
          ventana = new google.maps.InfoWindow({content: cadena$id});
          ventana.open(mapa,marcador$id);          
        }); 
        ";
    }
    mysql_close($link);
?>
            
        }
    
    
</script>

PAGINALISTADO.PHP

<html>
    <head>
        <title></title>
        <link rel="stylesheet" type="text/css" href="pagina.css"/>
        <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
         <script type="text/javascript" src="https://maps.google.com/maps/api/js?sensor=false"></script>
         <?php
             include("mapa.inc");
         ?>
        <!-- <script type="text/javascript" src="mimapa.js"></script>
        La anterior línea la sustituiríamos por un include de PHP
            si los mapas de Google Maps API 3 van a leer de MySQL -->        
    </head>
    <body onload="inicializar()">  <!-- Si utilizamos Google Maps hay que poner onload="inicializar() dentro de la etiqueta body"-->
        <div id="principal">
            <div id="banner">
                <?php
                include ("banner.inc");
                ?>
            </div>
            <div id="menu">
                <?php
                include("menu.inc");
                ?>
            </div>
            <div id="content">
                <div id="contenido">
                    <?php
                    include("provincia.inc");
                    ?>
                </div>
                <div id="mapa">
                    <?php
                    include("mapaderecha.php");
                    ?>
                </div>
            </div>
            <div id="pie">
                <?php
                include("pie.inc");
                ?>
            </div>            
        </div>        
    </body>
</html>

PROVINCIA.INC

<SCRIPT LANGUAGE=’JavaScript’>
<!–
function actualizaPagina ()
{
i = document.forms.formulario.prov.selectedIndex;
categoria = document.forms.formulario.prov.options[i].value;
window.location = ‘paginalistado.php?prov=’ + categoria;
}
// –>
</SCRIPT>

<h1>Todos mis contactos</h1>
<form name=»formulario» action=»paginalistado.php» method=»get»>
Mostrar contactos por provincia:
<select name=»prov» onchange=’actualizaPagina()’>

<?php
if (!isset($_GET[‘prov’])){ // Si yo he escrito listadoporprovincia.php sin parámetros
echo «<option value=’Todas’ selected>Todas</option>»;
}
elseif ($_GET[‘prov’]==»Todas»){
echo «<option value=’Todas’ selected>Todas</option>»;
}
else{
echo «<option value=’Todas’>Todas</option>»;
}

// Conectar con el Servidor
$link = mysql_connect(«localhost», «root», «acrear2012»)
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 provincia FROM agenda GROUP BY provincia»;
$resultado = mysql_query($consulta, $link)
or die («No puedo ejecutar la consulta»);
// Voy leyendo fila a fila

while ($fila = mysql_fetch_array($resultado)){
echo «<option value='».$fila[‘provincia’].»‘»;
if (isset($_GET[‘prov’]))
if ($_GET[‘prov’]==$fila[‘provincia’])
echo » selected»;
echo «>».$fila[‘provincia’].»</option>\n»;
}
mysql_close($link);
?>
</select>

</form>
<table>
<tr>
<th>NOMBRE</th><th>DIRECCI&Oacute;N</th><th>TEL&Eacute;FONO</th><th>EMAIL</th><th>PROVINCIA</th>
</tr>
<?php
// Conectar con el Servidor
$link = mysql_connect(«localhost», «root», «acrear2012»)
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

if (!isset($_GET[‘prov’]))
$consulta= «SELECT * FROM agenda»;
elseif ($_GET[‘prov’]==»Todas»)
$consulta= «SELECT * FROM agenda»;
else
$consulta=»SELECT * FROM agenda WHERE provincia='».$_GET[‘prov’].»‘»;

$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 dirección
echo «<td>».$fila[‘direccion’].»</td>»;
// Celda del teléfono
echo «<td>».$fila[‘telefono’].»</td>»;
// Celda del email
echo «<td>».$fila[‘email’].»</td>»;
echo «<td>».$fila[‘provincia’].»</td>»;
echo «</tr>\n»;
}
mysql_close($link);  // Cerrar la conexión

?>
</table>

Paginación

2 de noviembre de 2012 Deja un comentario

En la siguiente imagen se puede ver un ejemplo de cómo funcionaría la paginación de registros.

Tenemos 10 contactos en la base de datos y quiero mostrarlos de 3 en 3.

La página inicial es paginacion.php

Utilizo la variable $_GET[‘pos’] para obtener el inicio de mi página. Si no está la variable especificada, le asigno 0.

En la primera página Anteriores no debe ser un enlace, simplemente debe ser texto.

En la última página Siguientes no debe ser un enlace, simplemente debe ser texto.
image

Ejercicio viernes 2 de noviembre

2 de noviembre de 2012 Deja un comentario

image

Categorías: Desarrollo web Etiquetas: , , , , ,

Ejercicio Agenda

26 de octubre de 2012 Deja un comentario

Este sitio va a tener varias páginas. Vamos a ir desarrollando una a una.

Hemos creado una BD llamada «agenda» con una tabla llamada «agenda» que tiene la siguiente estructura:

LISTADOAGENDA.PHP

El código fuente de este fichero es:

<html>
 <head>     
     <link rel="stylesheet" type="text/css" href="agenda.css">
 </head>
 <body>
  <h1>Todos mis contactos</h1> 
     <table>
         <tr>
             <th>NOMBRE</th><th>DIRECCI&Oacute;N</th><th>TEL&Eacute;FONO</th><th>EMAIL</th>
         </tr>
<?php
    // Conectar con el Servidor
    $link = mysql_connect("localhost", "root", "acrear2012")
            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 dirección
        echo "<td>".$fila['direccion']."</td>";
        // Celda del teléfono
        echo "<td>".$fila['telefono']."</td>";
        // Celda del email
        echo "<td>".$fila['email']."</td>";
        echo "</tr>\n";
    }
    mysql_close($link);  // Cerrar la conexión

?>
    </table>
 </body>
</html>

FICHERO AGENDA.CSS

h1{
    text-align:center;
}

table{    
    border-spacing: 0px;
    border: 1px black solid;
    margin-left:50px;
}
td {
    padding-left:10px;
    padding-right:10px;
}
th{
    background-color: gray;
}
#naranja{
    background-color: orange;
}

Ahora vamos a crear un formulario para insertar un nuevo contacto en la Agenda.

INSERTAAGENDA.HTML

<!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/>
            Teléfono: <input type="text" name="telefono"/><br/><br/>
            e-mail: <input type="text" name="email"/><br/><br/>
            Dirección: <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>

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", "acrear2012") 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);
?>
</body>
</html>

BUSCAAGENDA.PHP

<html>
    <head><title>Búsqueda de contactos</title></head>
    <body>
        <?php
        if (!isset($_POST['boton'])){    //Primera vez que entra
            echo "
              <form action='buscaagenda.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 había pulsado el botón 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 búsqueda
            $conexion=mysql_connect("localhost","root","acrear2012")
                       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 búsqueda.
           // Puede ser que encuentre a 0 o más personas, atención 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
                echo "
                <table>
                <tr>
                <th>Nombre</th>                
                <th>Direccion</th>
                <th>Telefono</th>
                <th>email</th>
                <th>Provincia</th>
                </tr>
                ";
                while ($fila=mysql_fetch_array($resultado)){
                    echo "<tr>";
                    echo "<td>".$fila['nombre']." ".$fila['apellido1']." ".$fila['apellido2']."</td>";
                    echo "<td>".$fila['direccion']."</td>";
                    echo "<td>".$fila['telefono']."</td>";
                    echo "<td>".$fila['email']."</td>";
                    echo "<td>".$fila['provincia']."</td>";
                    echo "</tr>";                    
                }                    
                echo "</table>";
            }   

           //Cierro la conexión
           mysql_close($conexion);
        }        
        ?>        
    </body>
</html>

BUSCAAGENDA2.PHP

<html>
    <head><title>Búsqueda de contactos 2</title>
        <link rel="stylesheet" type="text/css" href="agenda.css">        
    </head>
    <body>
        <?php
        if (!isset($_POST['boton'])){    //Primera vez que entra
            echo "
              <form action='buscaagenda2.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 había pulsado el botón 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 búsqueda
            $conexion=mysql_connect("localhost","root","acrear2012")
                       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 búsqueda.
           // Puede ser que encuentre a 0 o más personas, atención 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 "<h2>Contacto Encontrado</h2>\n";
                echo "<p>El nombre es ";
                echo $fila['nombre']." ".$fila['apellido1']." ".$fila['apellido2'];
                echo ", vive en ".$fila['direccion'].", nació el ".$fila['fechanacimiento'];
                echo ", su número de teléfono es <span id='negrita'>".$fila['telefono'];
                echo "</span> y su dirección de correo es ";
                echo "<a href='mailto:".$fila['email']."'>".$fila['email']."</a>.</p>";                
                echo "<p>Vive en la provincia de ".$fila['provincia'].".</p>";
                if (mysql_fetch_array($resultado)){
                    echo "<h5>ATENCIÓN: Hay más contactos que coinciden con el criterio
                    de búsqueda.</h5>";
                }

            }   

           //Cierro la conexión
           mysql_close($conexion);
        }        
        ?>        
    </body>
</html>

BUSCAAGENDA3.PHP

Igual que el anterior pero presentando los datos en un formulario de controles TEXT de solo lectura.

<html>
    <head><title>Búsqueda de contactos 2</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 había pulsado el botón 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 búsqueda
            $conexion=mysql_connect("localhost","root","acrear2012")
                       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 búsqueda.
           // Puede ser que encuentre a 0 o más personas, atención 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 "Dirección: <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";        
            }   

           //Cierro la conexión
           mysql_close($conexion);
        }        
        ?>        
    </body>
</html>

BORRAAGENDA.PHP

Debe aparecer un formulario de búsqueda con los campos Nombre y Apellido.

Cuando el usuario rellene el formulario y pulse el botón de borrar, busca en la BD, si encuentra el contacto, lo muestra en un formulario y le pide al usuario confirmación.

Si el usuario pulsa el botón Confirma, aparecerá un mensaje confirmando el borrado.

<html>
<head>

</head>
<body>
<?php
// La primera vez que entro
if (!isset($_POST['botonborra']) and !isset($_POST['botonconfirma'])){
    echo "
    <form action='borraagenda.php' method='post'>
      Nombre: <input type='text' name='nombre'/><br/><br/>
      Apellido: <input type='text' name='apellido'/><br/><br/>
      <input type='submit' name='botonborra' value='Borrar contacto'/>
      <input type='reset' value='Limpiar'/>
    </form>
    ";    
}
else{ // Había pulsado ya el botón de Borrar del primer formulario
    if (!isset($_POST['botonconfirma'])){ //Estoy en la fase 2. Debo Mostrar el formulario para confirmar el borrado
      $nombre=$_POST['nombre'];
      $apellido1=$_POST['apellido'];
      $link=mysql_connect("localhost","root","acrear2012")
              or die("No puedo conectar con el servidor");
      mysql_select_db("agenda",$link)
              or die("No puedo conectar con la BD");
      $consulta="SELECT * FROM agenda WHERE nombre='$nombre' and apellido1='$apellido1'";
      $result=mysql_query($consulta,$link);

      if (mysql_num_rows($result)==0){ //Contacto no encontrado
          echo "<h2>No he encontrado el contacto para borrar</h2>";
      }
      else{
         $fila=mysql_fetch_array($result);
         echo "<form action='borraagenda.php' method='post'>
         Nombre: <input type='text' name='nombre' 
         value='".$fila['nombre']."' readonly/><br/><br/>";
         echo "Apellidos:
         <input type='text' name='apellido1' value='"
         .$fila['apellido1']."' readonly/><br/><br/>";
         echo "<input type='text' 
         name='apellido2' value='".$fila['apellido2']."' readonly/><br/><br/>";
         echo "Direccion: <input type='text' name='direccion' value='".$fila['direccion']."' readonly/><br/><br/>";
         echo "<input type='hidden' name='idcontacto' value=".$fila['id']." />";
         echo "
         <input type='submit' name='botonconfirma' value='Confirma borrado'/>

         ";         
         echo "</form>";
      }
      mysql_close($link);
    }
    else{ // Si estoy en la fase 3. He pulsado el botón de Confirmar
        $identificador=$_POST['idcontacto'];

      $link=mysql_connect("localhost","root","acrear2012")
              or die("No puedo conectar con el servidor");
      mysql_select_db("agenda",$link)
              or die("No puedo conectar con la BD");
      $consulta="DELETE FROM agenda WHERE id=".$identificador;
      $result=mysql_query($consulta,$link) or die("No he podido borrar el contacto");
      echo "<h2>Contacto Borrado</h2>";
      mysql_close($link);        
    }
}
?>        
</body>
</html>

PAGINACIÓN DE REGISTROS


<?php
if (isset($_GET['pos']))
  $inicio=$_GET['pos'];
else
  $inicio=0;
?>

<html>
 <head>     
     <link rel="stylesheet" type="text/css" href="agenda.css">
 </head>
 <body>
  <h1>Todos mis contactos</h1> 
     <table>
         <tr>
             <th>NOMBRE</th><th>DIRECCI&Oacute;N</th><th>TEL&Eacute;FONO</th><th>EMAIL</th>
         </tr>
<?php
    $num_elem=6;
    // Conectar con el Servidor
    $link = mysql_connect("localhost", "root", "acrear2012")
            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 limit $inicio,$num_elem";
    $resultado = mysql_query($consulta, $link)
                 or die ("No puedo ejecutar la consulta");
    // Voy leyendo fila a fila
    $i=0;
    $impresos=0;
    while ($fila = mysql_fetch_array($resultado)){
        $impresos++;
        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 dirección
        echo "<td>".$fila['direccion']."</td>";
        // Celda del teléfono
        echo "<td>".$fila['telefono']."</td>";
        // Celda del email
        echo "<td>".$fila['email']."</td>";
        echo "</tr>\n";
    }

    $consultatam="SELECT count(*) as tam from agenda";
    $resultadotam = mysql_query($consultatam, $link)
                 or die ("No puedo ejecutar la consulta");
    $filatam = mysql_fetch_array($resultadotam);
    $tam=$filatam['tam']; // $tam tiene el número de registros de AGENDA

    mysql_close($link);  // Cerrar la conexión
    echo "</table>";

    if ($inicio==0){
        echo "Inicio ";
    }else{
        echo "<a href='paginacion.php?pos=0'>Inicio</a> ";
    }

    if ($inicio==0)
        echo "Anteriores ";
    else{
        $anterior=$inicio-$num_elem;
        echo "<a href='paginacion.php?pos=$anterior'>Anteriores</a> ";
    }

    if ($impresos<$num_elem){ // No he llenado la página, estoy al final
        echo "Siguientes ";
    }
    else{
        $siguiente=$inicio+$num_elem;
        echo "<a href='paginacion.php?pos=$siguiente'>Siguientes</a> ";
    }

    if ($impresos<$num_elem){
        echo "Fin";
    }
    else{
        $fin=$tam-($tam%$num_elem);
        echo "<a href='paginacion.php?pos=$fin'>Fin</a>";
    }
?>

 </body>
</html>

ORDENANDO LISTADOAGENDA: LISTADOAGENDA2.PHP

Imágenes para utilizar:

Código para ordenar por nombre:

<html>
 <head>     
     <link rel="stylesheet" type="text/css" href="agenda.css">
 </head>
 <body>
  <h1>Todos mis contactos</h1> 
     <table>
         <tr>
             <th>
                 <a href="listadoagenda2.php?nombre=asc">
                     <img src="imagenes/flecha.gif" alt="abajo"/>
                 </a>
                 NOMBRE
                 <a href="listadoagenda2.php?nombre=desc">
                     <img src="imagenes/flechaarriba.gif" alt="arriba"/>
                 </a>
                 </th><th>DIRECCI&Oacute;N</th><th>TEL&Eacute;FONO</th><th>EMAIL</th>
         </tr>
<?php
    // Conectar con el Servidor
    $link = mysql_connect("localhost", "root", "acrear2012")
            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"; // Consulta por defecto

    if (isset($_GET['nombre'])){ // Compruebo si estoy pasando nombre=xxx
      if ($_GET['nombre']=="desc"){
        $consulta= "SELECT * FROM agenda ORDER BY nombre DESC";
      }
      else{
        $consulta= "SELECT * FROM agenda ORDER BY nombre ASC";
      }
    }

    $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 dirección
        echo "<td>".$fila['direccion']."</td>";
        // Celda del teléfono
        echo "<td>".$fila['telefono']."</td>";
        // Celda del email
        echo "<td>".$fila['email']."</td>";
        echo "</tr>\n";
    }
    mysql_close($link);  // Cerrar la conexión

?>
    </table>
 </body>
</html>

LISTADOPORPROVINCIA.PHP

<html>
 <head>     
     <link rel="stylesheet" type="text/css" href="agenda.css">
     <SCRIPT LANGUAGE='JavaScript'>
    <!--
    function actualizaPagina ()
     {
      i = document.forms.formulario.prov.selectedIndex;
      categoria = document.forms.formulario.prov.options[i].value;
      window.location = 'listadoporprovincia.php?prov=' + categoria;
     }
     // -->
     </SCRIPT>
     
     
 </head>
 <body>
  <h1>Todos mis contactos</h1> 
  <form name="formulario" action="listadoporprovincia.php" method="get">
       Mostrar contactos por provincia:
       <select name="prov" onchange='actualizaPagina()'>
           
<?php           
           if (!isset($_GET['prov'])){ // Si yo he escrito listadoporprovincia.php sin parámetros
               echo "<option value='Todas' selected>Todas</option>";
        }
        elseif ($_GET['prov']=="Todas"){
            echo "<option value='Todas' selected>Todas</option>";
        }
        else{
            echo "<option value='Todas'>Todas</option>";
        }
        
    // Conectar con el Servidor
    $link = mysql_connect("localhost", "root", "acrear2012")
            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 provincia FROM agenda GROUP BY provincia";
    $resultado = mysql_query($consulta, $link)
                 or die ("No puedo ejecutar la consulta");
    // Voy leyendo fila a fila
    
    while ($fila = mysql_fetch_array($resultado)){
        echo "<option value='".$fila['provincia']."'";
        if (isset($_GET['prov']))
            if ($_GET['prov']==$fila['provincia'])
                echo " selected";
        echo ">".$fila['provincia']."</option>\n";    
    }           
    mysql_close($link);
?>
       </select>
       
  </form>  
     <table>
         <tr>
             <th>NOMBRE</th><th>DIRECCI&Oacute;N</th><th>TEL&Eacute;FONO</th><th>EMAIL</th><th>PROVINCIA</th>
         </tr>
<?php
    // Conectar con el Servidor
    $link = mysql_connect("localhost", "root", "acrear2012")
            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
    
    if (!isset($_GET['prov']))
        $consulta= "SELECT * FROM agenda";
    elseif ($_GET['prov']=="Todas")
        $consulta= "SELECT * FROM agenda";
    else
        $consulta="SELECT * FROM agenda WHERE provincia='".$_GET['prov']."'";
    

    $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 dirección
        echo "<td>".$fila['direccion']."</td>";
        // Celda del teléfono
        echo "<td>".$fila['telefono']."</td>";
        // Celda del email
        echo "<td>".$fila['email']."</td>";
        echo "<td>".$fila['provincia']."</td>";
        echo "</tr>\n";
    }
    mysql_close($link);  // Cerrar la conexión

?>
    </table>
 </body>
</html>

Categorías: Desarrollo web Etiquetas: , , ,

Ejercicio PHP Encuesta

26 de octubre de 2012 Deja un comentario

 

..

Categorías: Desarrollo web Etiquetas: , , ,

Ejercicio Formulario y Resultado en un único fichero

19 de octubre de 2012 Deja un comentario

Escriba un programa que solicite y reciba (sin validar) un nombre, un número de teléfono y una dirección de correo y que conste de una única página.

El siguiente diagrama muestra las comprobaciones que es preciso realizar:

  • Para que el atributo action del formulario o el enlace a la página apunte a sí mismo, independientemente de la ubicación del archivo o de su nombre, se puede utilizar la variable predefinida $_SERVER[PHP_SELF].
  • Para comprobar que se han recibido datos, se puede dar un valor al atributo name del botón Enviar (submit) y comprobar que se ha recibido ese dato (con la función isset, por ejemplo).

..

Ejercicio para calcular la letra del DNI

19 de octubre de 2012 Deja un comentario

Utilizando la siguiente cadena:

'TRWAGMYFPDXBNJZSQVHLCKE'

Haz el módulo al número del DNI y 23 y lo que te dé, es el índice de la cadena para devolver la letra.

Es decir, si el resto de dividir el número del DNI entre 23 da 6, la letra será Y.

 

DNI.PHP

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    </head>
    <body>
<?php
  if (isset($_POST['boton'])){ // Se ha pulsado el botón???
    $letras='TRWAGMYFPDXBNJZSQVHLCKE';
    $dni=$_POST['dni'];
    $indice=intval($_POST['dni'])%23;
    $letra=$letras[$indice];
    echo "<p>La letra del dni $dni es $letra";
  }
  else{   // Primera carga
   include ("dni.inc");    
  }  
?>            
    </body>
</html>

DNI.INC

<h1></h1>
<form action="dni.php" method="post">
    Introduce tu DNI: 
    <input type="text" name="dni"/><br/>
    <input type="submit" name="boton" value="Encuentra letra"/>
    <input type="reset"/>
</form>

 

 

Categorías: Desarrollo web Etiquetas: , , ,

Ejercicio en PHP: Convertidor de bytes

19 de octubre de 2012 Deja un comentario

Crea un formulario que tenga una caja de texto en la que el usuario pueda escribir el número de bytes.

En el formulario también debe haber un grupo de radiobuttons que permita elegir entre KB, MB, GB y TB.

Según lo que el usuario haya elegido en estos radiobuttons, convertiremos los bytes a KB, MB, GB o TB.

Ejercicio 6: Tablas de multiplicar

14 de octubre de 2012 3 comentarios

Haz un formulario que te pregunte el número para el que quieres que te calcule la tabla de multiplicar.

Si ha introducido un número entero mayor que 0, genera la tabla de multiplicar. Las características deben ser las siguientes:

– Primero una h1 entre la que pones «Tabla del 7» (por ejemplo)

– Luego, en formato de lista desordenada (<ul>) debe presentar la tabla de multiplicar desde el 7×1=7 hasta el 7×10=70 (si es que el valor introducido fuera 7). El resultado de cada una de estas operaciones debe aparecer en rojo.

Si el valor que introduce no es correcto, que informe al usuario del error y que muestre un enlace al formulario html

CODIGO HTML

<!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>
        <meta http-equiv="Content-Type" />
        <title>New Web Project</title>
    </head>
    <body>
        <h1>Tabla de multiplicar</h1>
        <form action="tabla.php" method="post">
            Introduce un número: 
            <input type="text" name="numero"/><br/><br/>
            <input type="submit" value="Multiplicar"/>            
        </form>
    </body>
</html>

CODIGO PHP

<html>
    <body>

        <h1>Tabla del <?php
           $numero=intval($_POST['numero']);
           echo $numero;
        ?>
        </h1>
        <ul>
            <?php
            for($i=1;$i<=10;$i++){
              if ($i%2==0){ // Es par $i
                echo "<li><span style='color:red'>$numero x $i = ";
                echo $numero*$i;
                echo "</span></li>";                            
              }    //Fin del if
              else{
                echo "<li>$numero x $i = ";
                echo $numero*$i;
                echo "</li>";
              } //Fin del else
            } //Fin del for            
            ?>            
        </ul>

    </body>

</html>

CODIGO PHP DEFINITIVO:

<html>
    <head>
        <title>Tabla del 7</title>
    </head>
    <body>    
        <?php
        $numero=intval($_POST['numero']);
        
        if ($numero>0){
                    
        echo "<h1>Tabla del"; 
        
           
        echo $numero;
        echo "        </h1>
              <ul>";
            
            for($i=1;$i<=10;$i++){
              if ($i%2==0){ // Es par $i
                echo "<li><span style='color:red'>$numero x $i = ";
                echo $numero*$i;
                echo "</span></li>";                            
              }    //Fin del if
              else{
                echo "<li>$numero x $i = ";
                echo $numero*$i;
                echo "</li>";
              } //Fin del else
            } //Fin del for            
                        
        echo "</ul>";
        }
        else{
            echo "<p>El valor introducido ";
            echo $_POST['numero'];
            echo " no es correcto, debería haber sido un número entero positivo.</p>";
            echo "<p>Variable numero= $numero</p>";
            echo "<p><a href='tabla.html'>Pruebe de nuevo</a></p>";
        }
        ?>
    </body>
    
</html>

Categorías: Desarrollo web Etiquetas: , , , , ,

Ejercicio 5 de PHP: Comparar 3 datos

14 de octubre de 2012 Deja un comentario

Haz un formulario como el siguiente:

La página resultado debe informarnos de cuál de los 3 es el mayor de los 3.

Si alguno de los datos no son enteros, que nos informe de que no son enteros y que aparezca un enlace que nos permita volver al formulario inicial.

Si los 3 datos no son distintos, también que nos informe de que no es correcto.

CODIGO HTML

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Ejercicio 5 de PHP</title>
    </head>
    <body>
        <h1>Comparando Datos</h1>
        <form action="ejercicio5.php" method="post">
            Dato1: <input type="text" name="dato1"/><br/>
            Dato2: <input type="text" name="dato2"/><br/>
            Dato3: <input type="text" name="dato3"/><br/>
            <br/>
            <input type="submit" name="Enviar" title="Enviar" value="Enviar"/>
        </form>
    </body>
</html>

CODIGO PHP:

<html>
 <head>
     <title>Comparando</title>
 </head>
 <body>
<?php

    $dato1 = intval($_POST['dato1']);
    $dato2 = intval($_POST['dato2']);
    $dato3 = intval($_POST['dato3']);

    if ( ($dato1 > $dato2) and ($dato1>$dato3)){        
        echo "<p>El mayor es el primero: $dato1</p>";
    }elseif ($dato2>$dato3) {
        echo "<p>El mayor es el segundo: $dato2</p>";
    }else{
        echo "<p>El mayor es el tercero: $dato3</p>";
    }

?>
 </body>
</html>

..