jueves, 29 de marzo de 2012

Catorceava Clase

Formulario para restringir el acceso a páginas

Este formulario es importante sobre todo cuando queremos que cierta página no sea accesada por caulquier usuario, en esta ocación lo haremos de forma sencilla y en una proxima clase veremos como trarbajar con inicios de sesión.

Es bueno aclarar que el código HTML esta azúl, el código PHP esta en rojo y los comentarios en color verde.

Iniciamos PHP y evaluamos que el formulario no contenga datos, se deja abierto el if para mostrar el formulario que esta escrito en HTML.

<?
if(!$_POST) {
?>

Escribimos el código HTML para el formulario que tendrá dos campos de texto una para Usuario y otro para Password.

En mi estructura de tabla he hecho una modificación, agregue un campo usuario para este programa, les dejo la imagen para que puedan hacer este cambio tambien.




<table width="300" border="0">
<form action="<? $_POST ?>" method="post">
  <tr>
    <td colspan="2" align="center"><h3>LOGIN</h3></td>
  </tr>
  <tr>
    <td>Usuario:</td>
    <td><input name="usuario" type="text" size="15" maxlength="15"></td>
  </tr>
  <tr>
    <td>Password:</td>
    <td><input name="password" type="password" size="15" maxlength="10"></td>
  </tr>
  <tr>
    <td colspan="2" align="center"><input name="" type="submit" value="Ingresar"></td>
  </tr>
</form>
</table>

La siguiente porción de código es de PHP y corresponde al cierre de if y al inicio de else.

<?
} else {

Estas dos líneas de código asignan los valores de los datos capturados en el formulario a dos  variables que usaremos para consultar en la tabla.

$usuario = $_POST['usuario'];
$password = $_POST['password'];

Validamos el formulario.

if(!$usuario || !$password) {
    echo "Debe ingresar los datos en todos los campos.";
    exit;
}

Conectamos con el servidor.

$db = mysql_connect("localhost", "root", "123456")
           or die ("No se puede conectar con LOCALHOST");

Seleccionamos la base de datos.

mysql_select_db("colegioprueba")
          or die ("No se puede abrir la base de datos COLEGIOPRUEBA");

Realizamos la consulta.  En este caso condicionamos usando WHERE que el campo Usuario sea igual a la variable $usuario.

$consultar = "select * from datos where Usuario = '$usuario'";

Ejecutamos la consulta.

$resultado = mysql_query($consultar);

Asignamos al array $reg el contenido de la tabla.

$reg = mysql_fetch_array($resultado);

Con este código evaluamos si la consulta falló, de ser así mostramos un mensaje y luego un link (este esta escrito en código javascript) para volver atrás.

if($reg['Usuario'] != $usuario){
    echo "Nombre de usuario incorrecto <br>";
    ?>
    <a href="javascript:history.back(1)">Volver Atrás</a>
    <?
    exit;
}

En este código evaluamos que el password que ingreso el usuario sea igual al password registrado en la tabla, de ser así se le da acceso directo a la pagina llamada formulario.php (el redireccionamiento esta escrito en javascript) en caso contrario se da un mensaje y un link para regresar atrás (este link tambien esta escrito en javascript)

if($password == $reg['Password']) {
    ?>
    <script language="javascript">
        location.href = "formulario.php";
    </script>
<?
} else {
    echo "Password Incorrecto";
    ?>
    <a href="javascript:history.back(1)">Volver Atrás</a>
    <?
}

Finalizamos el if inicial.

}

Finalizamos PHP.

?> 

Como siempre les dejo el código completo para que lo prueben y comenten sus resultados.

<?
if(!$_POST) {
?>
<table width="300" border="0">
<form action="<? $_POST ?>" method="post">
  <tr>
    <td colspan="2" align="center"><h3>LOGIN</h3></td>
  </tr>
  <tr>
    <td>Usuario:</td>
    <td><input name="usuario" type="text" size="15" maxlength="15"></td>
  </tr>
  <tr>
    <td>Password:</td>
    <td><input name="password" type="password" size="15" maxlength="10"></td>
  </tr>
  <tr>
    <td colspan="2" align="center"><input name="" type="submit" value="Ingresar"></td>
  </tr>
</form>
</table>
<?
} else {
$usuario = $_POST['usuario'];
$password = $_POST['password'];

if(!$usuario || !$password) {
    echo "Debe ingresar los datos en todos los campos.";
    exit;
}

$db = mysql_connect("localhost", "root", "123456")
           or die ("No se puede conectar con LOCALHOST");

mysql_select_db("colegioprueba")
          or die ("No se puede abrir la base de datos COLEGIOPRUEBA");

$consultar = "select * from datos where Usuario = '$usuario'";
$resultado = mysql_query($consultar);

$reg = mysql_fetch_array($resultado);

if($reg['Usuario'] != $usuario){
    echo "Nombre de usuario incorrecto <br>";
    ?>
    <a href="javascript:history.back(1)">Volver Atrás</a>
    <?
    exit;
}

if($password == $reg['Password']) {
    ?>
    <script language="javascript">
        location.href = "formulario.php";
    </script>
<?
} else {
    echo "Password Incorrecto";
    ?>
    <a href="javascript:history.back(1)">Volver Atrás</a>
    <?
}
}
?>

