domingo, 23 de abril de 2017

actualizar update

De las actividades con tablas esta es la más larga. Vamos a resolverlo implementando tres páginas, la primera un formulario de consulta del mail de un alumno, la segunda otro formulario que nos permita cargar su mail modificado y la última registrará el cambio en la tabla.
El formulario de consulta del mail del alumno es similar a problemas anteriores:

<html>
<head>
<title>Problema</title>
</head>
<body>
<form action="pagina2.php" method="post">
Ingrese el mail del alumno:
<input type="text" name="mail"><br>
<input type="submit" value="buscar">
</form>
</body>
</html>
 
La segunda página es la más interesante y con conceptos nuevos:
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
$conexion=mysql_connect("localhost","root","z80") or
  die("Problemas en la conexion");
mysql_select_db("phpfacil",$conexion) or
  die("Problemas en la selección de la base de datos");
$registros=mysql_query("select * from alumnos
                       where mail='$_REQUEST[mail]'",$conexion) or
  die("Problemas en el select:".mysql_error());
if ($reg=mysql_fetch_array($registros))
{
?>
  <form action="pagina3.php" method="post">
  Ingrese nuevo mail:
  <input type="text" name="mailnuevo" value="<?php echo $reg['mail'] ?>">
  <br>
  <input type="hidden" name="mailviejo" value="<?php 
  echo $reg['mail'] ?>">
  <input type="submit" value="Modificar">
  </form>
<?php
}
else
  echo "No existe alumno con dicho mail";
?>
</body>
</html> 
Lo primero que podemos observar es que si el if se verifica verdadero se ejecuta un bloque que contiene código HTML:
if ($reg=mysql_fetch_array($registros))
{
?>
  <form action="pagina3.php" method="post">
  Ingrese nuevo mail:
  <input type="text" name="mailnuevo" value="<?php 
echo $reg['mail'] ?>">
  <br>
  <input type="hidden" name="mailviejo" value="<?php echo $reg['mail'] ?>">
  <input type="submit" value="Modificar">
  </form>
<?php
}
Es decir que podemos disponer bloques de PHP dispersos dentro de la página.
Otro concepto importante es como enviar el mail del primer formulario a la tercer página, esto se logra con los controles de tipo "hidden", este tipo de control no se visualiza en el formulario pero se envía al presionar el botón submit.
Si queremos que el control text se inicialize con el mail ingresado en el formulario anterior debemos cargar la propiedad value con dicho valor:
  <input type="text" name="mailnuevo" value="<?php echo $reg['mail'] ?>">
Por último la pagina3.php es la que efectúa la modificación de la tabla propiamente dicha. Con el mail ingresado en la pagina1.php, el mail modificado en la pagina2.php se efectúa el update.
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
$conexion=mysql_connect("localhost","root","z80") or
  die("Problemas en la conexion");
mysql_select_db("phpfacil",$conexion) or
  die("Problemas en la selección de la base de datos");
$registros=mysql_query("update alumnos
                         set mail='$_REQUEST[mailnuevo]' 
                         where mail='$_REQUEST[mailviejo]'",$conexion) or
  die("Problemas en el select:".mysql_error());
  echo "El mail fue modificado con exito";
?>
</body>
</html> 
Tengamos en cuenta que el segundo formulario nos envía dos datos: $_REQUEST[mailnuevo] y $_REQUEST[mailviejo].

consulta

El proceso de consulta de datos de una tabla es similar al del listado, la diferencia es que se muestra sólo aquel que cumple la condición por la que buscamos.
Haremos un programa que nos permita consultar los datos de un alumno ingresando su mail para su búsqueda. Tengamos en cuenta que no puede haber dos alumnos con el mismo mail, por lo que la consulta nos puede arrojar uno o ningún registro.
Debemos codificar un formulario para el ingreso del mail a consultar:

<html>
<head>
<title>Problema</title>
</head>
<body>
<form action="pagina2.php" method="post">
Ingrese el mail del alumno a consultar:
<input type="text" name="mail">
<br>
<input type="submit" value="buscar">
</form>
</body>
</html>
 
Por otro lado tenemos el archivo "pagina2.php" que se encarga de buscar el mail ingresado en el formulario:
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
$conexion=mysql_connect("localhost","root","z80") or 
  die("Problemas en la conexion");
mysql_select_db("phpfacil",$conexion) or
  die("Problemas en la selección de la base de datos");
$registros=mysql_query("select codigo,nombre, codigocurso
                       from alumnos where mail='$_REQUEST[mail]'",$conexion) or
  die("Problemas en el select:".mysql_error());
if ($reg=mysql_fetch_array($registros))
{
  echo "Nombre:".$reg['nombre']."<br>";
  echo "Curso:";
  switch ($reg['codigocurso']) {
     case 1:echo "PHP";
            break;
     case 2:echo "ASP";
            break;
     case 3:echo "JSP";
            break;
  }
}
else
{
  echo "No existe un alumno con ese mail.";
}
mysql_close($conexion);
?>
</body>
</html> 
Lo más importante está en el comando select:
$registros=mysql_query("select codigo,nombre, codigocurso
                       from alumnos where mail='$_REQUEST[mail]'",$conexion) or
  die("Problemas en el select:".mysql_error());
Acá es donde con la clausula where seleccionamos sólo el registro que cumple con la condición que el mail sea igual al que ingresamos.
Como sólo puede haber un registro que cumpla la condición, llamamos a la función mysql_fetch_array en un if:
if ($reg=mysql_fetch_array($registros))
En caso de retornar un vector asociativo la condición del if se verifica como verdadera y pasa a mostrar los datos, en caso de retornar false se ejecuta el else.

conexion

<?php
$dbhost="localhost";
$usuario="root";
$password="111";
$dbname='cocacola';
$conecta = mysql_connect($dbhost,$usuario,$password);
mysql_select_db($dbname,$conecta);
?>

-->boton guardar.php

<html>
<head>
<title>Problema</title>
</head>
<body>
        <?php
        $con=mysql_connect("localhost","root","111");
        mysql_select_db("loma",$con);
       
        $pase= $_POST["clave"];
        $seudonimo= $_POST["seudonimo"];
       
        $cedula= $_POST["cedula"];
        $nombre= $_POST["nombre"];
        $apellido= $_POST["apellido"];
        $telefono= $_POST["telefono"];
        $direccion= $_POST["direccion"];
        $tipo= $_POST["tipo"];
        $edad= $_POST["edad"];
        $tiempo= $_POST["tiempo"];
       
       
       
mysql_query("insert into usuario(cedula,nombre,apellido,telefono,direccion,tipo,edad,tiempo,usuario,pase)Value('$cedula','$nombre','$apellido','$telefono','$direccion','$tipo','$edad','$tiempo','$seudonimo','clave')",$con) or die("Problemas en el select".mysql_error());
        //mysql_close($conexion);               
        echo '<script>document.location = "pagregistro.html"</script>';    
        ?>
</body>
</html>

?>

registro htp

<html>
<head>
<title>guardar</title>
<style type="text/css">
<!--
#Layer3 {
    position:absolute;
    width:548px;
    height:93px;
    z-index:3;
    left: 163px;
    top: 0px;
    background-color: #FFFF99;
}
#Layer1 {    position:absolute;
    width:819px;
    height:23px;
    z-index:1;
    left: 15px;
    top: 275px;
}
#Layer2 {
    position:absolute;
    width:633px;
    height:597px;
    z-index:4;
    left: 256px;
    top: 226px;
    background-color: #FFFF99;
    background-image: url(imagenes/images%20(2).jpg);
}
#Layer4 {
    position:absolute;
    width:200px;
    height:67px;
    z-index:5;
    left: 19px;
    top: 206px;
}
#Layer5 {
    position:absolute;
    width:132px;
    height:123px;
    z-index:6;
    left: 654px;
    top: 319px;
}
.Estilo6 {
    color: #0000FF;
    font-weight: bold;
    font-size: 14px;
}
.Estilo7 {
    color: #FF0000;
    font-size: x-large;
    font-weight: bold;
    font-style: italic;
}
#Layer6 {
    position:absolute;
    width:455px;
    height:145px;
    z-index:1;
    left: 153px;
    top: 363px;
    overflow: visible;
}
-->
</style>
<script type="text/JavaScript">
<!--
function MM_popupMsg(msg) { //v1.0
  alert(msg);
}
//-->
</script>
</head>