miércoles, 28 de marzo de 2012

Treceava Clase

Formulario de Búsqueda

En la doceava clase estudiamos como consultar datos en la tabla de datos, en esta lección aprenderemos como crear un formulario de búsqueda, siempre haciendo una consulta en la tabla, pero de forma más selectiva.

Como siempre el código PHP está de color rojo, el código HTML de color azúl y los comentarios de color verde.

Iniciamos PHP y evaluamos que el formulario no contenga datos, se deja abierto el if para mostrar el formulario que esta escrito en HTML.

<?
if(!$_POST) {
?>

Escribimos el código HTML para el formulario que tendrá dos campos una tipo select y otro tipo texto, ambos campos estarán estructurados en una tabla.

<table border="2" align="center" width="400">
<form action="<? $_POST ?>" method="post">
    <tr><td align="right">Tipo de Busqueda</td>
        <td><select name="tipo">
        <option value="Nombre">Nombre</option>
        <option value="Codigo">Codigo</option>
           </select></td></tr>
    <tr><td align="right">Termino de Busqueda</td>
        <td><input name="termino" type="text" size="40" maxlength="60">
        </td></tr>
    <tr><td>&nbsp;</td><td><input name="Buscar" type="submit" value="Buscar">
    </td></tr>
</form>
</table>

La siguiente porción de código es de PHP y corresponde al cierre de if y al inicio de else.

<?
} else {

Estas dos líneas de código asignan los valores de los datos capturados en el formulario a dos variables diferentes que usaremos para consultar en la tabla.

$tipo = $_POST['tipo'];
$termino = $_POST['termino'];

Validamos el formulario, es decir que verificamos que el usuario ingrese el término que desea buscar.  No se valida el campo tipo, porque es un campo tipo select y por ello siempre tendrá un dato aunque el usuario no lo modifique.

if(!$termino) {
    echo "Debes indicar un termino de busqueda";
    exit;
}

Conectamos con el servidor.

$db = mysql_connect("localhost", "root", "123456")
        or die ("No se pudo conectar con LOCALHOST");

Seleccionamos la base de datos.

mysql_select_db("colegiobac")
        or die ("No se puede abrir la base de datos COLEGIOBAC");

Realizamos la consulta.  En este caso vea que utilizamos WHERE para condicionar la búsqueda y esta a su vez utiliza la variable $tipo (que puede ser Nombre o bien Codigo, estos dos datos corresponden a los nombres de los campos en la tabla) la instrucción like unido al signo  % como carácter comodín cuya tarea es buscar los datos que contengan el termino de la búsqueda ($termino).

$consulta = "SELECT * FROM datos WHERE ".$tipo." like '%".$termino."%'";

Ejecutamos la consulta.

$resultado = mysql_query($consulta);

Guardamos en la variable $num_resul el número de registros encontrados.

$num_resul = mysql_num_rows($resultado);

Iniciamos el ciclo con el bucle for y este continuará mientras el contador ($i) sea menor o igual que el número de resultados ($num_resul).

for($i=1;$i<=$num_resul;$i++) {

La siguiente porción de código extrae los datos de la variable $resultado y los guarda en un array con el nombre $reg.
$registro = mysql_fetch_array($resultado);

Con el siguiente código mostramos el o los registros que resultan positivos en la consulta o búsqueda que realizamos.

    echo "No: ".$registro['IdNombre']."<br>";
    echo "<h1>Nombre: ".$registro['Nombre']."</h1>";
    echo "Edad: ".$registro['Edad']."<br>";
    echo "Codigo: ".$registro['Codigo']."<br>";
    echo "Sueldo: ".$registro['Sueldo']."<br>";
    echo "------------------------------------<br>";

Cerramos el ciclo for.

}

Cerramos el condicional if.

}

Cerramos PHP.
?>

Como en las clases anteriores les dejo el código completo sin comentarios para lo puedan probar y comenten sus resultados.

 <?
if(!$_POST) {
?>
<table border="2" align="center" width="400">
<form action="<? $_POST ?>" method="post">
    <tr><td align="right">Tipo de Busqueda</td>
        <td><select name="tipo">
        <option value="Nombre">Nombre</option>
        <option value="Codigo">Codigo</option>
           </select></td></tr>
    <tr><td align="right">Termino de Busqueda</td>
        <td><input name="termino" type="text" size="40" maxlength="60">
        </td></tr>
    <tr><td>&nbsp;</td><td><input name="Buscar" type="submit" value="Buscar">
    </td></tr>
</form>
</table>
<?
} else {

$tipo = $_POST['tipo'];
$termino = $_POST['termino'];

if(!$termino) {
    echo "Debes indicar un termino de busqueda";
    exit;
}

$db = mysql_connect("localhost", "root", "123456")
        or die ("No se pudo conectar con LOCALHOST");

mysql_select_db("colegiobac")
        or die ("No se puede abrir la base de datos COLEGIOBAC");

$consulta = "SELECT * FROM datos WHERE ".$tipo." like '%".$termino."%'";
$resultado = mysql_query($consulta);
$num_resul = mysql_num_rows($resultado);

for($i=1;$i<=$num_resul;$i++) {
$registro = mysql_fetch_array($resultado);
    echo "No: ".$registro['IdNombre']."<br>";
    echo "<h1>Nombre: ".$registro['Nombre']."</h1>";
    echo "Edad: ".$registro['Edad']."<br>";
    echo "Codigo: ".$registro['Codigo']."<br>";
    echo "Sueldo: ".$registro['Sueldo']."<br>";
    echo "------------------------------------<br>";
}
}
?>

martes, 27 de marzo de 2012

Doceava Clase

Consultar Datos de una Tabla SQL desde PHP

En la clase anterior estudiamos una de las formas que tenemos para guardar datos en una tabla SQL desde PHP, en esta clase aprenderemos como consultar esos datos y mostrarlos en el navegador, para ello vamos a crear un programita utilizando Dreamweaver como editor de PHP.

Como en las clases anteriores el código PHP estará de color rojo y los comentarios de color verde.

Iniciamos PHP
 <?

Conectamos con el servidor

$db = mysql_connect("localhost", "root", "123456") 
           or die ("No es posible conectar con localhost en este momento, inténtalo mas tarde");

Seleccionamos la base de datos

mysql_select_db("colegioprueba") 
or die ("No se puede seleccionar la base de datos colegioprueba");

Escribimos la consulta SQL en este caso utilizamos el * porque queremos seleccionar todos los campos de la tabla que lleva el nombre datos.

$consulta = "SELECT * FROM datos";

Ejecutamos la consulta y guardamos el resultado en la variable $resultado
$resultado = mysql_query($consulta);

La siguiente porción de código dara como resultado el numero de registros que contiene la tabla datos y serán guardados en la variable $num_resul.
$num_resul = mysql_num_rows($resultado);

Para mostrar los datos consultados utilizaremos el bucle (ciclo repetitivo) for.  En la siguiente línea iniciamos la variable contador $i con valor 1, el segundo parámetro condiciona el ciclo mientras la variable contador $i sea menor o igual que el numero de registros de la tabla, ese número esta guardado en la variable $num_resul y finalmente la variable contador cambia su valor incrementando 1 al valor anterior.

for($i=1;$i<=$num_resul;$i++) {

La siguiente porción de código extrae los datos de la variable $resultado y los guarda en un array con el nombre $reg.

    $reg = mysql_fetch_array($resultado);

En las siguientes líneas mostramos el contenido de los campos en el navegador, finalizando con una línea de guiones para separar los registros uno de otro, note tambien que cada línea termina con <br> para cambiar línea después de mostrar cada campo.

    echo $reg['nombre']."<br>";
    echo $reg['codigo']."<br>";
    echo $reg['edad']."<br>";
    echo $reg['sueldo']."<br>";
    echo $reg['password']."<br>";
    echo "<br>-----------------------<br>";

Cerramos la llave del ciclo for

}

Finalizamos PHP

?>

 A continuación les dejo el código sin comentarios para que lo prueben y comenten sus resultados.

<?
$db = mysql_connect("localhost", "root", "123456") 
           or die ("No es posible conectar con localhost en este momento, inténtalo mas tarde");

mysql_select_db("colegioprueba") 
or die ("No se puede seleccionar la base de datos colegioprueba");