<body>
  <p align="center"><img src="/lomasdeleste/imagenes/images (2).jpg" alt="RE" width="250" height="128" longdesc="REGISTRO" /></p>
  <p align="center" class="Estilo7"> REGISTRO DE COMUNEROS </p>
  <p align="right" class="Estilo7"><a href="index.php"><img src="/lomasdeleste/imagenes/imagen_flecha_izquierda.gif" alt="atras" width="38" height="30" longdesc="atras" /></a></p>
  <marquee bgcolor="#FFFFFF" behavior="scroll">
  <p align="center" class="Estilo6">El Dia 29-06-2011 a las 03 de la tarde, en el Parque Alianza, Asamblea de ciudadanas y ciudadanos....Avisar a los Vecinos. Mesa de informacion y comunicacion.</p>
  </marquee>
</span> </div>
<br>
<div align="center"><strong>Datos del Vecino o Usuario</strong>
</div>
<form id="form1" name="form1" method="post" action="guardar.php">
  <p align="center">NOMBRE DE USUARIO:
  <br>
      <input type="text" name="seudonimo" id="seudonimo" />
      <br>
      Ejemplo: elgato
      <br />
      <br />
      CONTRASEÑA DE ACCESO:
      <br>
      <input type="password" name="clave" id="label" />

      <br />
        <br />
        <br>
        <br>
      CEDULA:   
      <input type="text" name="cedula" id="label2" />
    V-99.999.999  </p>
  </label>
    <p>