$consulta = "SELECT * FROM datos";
$resultado = mysql_query($consulta);
$num_resul = mysql_num_rows($resultado);

for($i=1;$i<=$num_resul;$i++) {
    $reg = mysql_fetch_array($resultado);
    echo $reg['nombre']."<br>";
    echo $reg['codigo']."<br>";
    echo $reg['edad']."<br>";
    echo $reg['sueldo']."<br>";
    echo $reg['password']."<br>";
    echo "<br>-----------------------<br>";
}
?>

lunes, 26 de marzo de 2012

Onceava Clase

Captura de Datos en PHP con Formularios

En esta clase aprenderemos como crear un formulario en HTML para capturar datos en la red y luego guardarlos en la tabla datos que creamos en la novena clase.

Lo primero que haremos será iniciar un nuevo documento en este caso de tipo PHP.  Es importae aclarar que este formulario puede hacer en un mismo archivo o bien en dos, para esta clase utilizaremos un solo archivo y en una proxima clase veremos como hacerlo de otra forma.

A continuación el código completo y como en clases anteriores el código PHP está en rojo y el código HTML en azúl, en este caso incluyo comentarios en color verde. 

Esta primera sección evalúa que el formulario no contenga datos, se deja abierto el if para mostrar el formulario, que esta escrito en HTML.

<?
if(!$HTTP_POST_VARS){
?>

En esta línea iniciamos configuramos la tabla con un ancho de 500 y un borde de 5.

<table width="500" border="5">

Con esta línea configuramos el formulario, note que en la acción hacemos referencia a la matriz $HTTP_POST_VARS ya que esta recibirá los datos del formulario que a su vez utiliza el metodo POST para la publicación de los datos.

<form action="<? $HTTP_POST_VARS ?>" method="post">

Luego continuamos con el resto de la tabla y los campos del formulario.

  <tr>
    <th scope="row" colspan="2" bgcolor="#000000" style="color:#FFFFFF"><H3>NUEVO USUARIO</H3></th>
  </tr>

En esta porción de código encontramos el primer campo que corresponde a nombre, note que esta en una fila "<tr>" y "</tr>", se incluye la etiqueta en una celda y el campo en otra.

  <tr>
    <th scope="row">Nombre</th>
    <td><input name="nombre" type="text" size="40" maxlength="50" /></td>
  </tr>

Al igual que el campo anterior vemos en esta porción la configurarción del campo codigo.

  <tr>
    <th scope="row">Codigo</th>
    <td><input name="codigo" type="text" size="40" maxlength="5" /></td>
  </tr>

Ahora el campos edad.

  <tr>
    <th scope="row">Edad</th>
    <td><input type="text" name="edad" size="40" maxlength="2" /></td>
  </tr>

Aquí el campo sueldo, note que este campo incluye value=0 y esto es porque este campo recibirá números.

  <tr>
    <th scope="row">Sueldo</th>
    <td><input name="sueldo" type="text" value="0" size="40" maxlength="7" /></td>
  </tr>

Finalmente el campo Password, vea que el tipo del campo es password.

  <tr>
    <th scope="row">Password</th>
    <td><input name="password" type="password" size="40" maxlength="10" /></td>
  </tr>

En esta última parte del código HTML encontramos la configuración del botón que ejecutará la acción del formulario su valor es Guardar Datos y además vemos el cierre de Form y el cierre de Table.

  <tr>
    <th scope="row">&nbsp;</th>
    <td><input name="" type="submit" value="Guardar Datos" /></td>
  </tr>
</form>
</table>

La siguiente porción de código es de PHP y corresponde al cierre de if y el inicio de else.

<?
} else {

Estas cinco líneas de código asignan los valores de los datos capturados en el formulario a cinco diferentes variables que usaremos para guardar los datos en la tabla.

$nombre = $HTTP_POST_VARS[nombre];
$codigo = $HTTP_POST_VARS[codigo];
$edad = $HTTP_POST_VARS[edad];
$sueldo = $HTTP_POST_VARS[sueldo];
$password = $HTTP_POST_VARS[password];

Las siguiente sección corresponde a la validación del formulario, es decir verificar que el usuario haya ingresado los datos en todos los campos correspondientes, caso contrario se finalizará este programa con el mensaje:  "Debes llenar todos los campos del formulario".

if(!$nombre || !$codigo || !$edad || $sueldo == 0 || !$password) {
    echo "Debes llenar todos los campos del formulario";
    exit;
}

Ahora es necesario conectar con el servidor de prueba para que podamos tener acceso a la base de datos que creamos en la lección nueve, para ello usamos el siguiente código.  Vea que el codigo incluye el nombre del servidor "localhost", el nombre del usuario "root" y la contraseña "123456" en mi caso utilizo estos datos, tambien es importante resaltar que la instrucción or die permite enviar un mensaje de error en caso de no conectar con el servidor.

$db = mysql_connect("localhost", "root", "123456") 
           or die ("No es posible conectar con localhost en este momento, inténtalo más tarde.");

Es momento de seleccionar la base de datos, al igual que en el código anterior si la base de datos no se puede seleccionar la instrucción or die enviará un mensaje de error.

mysql_select_db("colegioiprueba") or die ("No se pudo seleccionar la base datos colegioprueba, prueba más tarde");

Una vez seleccionada la base de datos grabamos los datos capturados en el formulario utilizando una instrucción sql.

$insertar = "insert into datos (nombre, codigo, edad, sueldo, password)
            values ('$nombre', '$codigo', '$edad', '$sueldo', '$password')";

Ejecutamos la consulta slq.

$resultado = mysql_query($insertar);

Debemos confirmar si efectivamente se guardaron los datos y en caso contrario notificar que no fue posible guardarlos.

if(!$resultado){
    echo "No se guardaron datos";
} else {
    echo "<h1>DATOS GUARDADOS CON EXITO</H1>";
}

Terminamos cerrando else con una llave y PHP.

}
?>

Bien es hora de probar si funciona nuestro programa, recuerde que primero se debe crear la base de datos, luego la tabla, luego debe configurar su sitio en Dreamweaver con su servidor (si así lo prefiere, sino puede usar el bloc de notas) y listo.

Aquí les dejo una copia del programa completo sin comentarios.

<?
if(!$HTTP_POST_VARS){
?>
<table width="500" border="5">
<form action="<? $HTTP_POST_VARS ?>" method="post">
  <tr>
    <th scope="row" colspan="2" bgcolor="#000000" style="color:#FFFFFF"><H3>NUEVO USUARIO</H3></th>
  </tr>
  <tr>
    <th scope="row">Nombre</th>
    <td><input name="nombre" type="text" size="40" maxlength="50" /></td>
  </tr>
  <tr>
    <th scope="row">Codigo</th>
    <td><input name="codigo" type="text" size="40" maxlength="5" /></td>
  </tr>
  <tr>
    <th scope="row">Edad</th>
    <td><input type="text" name="edad" size="40" maxlength="2" /></td>
  </tr>
  <tr>
    <th scope="row">Sueldo</th>
    <td><input name="sueldo" type="text" value="0" size="40" maxlength="7" /></td>
  </tr>
  <tr>
    <th scope="row">Password</th>
    <td><input name="password" type="password" size="40" maxlength="10" /></td>
  </tr>
  <tr>
    <th scope="row">&nbsp;</th>
    <td><input name="" type="submit" value="Guardar Datos" /></td>
  </tr>
</form>
</table>
<?
} else {
$nombre = $HTTP_POST_VARS[nombre];
$codigo = $HTTP_POST_VARS[codigo];
$edad = $HTTP_POST_VARS[edad];
$sueldo = $HTTP_POST_VARS[sueldo];
$password = $HTTP_POST_VARS[password];

if(!$nombre || !$codigo || !$edad || $sueldo == 0 || !$password) {
    echo "Debes llenar todos los campos del formulario";
    exit;
}

$db = mysql_connect("localhost", "root", "123456") 
           or die ("No es posible conectar con localhost en este momento, inténtalo más tarde.");

mysql_select_db("colegioiprueba") or die ("No se pudo seleccionar la base datos colegioprueba, prueba más tarde");

$insertar = "insert into datos (nombre, codigo, edad, sueldo, password)
            values ('$nombre', '$codigo', '$edad', '$sueldo', '$password')";
$resultado = mysql_query($insertar);

if(!$resultado){
    echo "No se guardaron datos";
} else {
    echo "<h1>DATOS GUARDADOS CON EXITO</H1>";
}
}
?>

Decima Clase

Configuración del Sitio con Servidor de Prueba en Dreamweaver

Llegamos a la decima clase y es hora de aprender a configurar un servidor de prueba para que interprete nuestros programas de forma local (lo haremos en Dreamweaver CS5.5) y como en las dos lecciones anteriores me apoyaré con imagenes para pueda comprender mejor.

Paso No. 1 -  Seleccione la opción de menú sitio y luega haga clic en la opción Nuevo sito.



Paso No. 2 -  Ahora en la sección Sitio:
                       Nombre del Sitio:  programas
                       Carpeta del sitio local: C:\AppServ\www\programas