<label for="label">
      <div align="center">
      <div align="center">NOMBRES:     
        <input type="text" name="nombre" id="label3" />
  </div>
      </div>
</label>
      <div align="center"></div>
    </p>
    <p>
<label for="label2">
      <div align="center">
      <div align="center">APELLIDOS:
        <input type="text" name="apellido" id="label4" />
  </div>
      </div>
    </label>
    </p>
    <p align="center">
      <label for="label3">DIRECCION:</label>
      <br>
      <label>
      <textarea name="direccion" cols="30" rows="5"></textarea>
      </label>
    </p>
  <p align="center">
      <label for="label4">EDAD:</label>
      <input name="edad" type="text" id="label6" size="10" />
      A&ntilde;os.
  </p>
    <p>
<label for="label5">
      <div align="center">
      <div align="center">TEL&Egrave;FONO:
        <input type="text" name="telefono" id="label7" />
  </div>
      </div>
  </label>
      <div align="center"></div>
  </p>
<label for="label6">
    <div align="center">TIEMPO EN EL SECTOR</div>
  </label>
  <div align="center">
  <input name="tiempo" type="text" id="label8" size="10" />
  a&ntilde;o(s)</div>
  <p align="center">
      <label for="label7">TIPO DE VIVIENDA</label>
  </p>
    <p align="center">
      <label for="tipo"></label><select name="tipo" id="tipo">
        <option>Alquilada</option>
        <option>Propia</option>
        <option>De un familiar</option>
        <option>Prestada</option>
      </select>
    </p>
      <p align="center">
      <label for="Submit"></label><input name="Submit" type="submit" id="Submit" onClick="MM_popupMsg('Informaci&oacute;n almacenada con Exito')" value="Guardar" />
    </p>
    <p align="center">&nbsp;</p>
</form>
</div>
<p>&nbsp;</p>
</body>
</html>

Los mail de oulook no se pueden reenviar.

 cuando en el asunto poseen un caracter especial por ejemplo @#$ los correos no salen y no te muestra ningun correo de rebote, especialmente...