En este caso voy a utilizar en el nombre del sitio la palabra programas y la carpeta del sitio estará úbicada en la carpeta www que esta en la carpeta AppServ que corresponde al servidor de prueba que instalamos en la octava clase.



Paso No. 3 - Seleccione la opción Servidores y luego haga clic en +




Paso No. 4 - Ahora en la opción Básicas configure de la siguiente manera:


                       Nombre del servidor: localhost 
                       Conectar usando: Local/red
                       Carpeta del servidor: C:\AppServ\www\programas
                       URL Web: http://localhost/programas


Para finalizar con este paso haga clic en el botón Guardar.




Paso No. 5 - Quite el cheque de selección a la opción remoto y seleccione la opción De prueba, luego presione clic en el botón Guardar.




Ahora puede ver en la ventana de archivos que su sitio a quedado configurado con sus servidor de prueba, es decir que sus archivos serán guardados en la carpeta del servidor que instalamos en la octava clase.



Bien ahora estamos listos para empezar a programar en Dreamweaver, uno de las aplicaciones más excelentes para esta tarea.

viernes, 23 de marzo de 2012

Novena Clase

Bases de Datos

Durante esta clase aprenderemos como crear una base de datos y una tabla en el servidor de prueba que instalamos en la octava clase, para ello seguiremos algunos sencillos pasos (me ayudaré con imagenes para que se más facil).

Paso No. 1 - Debemos abrir el navegador (en realidad no importa cual este usando, en lo personal uso Mozilla FireFox) y en la barra de direcciones escribimos localhost y presionamos la techa ENTER.



Paso No. 2 - Haga un clic sobre el link phpMyAdmin Database Manager Version 2.10.3



Paso No. 3 - Escriba el nombre de usuario y la contraseña, si siguió las indicaciones de la octava lección el nombre de usuario es root y la contraseña es 123456 y luego presione ENTER.



Paso No. 4 - En el cuadro de texto Crear nueva base de datos, escriba el nombre de su base de datos, en mi ejemplo usaré colegioprueba y luego haga clic en el botón Crear.  De esta manera esta creada la base de datos ahora lo que queda es crear la o las tablas que necesita.



Paso No. 5 - Ahora podrá observar una sección denominada Crear nueva tabla en la base de datos colegioprueba, en el Campo nombre escriba el nombre de su tabla, para nuestro ejemplo el nombre es datos y en el campo Número de campos escriba 6, ahora haga clic en el botón Continuar.  Es necesario aclarar que en el número de campos escribimos 6 porque incluiremos los siguientes campos: IdDato, Nombre, Codigo, Edad, Sueldo, Password (en este momento los campos tienen poca o ninguna relación, pero más adelante verá como los iremos utilizando cada uno).



Paso No. 6 - Es tiempo de crear la estructura, como lo muestra la imagen encontraremos varios cuadros de texto que deberemos llenar con los datos que queremos en esta estructura, para nuestro ejemplo haremos los siguientes campos:

Campo             Tipo                  Long/Valores          Extra                            Propiedad
IdDato               INT                   4                               Autoincrement            Primaria
Nombre            VARCHAR      60
Codigo             INT                    5
Edad                INT                    4
Sueldo             DOUBLE         6,2
Password        VARCHAR      10

En el primer campo definimos en la propiedad Extra: Autoincrement porque será un dato que se irá modificando de manera automática, es decir que cuando se agregue un nuevo registro en este campo se aumentará un número y en la propiedad primaria la definimos así porque este campo será el que utilizaremos para relacionar esta tabla con otras tablas de la misma base de datos.

Bien al completar la estructura hacemos clic en el botón Grabar y habremos concluido con la creación de nuestra base de datos y tambien con nuestra primera tabla.


jueves, 22 de marzo de 2012

Octava Clase

Instalcion de AppServ

Como mencione en la primera clase para programar PHP es necesario contar con un servidor, si esta pensando programar y ya cuenta con un servidor en internet siempre será neceario tener un servidor de prueba, en mi caso utilzo la aplicación Appserv que puede ser descargada con facilidad y forma gratuita (y sobre todo legal) de http://www.appservnetwork.com/ en ésta lección yo instalaré la versión 2.5.9, pero como pueden observan la última versión disponible es la 2.5.10, bien no importa la instalación se realizará de la misma manera.

Es importante mencionar el hecho que esta aplicación incluye un administrador de bases de datos que le permitirá crear y manipular desde su navegador las bases de datos y las tablas que incluya en ellas.

Bien una vez descargada la aplicación seguiremos con las siguientes imágenes que nos darán una mejor idea de como debemos hacerlo.

 









En  novena clase aprenderemos a utilizar esta aplicación para crear bases de datos y tablas.

Septima Clase

Instrucciones de Salida

Hasta ahora hemos usado la instrucción echo para realizar salidas a pantalla, esta instrucción es bastante limitada ya que no nos permite formatear la salida.  En esta lección veremos la instrucción printf que nos da mucha más potencia.

Sentencia printf

La sintaxis es la siguiente:

<?
  printf(cadena formato, variable1, variable2...);
?>

La cadena formato indica cómo se han de representar los valores que posteriormente le indicaremos.  La principal ventaja es que además de poder formatear los valores de salida, nos permite intercalar texto entre ellos.

Ejemplo:

<html>
<head>
  <title>Ejemplo de PHP Sentencia printf</title>
</head>
<?
printf("El número dos con diferentes formatos: %d $f %.2f", 2, 2, 2);
?>
</body>
</html>

La cadena de formato puede incluir una serie de carácteres especiales que indican como formatear las variables que se incluyen en la instrucción.

A continuación una serie de elementos con su respectivo tipo de variable.

Elemento Tipo de Variabale
%s Cadena de carácteres
%d Número sin decimales
%f Número con decimales
%c Carácter ASCII

Aunque existen otros tipos, estos son los más importantes.

<html>
<head>
  <title>Ejemplo de PHP Sentencia printf</title>
</head>
<?
$var = "texto";
$num = 3;
printf("Puede fácilmente intercalar <b>%s</b> con números <b>%d</b> <br>",$var,$num);
printf("<table border=1 cellpadding=20>");
for($i=0;$i<10;$i++) {
  printf("<tr><td>%10.d</td></tr>",$i);
}
printf("</table>");
?>
</body>
</html>

Manejo de Cadenas

Dado que en el uso del lenguaje PHP el tratamiento de cadenas es muy importante, existen bastantes funciones para el manejo de cadenas, a continuación explicare las más usadas.

  • strlen(cadena)  Nos devuelve el número de carácteres de una cadena.
  • split(separator, cadena)  Divide una cadena en varias usando un carácter separador.
  • sprintf(cadena de formato, var1, var2...)  Formatea una cadena de texto al igual que printf, pero el resultado es devuelto como una cadena.
  • substr(cadena, inicio, longitud)  Devuelve una subcadena de otra, empezando por inicio y hasta el valor indicado en longitud.
  • chop(cadena)  Elimina los saltos de línea y espacios finales de uan cadena, muy utiles cuando trabajamos con bases de datos o archivos de texto que han sido manipulados por usuarios inexpertos.
  • strpos(cadena1, cadena2)  Busca la cadena 2 dentro de la cadena 1 indicándonos la posición en la que se encuentra, por ejemplo si la cadena es: Juan Carlos Lima Cruz y buscamos la cadena Lima nos indicará la posición exacta de esta cadena en la primera.
  • str_replace(cadena1, cadena2, texto)  Reemplaza la cadena1 por la cadena 2 en el texo.
Ejemplo:
 
<html>
<head>
  <title>Ejemplo de PHP Sentencia printf</title>
</head>
<?
echo strlen("12345")."<br>";
 
$palabras = split(" ","Esto es una prueba");
for($i=0;$palabras[$i];$i++) {
  echo $palabras[$i]."<br>";
}
 
$resultado = sprintf("8x5 = %d <br>",8*5);
echo $resultado."<br>";
 
echo substr("Devuelve una subcadena de otra",9,3),"<br><br>"; 
 
echo str_replace("verde","rojo","un pez de color verde, como verde es la hierba.")."<br>";
?>
</body>
</html>
 
Vamos ahora prueba estos programas y comparte tus experiencias con otros pequeños programadores en la sección de comentarios de este blog.

Sexta Clase

Bucles o Ciclos Repetitivos

Los bucles o ciclos repetitivos nos permiten repetir conjuntos de instrucciones, es decir repetir la ejecución de un conjunto de instrucciones mientras se cumpla una condición.  (Ver ejemplos de Array en la tercera clase para ampliar las opciones de utilidad que tienen los bucles)

Sentencia while

En esta sentencia se reiterará la ejecución de las instrucciones que están dentro del while mientras la condición sea cierta. La sintaxis es la siguiente:

<?
while(condición) {
  instrucciones a ejecutar
}
?>

Ejemplo:

<html>
<head>
  <title>Ejemplo de PHP Sentencia while</title>
</head>
<?
$i  = 0;
while($i < 10) {
  echo "El valor de i es: ".$i."<br>";
  $i++;
}
?>
</body>
</html>

Sentencia for

En esta sentencia tambien se reiterará la ejecución de las instrucciones que están dentro de for mientras la condición sea cierta.  La sintaxis de for es:

<?
for(inicial; condición; ejecutar en iteración) {
  instrucciones a ejecutar
}
?>

En el siguiente ejemplo el valor de $i al comienzo es 0, durante la ejecución del bucle se va sumando 1 al valor de $i de manera que cuando $i vale 10 ya no se cumple la condición y se termina la ejecución del bucle.

<html>
<head>
  <title>Ejemplo de PHP Sentencia while</title>
</head>
<?
for($i=0; $i<10; $i++) {
  echo "El valor de i es: $i <br>";
}
?>
</body>
</html>

Como observamos en el ejemplo anterior la instrucción for es la instrucción de bucles más completa.  En una sola instrucción nos permite controlar todo el funcionamiento del bucle. El primer parámetro de for es ejecutado la primera vez y sirve para inicializar la variable del bucle, el segundo parámetro indica la condición que se debe cumplir para que el bucle siga ejecutándose y el tercer parámetro es una instrucción que se ejecuta al final de cada iteración (ciclo) y sirve para modificar el valor de la variable de iteración.

Quinta Clase

Instrucciones Condicionales en PHP

Las sentencias condicionales nos permiten ejecutar o no unas ciertas instrucciones dependiendo del resultado de evaluar una condición.  Las más frecuentes son la función if y la función switch.

Si ha seguido este material ya estará familiarizado con las instrucción condicional if que he utilizado en muchos de los ejemplos, a continuación les dejo la sintaxis de la misma.

Sentencia if...else

<?php
if(condición) {
  Sentencias a ejecutar cuando la condición es cierta (verdadera)
} else {
  Sentencias a ejecutar cuando la condición es falsa
}

La sentencia if ejecuta una serie de instrucciones u utras dependiendo de la condición que le pongamos.  Probablemente sea la instrucción más importante en cualquier lenguaje de programación.  En el siguiente ejemplo la condición no es verdadera por lo que se ejecuta la parte de código correspondiente al else.

<html>
<head>
  <title>Ejemplo de PHP Condicional if </title>
</head>
<?
$a = 8;
$b = 3;
if($a < $b) {
  echo "$a es menor que $b";
} else {
  echo "$a no es menor que $b";
}
?>
</body>
</html>


Sentencia Condional switch


Con la sentencia condicional switch podemos ejecutar unas u otras instrucciones dependiendo del valor de una variable, en el ejemplo siguiente, dependiendo del valor de la variable $posicion se ejecuta el bloque 1 cuando el valor es "arriba", el bloque 2 cuando el valor es "abajo" y el bloque 3 si no es ninguno de los valores anteriores.


<html>
<head>
  <title>Ejemplo de PHP Condicional switch</title>
</head>
<?
$posicion = "arriba";
switch($posicion) {
  case "arriba": //Bloque 1
    echo "La variable contiene el valor arriba";
    break;
  case "abajo": //Bloque 2
    echo "La variable contiene el valor abajo";
    break;
  default:  //Bloque 3
    echo "La variable contiene otro valor distinto de arriba y abajo";
}

?>
</body>
</html>


En el siguiente programa se evalua la variable mes, a esta variable se le asignará el valor numérico que devolvera la función date() y dependiendo del valor, a la variable mes_texto se le asignará el mes en texto que corresponda, por ejemplo si el valor es 01, la variable mes_texto contendrá el valor enero.


<html>
<head>
  <title>Ejemplo de PHP Condicional switch</title>
</head>
<?
$mes = date('m');
switch($mes) {
  case "01":
    $mes_texto = "enero";
    break;
  case "02":
    $mes_texto = "febrero";
    break;
  case "03":
    $mes_texto = "marzo";
    break;
  case "04":
    $mes_texto = "abril";
    break;
  case "05":
    $mes_texto = "mayo";
    break;
  case "06":
    $mes_texto = "junio";
    break;
  case "07":
    $mes_texto = "julio";
    break;
  case "08":
    $mes_texto = "agosto";
    break;
  case "09":
    $mes_texto = "septiembre";
    break;
  case "10":
    $mes_texto = "octubre";
    break;
  case "11":
    $mes_texto = "noviembre";
    break;
  case "12":
    $mes_texto = "diciembre";
    break;
}
echo "Estamos en: $mes_texto";

?>
</body>
</html>