Sunteți pe pagina 1din 42

Programacin Web/AppServ-PHP-MySQL

2012

Qu es PHP? PHP (acrnimo de "PHP: Hypertext Preprocessor") es un lenguaje de "cdigo abierto" interpretado, de alto nivel, embebido en pginas HTML y ejecutado en el servidor. Puede apreciarse que no es lo mismo que un script escrito en otro lenguaje de programacin como Perl o C -- En vez de escribir un programa con muchos comandos para crear una salida en HTML, escribimos el cdigo HTML con cierto cdigo PHP embebido (incluido) en el mismo, que producir cierta salida (en nuestro ejemplo, producir un texto). El cdigo PHP se incluye entre etiquetas especiales de comienzo y final que nos permitirn entrar y salir del modo PHP. Estas etiquetas especiales de comienzo y final??, esto nos lleva a que hay 4 formas de salir de HTML y entrar en modo PHP, las cuales son las siguientes: 1. <?php echo("Forma 1"); ?> 2. <? echo ("forma2"); ?> 3. <script language="php"> echo ("muchos editores (como FrontPage) no aceptan instrucciones de procesado"); </script> 4. <% echo ("Etiquetas de tipo ASP"); %> Lo que distingue a PHP de la tecnologa Javascript, la cual se ejecuta en la mquina cliente, es que el cdigo PHP es ejecutado en el servidor. Si tuvisemos un script similar al de nuestro ejemplo en nuestro servidor, el cliente solamente recibira el resultado de su ejecucin en el servidor, sin ninguna posibilidad de determinar qu cdigo ha producido el resultado recibido. El servidor web puede ser incluso configurado para que procese todos los archivos HTML con PHP. Lo mejor de usar PHP es que es extremadamente simple para el principiante, pero a su vez, ofrece muchas caractersticas avanzadas para los programadores profesionales. No sienta miedo de leer la larga lista de caractersticas de PHP, en poco tiempo podr empezar a escribir sus primeros scripts. Qu se puede hacer con PHP? PHP puede hacer cualquier cosa que se pueda hacer con un script CGI, como procesar la informacin de formularios, generar pginas con contenidos dinmicos, o enviar y recibir cookies. Y esto no es todo, se puede hacer mucho ms. Existen tres campos en los que se usan scripts escritos en PHP. Scripts del lado del servidor. Este es el campo ms tradicional y el principal foco de trabajo. Se necesitan tres cosas para que esto funcione. El intrprete PHP (CGI mdulo), un servidor web y un navegador. Es necesario correr el servidor web con PHP instalado. El resultado del programa PHP se puede obtener a travs del navegador, conectndose con el servidor web. Scripts en la lnea de comandos. Puede crear un script PHP y correrlo sin ningn servidor web o navegador. Solamente necesita el intrprete PHP para usarlo de esta manera. Este tipo de uso es ideal para scripts ejecutados regularmente desde cron (en *nix o Linux) o el Planificador de tareas (en Windows). Estos scripts tambin pueden ser usados para tareas simples de procesamiento de texto.

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL

2012

Escribir aplicaciones de interfaz grfica. Probablemente PHP no sea el lenguaje ms apropiado para escribir aplicaciones grficas, pero si conoce bien PHP, y quisiera utilizar algunas caractersticas avanzadas en programas clientes, puede utilizar PHP-GTK para escribir dichos programas. Tambin es posible escribir aplicaciones independientes de una plataforma. PHPGTK es una extensin de PHP, no disponible en la distribucin principal. PHP puede ser utilizado en cualquiera de los principales sistemas operativos del mercado, incluyendo Linux, muchas variantes Unix (incluyendo HP-UX, Solaris y OpenBSD), Microsoft Windows, Mac OS X, RISC OS y probablemente alguno ms. PHP soporta la mayora de servidores web de hoy en da, incluyendo Apache, Microsoft Internet Information Server, Personal Web Server, Netscape e iPlanet, Oreilly Website Pro server, Caudium, Xitami, OmniHTTPd y muchos otros. PHP tiene mdulos disponibles para la mayora de los servidores, para aquellos otros que soporten el estndar CGI, PHP puede usarse como procesador CGI. De modo que, con PHP tiene la libertad de elegir el sistema operativo y el servidor de su gusto. Tambin tiene la posibilidad de usar programacin procedimental o programacin orientada a objetos. Aunque no todas las caractersticas estndar de la programacin orientada a objetos estn implementadas en la versin actual de PHP, muchas bibliotecas y aplicaciones grandes (incluyendo la biblioteca PEAR) estn escritas ntegramente usando programacin orientada a objetos. Con PHP no se encuentra limitado a resultados en HTML. Entre las habilidades de PHP se incluyen: creacin de imgenes, archivos PDF y pelculas Flash (usando libswf y Ming) sobre la marcha. Tambin puede presentar otros resultados, como XHTM y archivos XML. PHP puede autogenerar estos archivos y almacenarlos en el sistema de archivos en vez de presentarlos en la pantalla. Quizs la caracterstica ms potente y destacable de PHP es su soporte para una gran cantidad de bases de datos. Escribir un interfaz va web para una base de datos es una tarea simple con PHP. Las siguientes bases de datos estn soportadas actualmente:

AppServ AppServ, al igual que otros paquetes instala de forma automtica lo necesario para el desarrollo Web, a mi es el que ms me gusta porque desarrollo en varios lenguajes y es el nico que no me ha dado problemas en correr IIS para .Net y ASP y corre por separado el PHP, sin dejar de andar lo otro, adems es el que configura todo dejndolo casi idntico a como encontraremos nuestro entorno en el host que colguemos finalmente las aplicaciones, esa es mi visin personal de AppServ. Que es AppServ? Es un software que permite la instalacin en nuestro entorno Windows, de los siguientes paquetes: Manejador de base de datos phpMyAdmin (versin 2.5.10) Apache 2.2.8 PHP 5.2.6 MySQL 5.0.51b phpMyAdmin-2.10.3
Ingeniera Estadstica e Informtica -UNAP Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL

2012

Esto es lo que incluye el actual paquete AppServ 2.5.10, es obvio pero vale la pena recordar que como est formado por 4 paquetes (apache, php, mysql, phpmyadmin), cada uno sigue lanzando nuevas versiones, que podemos instalar por separado o esperar la prxima versin de AppServ. Por lo general no debemos apresurarnos ya que nuestro PC lo usamos de entorno de desarrollo y testeo de las aplicaciones. Donde bajamos AppServ, Gratis? Este paquete es gratuito, y puede ser descargado desde su Web Oficial y en espaol: http://www.appservnetwork.com/index.php?newlang=spanish Instalacin de AppServ Una vez descargado el AppsServ, basta con un doble click en el instalador que ha descargado de la Web y luego hacer siguiente, siguiente, varias veces hasta que queda instalado.

Para iniciar con la instalacin siga los siguientes pasos: 1) Damos doble click en el icono del instalador que se ha descargado. Aparece la imagen que vemos debajo, la versin vara de acuerdo a las a las ultimas actuliazaciones de PHP, MySQL y Apache. Debemos dar, siguiente (next).

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL

2012

2) Seguidamente aparece el acuerdo de licencia, ah debemos dar conformidad y hacer click en I Agree.

3) Aparece la ruta de instalacin por defecto, o caso contrario debemos elegir en cul de las unidades del disco duro y en que carpeta se desea instalar el AppServ, para efectos de instalacin utilizaremos el directorio recomendado por defecto, o sea: c:\AppServ, como muestra la imagen, y hacer click en el botn Next.

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL

2012

4) En el siguiente formulario se debe elegir los componentes que se desea instalar los cuales aparecen por defecto marcados cuatro elementos disponibles (apache, mysql, php, phpmyadmin) se puede desmarcar alguno, se sugiere instalar todos los componentes en razn a que, utilizaremos ms adelante para las demostraciones correspondientes, hacer click en Next.

5) La siguiente ventana nos muestra tres cuadros de texto, el primero para indicar el nombre del servidor, el segundo el email del administrador del sistema, el tercero el puerto que por defecto utilizar el Apache, en este caso por defecto es 80.

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL

2012

6) El siguiente formulario muestra la configuracin de MySQL, donde se debe asignar un mismo password en los dos recuadros o sea con la confirmacin, para ejemplificar utilizaremos como contrasea root, seguidamente hacer click en Intall.

El password que se ha asignado se utilizar ms adelante para el manejo de base de datos y la conexin en PHP a MySQL. Probablemente aparecer el siguiente mensaje de seguridad que es por el Firewall de Windows, en este caso hacer click en desbloquear.

7) finalmente hacer click en Finish para terminar la instalacin, aparece dos casilleros activados que se debe dejar por defecto para iniciar la ejecucin del Server Apache y el servidor de base de datos MySQL.

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL

2012

Prueba del Servidor Local Para la prueba del servidor local se debe escribir localhost o el nombre del IP en cualquier navegador ya sea Internet Explorer, Mosilla FireFox, etc. Para efectos de demostracin probaremos con las dos alternativas: a) Localhost (Servidor local).

b) Para determinar el IP de la Pc, siga los siguientes pasos:

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL 1) Presiona las teclas Windows + R (o Inicio y ejecutar) y escribir cmd (Comando).

2012

2) Luego parece la siguiente venta a modo consola o comandos y escribir ipconfig

Al escribir ipconfig y presionar enter, nos muestra la direccin IP, en este caso 192.168.1.3, as como tambin, la Mscara de Red y la Puerta de Enlace.

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL La estructura del AppServer es como sigue:

2012

Para probar nuestra primera aplicacin PHP debemos escribir en cualquier editor de texto el siguiente cdigo y guardarlo en la en una carpeta dentro de la carpeta www (Directorio raz web), en este caso crearemos la carpeta aguilar y dentro de esta carpeta guardaremos el archivo test.php con el siguiente contenido, se sugiere utilizar el Bloc de Notas.

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL

2012

Para mostrar la primera prueba se debe escribir http://localhost/aguilar/test.php en la venta de direcciones, finalmente ya esta lista nuestro servidor local y php.

PROGRAMACION CON PHP En esta capitulo abordar temas de programacin porque ya el servidor y el modulo de PHP, estn instalas y configuradas, en ese sentido podemos hacer programas PHP, as, como se muestra en el siguiente ejemplo: Primera pgina con PHP Comience por crear un archivo llamado hola.php y colocarle en el "directorio raz" (C:\AppServ\www\aguilar) con el siguiente contenido: <html> <head> <title>Ejemplo de PHP</title> </head> <body> <?php echo "Hola Aguilar"; ?> </body> </html> Utilice su navegador web para acceder al archivo, con la URL terminando en "/hola.php". Debe escribir as como sigue http://localhost/aguilar/hola.php o http://192.168.1.3/aguilar/hola.php pero esto depende de la configuracin de su servidor web. Tambin puede ver las directivas DocumentRoot y ServerName en la configuracin de su

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL

2012

servidor (en Apache, esto es httpd.conf). Si todo est configurado correctamente, el archivo ser analizado por PHP y el siguiente contenido aparecer en su navegador: Note que esto no es como los scripts de CGI. El archivo no necesita ninguna clase especial de permisos para ser ejecutado. Piense en ellos como si fueran archivos HTML con un conjunto muy especial de etiquetas disponibles, y que hacen muchas cosas interesantes. Este programa es extremadamente simple, y no necesita usar PHP para crear una pgina como sta. Todo lo que hace es mostrar: Hola Mundo usando la sentencia echo(). Para verificar qu clase de navegador web utiliza. Para hacerlo, vamos a consultar la informacin que el navegador nos enva como parte de su peticin HTTP. Esta informacin es guardada en una variable. Las variables siempre comienzan con un signo de dlar ("$") en PHP. La variable que vamos a utilizar en esta situacin es $_SERVER["HTTP_USER_AGENT"]. <?php echo $_SERVER["HTTP_USER_AGENT"]; ?> Tendremos como resultado: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727) SEPARACION DE INSTRUCCIONES En PHP las instrucciones se separan igual que en C o Pascal terminando cada sentencia con un punto y coma. La etiqueta de cierre ( ?> ) tambin implica el fin de la sentencia, as lo siguiente es equivalente: <?php echo "Esto es una prueba"; ?> <?php echo "Esto es una prueba" ?> COMENTARIOS EN PHP PHP soporta comentarios tipo 'C', 'C++' y Shell de Unix. Por ejemplo: <?php echo Prueba"; // Comentario tipo C++ para una lnea ?> <?php /* Esto es un comentario multilnea otra lnea ms de comentario */ echo "Esto es an otra prueba"; ?> <?php echo "Prueba"; # Comentario tipo shell de Unix ?> VARIABLES Las variables en PHP se pueden declarar al igual que en cualquier lenguaje de programacin. PHP soporta ocho tipos primitivos. Cuatro tipos escalares: 1. boolean

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL 2. integer 3. float (nmero de punto flotante, tambin conocido como double) 4. string Dos tipos compuestos: 5. array 6. object Y finalmente dos tipos especiales: 7. resource 8. NULL

2012

En PHP las variables se representan como un signo de pesos seguido por el nombre de la variable. El nombre de la variable es sensible a minsculas y maysculas. $var = "Santana"; $Var = "Pedro"; echo "$var, $Var"; // produce la salida Santana, Pedro" VARIABLES VARIABLES A veces es conveniente tener nombres de variables variables. Dicho de otro modo, son nombres de variables que se pueden establecer y usar dinmicamente. Una variable normal se establece con una sentencia como: $a = "Hola"; Una variable variable toma el valor de una variable y lo trata como el nombre de una variable. En el ejemplo anterior, Hola, se puede usar como el nombre de una variable utilizando dos signos de peso. p.ej. $$a = "mundo"; Probemos las siguientes sentencias: echo "$a ${$a}"; echo "$a $Hola"; Los dos no regresarn Hola mundo TIPOS DE DATOS ENTEROS Los enteros se pueden especificar usando una de las siguientes sintaxis: $a = 1234; # nmero decimal $a = -123; # un nmero negativo $a = 0123; # nmero octal (equivalente al 83 decimal) $a = 0x12; # nmero hexadecimal (equivalente al 18 decimal) NUMEROS ENTEROS FLOTANTES Los nmeros en punto flotante ("double") se pueden especificar utilizando cualquiera de las siguientes sintaxis:

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL $a = 1.234; $a = 1.2e3; CADENAS

2012

El nico operador de cadenas que existen es el de concatenacin, el punto. Pero no se preocupen, PHP dispone de toda una gama de funciones que nos permitirn trabajar cmodamente con las cadenas. $a = "Hola"; $b = $a . "Mundo"; // Ahora $b contiene "Hola Mundo" En este punto hay que hacer una distincin, la interpretacin que hace PHP de las simples y dobles comillas. En el segundo caso PHP interpretar el contenido de la cadena. $a = "Mundo"; echo = 'Hola $a'; //Esto escribir "Hola $a" echo = "Hola $a"; //Esto escribir "Hola Mundo" Si la cadena est encerrada entre dobles comillas ("), las variables que estn dentro de la cadena sern expandidas (sujetas a ciertas limitaciones de interpretacin). Como en C y en Perl, el carcter de barra invertida ("\") se puede usar para especificar caracteres especiales: CARACTERES PROTEGIDOS \n Nueva lnea \r Retorno de carro \t Tabulacin horizontal \\ Barra invertida \$ Signo del dlar \" Comillas dobles \[0-7]{1,3} La secuencia de caracteres que coincida con la expresin regular es un carcter en notacin octal \x[0-9A-Fa La secuencia de caracteres que coincida con la expresin regular es f]{1,2} un carcter en notacin hexadecimal OPERADORES DE COMPARACION $a < $b $a menor que $b $a > $b $a mayor que $b $a <= $b $a menor o igual que $b $a >= $b $a mayor o igual que $b $a == $b $a igual que $b $a != $b $a distinto que $b OPERADORES LOGICOS $a AND $b Verdadero si ambos son verdadero $a && $b Verdadero si ambos son verdadero $a OR $b Verdadero si alguno de los dos es verdadero $a !! $b Verdadero si alguno de los dos es verdadero

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL $a XOR $b Verdadero si slo uno de los dos es verdadero !$a Verdadero si $a es falso

2012

OPERADORES DE ASIGNACIN $a = $b Asigna a $a el contenido de $b $a += $b Le suma a $b a $a $a -= $b Le resta a $b a $a $a *= $b Multiplica $a por $b y lo asigna a $a $a /= $b Divide $a por $b y lo asigna a $a $a .= $b Aade la cadena $b a la cadena $a Para demostrar el uso de algunos operadores mostrar algunos ejemplos en PHP: El siguiente programa calcula el salario de un trabajador del Municipio de Ilave con un impuesto de 20%. <html> <head> <title>ejemplo de variables</title> </head> <body> <?php $SalarioTrabajador=3500; $impuesto=20; $SueldoReal=$SalarioTrabajador-(($SalarioTrabajador/100)*$impuesto); echo "Sueldo del Trabajador sin impuesto:$SalarioTrabajador S/."; echo "<br> Con el impuesto:$SueldoReal S/."; ?> </body> </html> Resultado del Ejemplo:

Programa en PHP que calcula el rea de un triangulo cuya frmula es a=(b*h)/2 <html> <title>Area de un Tringulo</title> </head> <body> <?php $Base=20; $Altura=16; $Area=($Base*$Altura)/2;

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL echo "El Area del Triangulo es: $Area"; ?> </body> </html> Resultado

2012

Programa que dados 2 nmeros calcule la suma, resta, multiplicacin, divisin, y modulo. <html > <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Clculo de Suma, Resta, Multipicacin, Divisin y Mdulo</title> </head> <body> <?php $Num1=8; $Num2=5; $Respuesta1=$Num1+$Num2; $Respuesta2=$Num1-$Num2; $Respuesta3=$Num1*$Num2; $Respuesta4=$Num1/$Num2; $Respuesta5=$Num1%$Num2; echo "La Suma de $Num1 + $Num2 es:$Respuesta1"; echo "<br> La Resta de $Num1 - $Num2 es:$Respuesta2"; echo "<br> La Multiplicacin de $Num1 * $Num2 es:$Respuesta3"; echo "<br> La Divisin de $Num1 / $Num2 es:$Respuesta4"; echo "<br> El Modulo de $Num1 % $Num2 es:$Respuesta5"; echo "<br> Resuelto por: <u>Aguilar Quenta Yhony</u>"; ?> </body> </html> Resultado

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL

2012

CONSTANTES PHP define varias constantes y proporciona un mecanismo para definir ms en tiempo de ejecucin. Las constantes son como las variables, salvo por las dos circunstancias de que las constantes deben ser definidas usando la funcin define(), y que no pueden ser redefinidas ms tarde con otro valor. Las constantes predefinidas (siempre disponibles) son: __FILE__ El nombre del archivo de comandos que est siendo interpretado actualmente. Si se usa dentro de un archivo que ha sido incluido o requerido, entonces se da el nombre del archivo incluido, y no el nombre del archivo padre. __LINE__ El nmero de lnea dentro del archivo que est siendo interpretado en la actualidad. Si se usa dentro de un archivo incluido o requerido, entonces se da la posicin dentro del archivo incluido. PHP_VERSION La cadena que representa la versin del analizador de PHP en uso en la actualidad. PHP_OS El nombre del sistema operativo en el cul se ejecuta el analizador PHP. TRUE Valor verdadero. FALSE Valor falso. E_ERROR Denota un error distinto de un error de interpretacin del cual no es posible recuperarse. E_WARNING Denota una condicin donde PHP reconoce que hay algo errneo, pero continuar de todas formas; pueden ser capturados por el propio archivo de comandos. E_PARSE El intrprete encontr sintaxis invlida en el archivo de comandos. La recuperacin no es posible. E_NOTICE Ocurri algo que pudo ser o no un error. La ejecucin contina. Los ejemplos incluyen usar una cadena sin comillas como un ndice "hash", o acceder a una variable que no ha sido inicializada. Las constantes E_* se usan tpicamente con la funcin error_reporting() para configurar el nivel de informes de error. Se pueden definir constantes adicionales usando la funcin define(). Ntese que son constantes, con una constante slo se pueden representar datos escalares vlidos.

Veremos un ejemplo del uso de estas constantes: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL <title>Constantes</title> </head> <body> <?php function report_error($Archivo, $linea, $mensaje) { echo "Un error Ocurri en $Archivo en la lnea $linea: $mensaje."; } report_error(_FILE_,_LINE_,"Hay Problemas!"); ?> </body> </html> Ahora veremos como definir nuestras propias constantes: <?php define("CONSTANTE", "Hola Aguilar."); echo CONSTANTE; ?>

2012

SENTENCIAS DE CONTROL Las sentencias de control permiten ejecutar bloque de cdigos dependiendo de unas condiciones. Para PHP el 0 es equivalente a Falso y cualquier otro nmero es Verdadero. if...else La sentencia if...else permite ejecutar un bloque de instrucciones si la condicin es Verdadera y otro bloque de instrucciones si sta es Falsa. Es importante tener en cuenta que la condicin que evaluemos ha de estar encerrada entre parntesis (esto es aplicable a todas la sentencias de control). if (condicin) { Este bloque se ejecuta si la condicin es VERDADERA } else { Este boque se ejecuta si la condicin es FALSA } Existe una forma sencilla de usar la sentencia IF cuando no tenemos que usar el else y solo tenemos que ejecutar una lnea de cdigo. if ($a > 4) echo "$a es mayor que 4"; Ahora realizaremos un ejemplo con mas con IF el cual consistir en un pequeo juego de verdades el cual necesitar de dos archivos verdad.htm y verdad.php, en este ejemplo se utilizar un formulario, lo cual aun no hemos visto, se usa solo para muestra, por el momento no es muy importante conocer esa teora sino un poco ms adelante. verdad.htm <html> <head> <title>Verdades</title> <style type="text/css"> .blanc { color: #FFF;
Ingeniera Estadstica e Informtica -UNAP Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL } </style> </head> <body> <table width="52%" cellspacing="0" cellpadding="0"> <tr> <td bgcolor="#B7B7FF"><form method="get" action="verdad.php"> <div align="center"> <p class="blanc"><strong>Pienza un Nmero del 1 al 20</strong></p> <p> <input name="adivina" type="text" /> <br /> <br /> <input type="submit" name="Veamos" > </p> </div> </form></td> </tr> </table> </body> </html> verdad.php <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Verdad</title> </head> <body> <table width="66%" cellspacing="0" cellpadding="0"> <tr> <td bgcolor="#999999"> <?php srand((double)microtime()*1000000); $numero=rand(1,20); if($adivina > $numero) { echo "Es muy grande"; echo "<br> Y pens el nmero $numero. Lo siento no "; } if($adivina < $numero){ echo "Es muy Pequeo"; echo "<br> Y pens el nmero $numero. Lo siento no ";} ?> GANASTE</td> </tr> </table> </body> </html>

2012

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL if...elseif...else La sentencia IF...ELSEIF...ELSE permite ejecutar varias condiciones en cascada. Para este caso veremos un ejemplo, en el que utilizaremos los operadores lgicos.

2012

<?php if ($nombre=="Yhony"){ echo "T no tienes nombre"; } elseif (($nombre=="yhony") OR ($nombre=="Yhony")) { echo "Tu nombre es" . $nombre; } else { echo "Tu nombre es " . $nombre; } ?> switch...case...default Una alternativa a if...elseif...else, es la sentencia switch, la cual evala y compara cada expresin de la sentencia case con la expresin que evaluamos, si llegamos al final de la lista de case y encuentra una condicin Verdadera, ejecuta el cdigo de bloque que haya en default. Si encontramos una condicin verdadera debemos ejecutar un break para que la sentencia switch no siga buscando en la lista de case. Veamos un ejemplo. <?php switch ($dia) { case "Lunes": echo "Hoy es Lunes"; break; case "Martes": echo "Hoy es Martes"; break; case "Miercoles": echo "Hoy es Miercoles"; break; case "Jueves": echo "Hoy es Jueves"; break; case "Viernes": echo "Hoy es Viernes"; break; case "Sbado": echo "Hoy es Sbado"; break; case "Domingo": echo "Hoy es Domingo"; break; default:

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL echo "Esa cadena no corresponde a ningn da de la semana"; } ?> while La sentencia while ejecuta un bloque de cdigo mientras se cumpla una determinada condicin. <?php $num = 1; while ($num < 9) { echo $num; $num++ ; } ?> Podemos romper un ciclo while utilizando la sentencia break. <?php $num=1; while($num <9){ echo $num; if($num==5){ echo "Aqu se rompe la cadena \n";//Una vez que llega al Nmero 5 la cadena se rompe. breack; } $num++; } ?>

2012

do...while Esta sentencia es similar a while, salvo que con esta sentencia primero ejecutamos el bloque de cdigo y despus se evala la condicin, por lo que el bloque de cdigo se ejecuta siempre al menos una vez. <?php $num = 1; do { echo $num; if ($num == 6) { echo "Aqu nos salimos \n"; //en el numero 6 se corta no llega hasta el 9 break; } $num++; } while ($num < 9); ?>

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL

2012

for El ciclo for no es estrictamente necesario, cualquier ciclo for puede ser sustituido fcilmente por otro while. Sin embargo, el ciclo for resulta muy til cuando debemos ejecutar un bloque de cdigo a condicin de que una variable se encuentre entre un valor mnimo y otro mximo. El ciclo for tambin se puede romper mediante la sentencia break. <?php for($num = 1;$num <=8;$num++){ echo"$num"; if($num==4){ echo "<u>Aqui nos salimos \n</u>"; breack; } } ?> A continuacin muestro las 4 formas en que se puede usar el ciclo for. Ejemplo N1 for ($i = 1; $i <= 10; $i++) { print $i; } Ejemplo N2 <?php for ($i=1;;$i+2)//Aumuenta +2 al numero designado. { if ($i > 5) { break; } } print $i; ?> Ejemplo N3 $i = 1; for (;;) { if ($i > 10) { break; } print $i; $i++; } Ejemplo N4 for ($i = 1; $i <= 10; print $i, $i++) ; Hay que realizar los siguientes programas con ciclos. Imprima los nmeros del 1 al 100 for ($i = 1; $i <= 100; print $i."<br>", $i++) ; Imprima los nmeros pares del 1 al 100 for ($i = 2; $i <= 100; print $i."<br>", $i=$i+2) ;

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL

2012

Un programa que le des un nmero y obtenga su tabla de multiplicar (tablas.php) tablas.php <?php $numero=4; for ($i=1; $i<=10; $i++) { echo $i." x ".$numero." = ".$i*$numero."<br>"; } ?> VECTORES (TABLAS) Las tablas (o array en ingls), son muy importantes en PHP, ya que generalmente, las funciones que devuelven varios valores, como las funciones ligadas a las bases de datos, lo hacen en forma de tabla. En PHP disponemos de dos tipos de tablas. El primero sera el clsico, utilizando ndices: <?php $ciudad[1]="Ilave"; $ciudad[2]="Puno"; $ciudad[3]="Juliaca"; $ciudad[4]="Tacna"; $ciudad[5]="Arequipa"; echo "Y vivo en" . $ciudad[1]. "<br>\n"; ?> Respuesta Y vivo en Ilave Esta es una forma de asignar elementos a una tabla, pero una forma ms formal es utilizando la funcin array <?php $ciudad=array("Ilave", "Puno", "Juliaca", "Tacna"); $numelementos=count($ciudad); for($i=0;$i<$numelementos;$i++) { echo "<br> La Ciudad $i es $ciudad[$i] \n "; } ?> Si no se especifica, el primer ndice es el cero, pero podemos utilizar el operador => para especificar el ndice inicial. $ciudad = array(1=>"Pars", "Roma", "Sevilla", "Londres"); Un segundo tipo, son las tablas asociativas, en las cules a cada elemento se le asigna un valor (key) para acceder a l. Para entenderlo, que mejor que un ejemplo, supongamos que tenemos una tabla en al que cada elemento almacena el nmero de visitas a nuestra web por cada da de la semana.

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL

2012

Ahora bien, recorrer una tabla y mostrar su contenido es sencillo utilizando los ndices, pero cmo hacerlo en las tablas asociativas?. La manipulacin de las tabas asociativas se a hace travs de funciones que actan sobre un puntero interno que indica la posicin. Por defecto, el puntero se sita en el primer elemento aadido en la tabla, hasta que es movido por una funcin: current - devuelve el valor del elemento que indica el puntero pos - realiza la misma funcin que current reset - mueve el puntero al primer elemento de la tabla end - mueve el puntero al ltimo elemento de la tabla next - mueve el puntero al elemento siguiente prev - mueve el puntero al elemento anterior count - devuelve el nmero de elementos de una tabla. Veamos un ejemplo de las funciones anteriores: <?php $semana = array("lunes", "martes", "mircoles", "jueves", "viernes", "sbado", "domingo"); echo count($semana); //7 //situamos el puntero en el primer elemento reset($semana); echo current($semana); //lunes next($semana); echo pos($semana); //martes end($semana) echo pos($semana); //domingo prev($semana); echo current($semana); //sbado ?> Recorrer una tabla con las funciones anteriores se hace un poco enredoso, para ello se recomienda utilizar la funcin each(). <?php $visitas = array("lunes"=>200, "martes"=>186, "mircoles"=>190, "jueves"=>175); reset($visitas); while (list($clave, $valor) = each($visitas)) { echo "el da $clave ha tenido $valor visitas<BR>"; } ?> La funcin each() devuelve el valor del elemento actual, en este caso, el valor del elemento actual y su clave, y desplaza el puntero al siguiente, cuando llega al final devuelve falso, y termina el bucle while(). Tablas multidimensionales Las tablas multidimensionales son simplemente tablas en las cuales cada elemento es a su vez otra tabla.

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL

2012

<?php $calendario[]=array(1,"Enero",31); $calendario[]=array(2,"Febrero",29); $calendario[]=array(3,"Marzo",30); $calendario[]=array(4,"Abril",31); $calendario[]=array(5,"Mayo",30); $calendario[]=array(6,"Junio",31); $calendario[]=array(7,"Julio",30); $calendario[]=array(8,"Agosto",31); $calendario[]=array(9,"Setiembre",31); $calendario[]=array(10,"Octubre",30); $calendario[]=array(11,"Noviembre",30); $calendario[]=array(12,"Diciembre",31); while(list($clave,$valor)=each($calendario)) { $cadena=$valor[1]; $cadena.=" es el mes nmero".$valor[0]; $cadena.=" y tiene".$valor[2]." das<br>"; echo $cadena; } ?> La funcin list() es ms bien un operador de asignacin, lo que hace es asignar valores a unas lista de variables. En este caso los valores son extrados de una tabla por la funcin each(). FORMULARIOS Los Formularios no forman parte de PHP, sino del lenguaje estndar de Internet, HTML, pero como stos van a aparecer muchas veces durante el curso, vamos a dedicar esta algunas lneas a ellos. Todo formulario comienza con la etiqueta <FORM ACTION="lo_que_sea.php" METHOD="post/get">. Con ACTION indicamos el script que va procesar la informacin que recogemos en el formulario, mientras que METHOD nos indica si el usuario del formulario va a enviar datos (post) o recogerlos (get). La etiqueta </FORM> indica el final del formulario. A partir de la etiqueta <FORM> vienen los campos de entrada de datos que pueden ser: Botn de comando: <input type="submit" value="enviar" name="enviar"> Cuadro de texto: <input type="text" name="nombre" size="20" value="jose"> Veamos un ejemplo con PHP: Las siguientes dos pginas tienen el objetivo de preguntar cul es tu equipo de ftbol favorito y desplegar en otra pgina el seleccionado (equipo.htm y equipo.php). equipo.htm <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Equipo HTML</title> </head>

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL

2012

<body> <form method="post" action="Formularios/equipo.php"> <input name="equipo" type="text" value /> <br /> <br /> <input type="submit" /> </form> </body> </html> equipo.php <html> <head> </head> <body> T equipo favorito es: <?php echo "<h2><b><u>$equipo</u></b></h2>"; ?> </body> </html> Hay que poner especial atencin en el parmetro name de un elemento del formulario ya que es el mismo nombre con el que se le referenciar en php, como pudimos ver en el ejemplo anterior el elemento <input name=equipo type TEXT> lo manejamos en php como $equipo, as es con todos los elementos de formularios. Cuadro de texto con barras de desplazamiento: <textarea rows="5" name="descripcion" cols="20">Es de color rojo</textarea> Ahora veamos un ejemplo con PHP: Programa PHP que pide WebSites favoritos y los muestra como salida (sites.htm y sites.php). sites.htm <html> <head> </head> <body> <form method="post" action="sites.php"> Mensione tus WebsSites favoritos... <br /> <textarea name="websites" cols="30" rows="5"> http:// <br />http:// <br /> http:// </textarea> <br /> <input type="submit" /> </form> </body> </html>

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL sites.php <html> <head> </head> <body> Tus web Favoritos son: <?php echo "<h2><b><u>$websites</u></b></h2>"; ?> </body> </html>

2012

Casilla de verificacin o checkbox: <input type="checkbox" name="cambiar" value="ON"> Ahora veamos un jemplo con PHP: Programa que pregunta lo que haces al levantarte y lo despliega como salida (checkboxes.htm y checkboxes.php). checkboxes.htm <html> <head> </head> <body> <form method="post" action="checkboxes.php" >Que haces en cuanto te levantas?<br> Lavarme la cara<input name="sel1" type="checkbox" value="Lavarme la cara"><br> Laverme los dientes<input name="sel2" type="checkbox" value="Lavarme los dientes"><br> Mirar la TV<input name="sel3" type="checkbox" value="Mirar la TV"> <br> <input type="submit"> </form> </body> </html> checkboxes.php <html> <body> Y hago en cuanto me levanto <br> <?php if (isset($sel1)) echo "<b>$sel1</b><br>"; if (isset($sel2)) echo "<b>$sel2</b><br>"; if (isset($sel3)) echo "<b>$sel3</b><br>"; ?> </body> </html>

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL

2012

Botn de radio u opcin: <input type="radio" value="azul" checked name="color"> Ahora veamos un ejemplo con PHP: Programa que nos presenta una suma, nosotros tenemos que elegir la respuesta entre tres opciones posibles y la salida nos muestra la opcin que elegimos (radio.htm y radio.php). radio.htm <html> <body> <form method="post" action="radio.php"> Cuanto es 5*5? <BR> <BR> < input name="resp" type="radio" value="50">50 <BR> <input name="resp" type="radio" value="25">25 <BR> <input name="resp" type="radio" value="8">8 <BR> <BR> <input type=submit> </form> </BODY> </html> radio.php <html> <body> <?php echo "Seleccionaste $resp"; ?> </body> </html> Men desplegable: <select size="1 class="codigo"><select size="1" name="dia"> <option selected value="lunes">lunes</option> <option>martes</option> <option value="miercoles">miercoles</option> </select> Ahora veamos un ejemplo en PHP: Programa que pregunta opciones para armar una Laptop y despliega las opciones elegidas (lista.htm y lista.php). lista.htm <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body>

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL <form method="post" action="lista.php"> <p>Elija el modelo de la Laptop a comprar <br> <select name="laptop"> <option>Hp</option> <option>Compac</option> <option>Toshiba</option> <option>Dell</option> </select> <br> Selecciona los dispositivos de la Laptop:</p> <p> <select name="dispo[]"> <option>Multimedia</option> <option>Quemadora DVD</option> <option>Web Cam</option> <option>Woffer</option> </select> <br> <input type="submit"> </p> </form> </body> </html> lista.php <html> <body> <?php echo "Elegiste una Laptop:<b>$laptop<b> con:<br>"; echo "$dispo[0]<br>"; echo "$dispo[1]<br>"; echo "$dispo[2]<br>"; echo "$dispo[3]<br>"; ?> </body> </html>

2012

Campo oculto: <input type="hidden" name="edad" value="55"> Este ltimo tipo de campo resulta especialmente til cuando queremos pasar datos ocultos en un formulario. Ahora pasemos a ver ejemplos que necesitan mas cdigo PHP, como son ciclos y arrays, implementndolos en conjunto con los formularios. Para el uso del FOR un programita para crditos bancarios (banco.htm y banco.php). banco.htm <html> <head>

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head>

2012

<body> <b>Crdito Bancario</b> <form method="post" action="banco.php"> <br> Cul de estos paquetes te interesa adquirir?<br> <input name="valor" type="radio" value="2000">Nuestro paquete de S/ 2.000 Con el 5.0% interes <br> <input name="valor" type="radio" value="8000">Nuestro paquete de S/ 8.000 Con el 7.0% interes <br> <input name="valor" type="radio" value="12000">Nuestro paquete de S/ 12.000 Con el 9.0% interes <br> <br> Cuanto es lo que desea Ud. Pagar al mes? <input name="pagames" type="text" size="5"> <br> <input type="submit" value="Pulse Aqu para Calcular"> </form> </body> </html> banco.php <html> <body> <?php $Duracion=0; switch($valor){ case 2000; $interes=5; break; case 8000; $interes=7; break; case 12000; $interes=9; break; default; echo "No elegiste ningun paquete, favor de presionar el boton <b>Back</b>y seleccionar"; exit; } $Duracion=$Duracion+1; $mensualmente=$pagames-($valor*$interes/100); if($mensualmente<=0) { echo "Ud. Necesita hacer pagos mas elevados:"; exit;
Ingeniera Estadstica e Informtica -UNAP Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL

2012

} $valor=$valor-$mensualmente; echo"La duracin es de: $Duracion mes con un porcentaje de interes del $interes %."; ?> </body> </html> Respuesta:

El siguiente programa demuestra cmo se pueden trabajar los array como elementos hash (estados.php y capital.php). estados.php <html> <head> <title>Estados de Mxico</title> </head> <body bgcolor="#FFFFFF"> De que estado te gustara conocer su capital? <? $Estados=array(1=>"Colima","Jalisco","Sinaloa"); echo "<form method=post action='capital.php'>"; echo "<select name='estado'>"; for ($counter=1; $counter<4; $counter++) echo "<option value=$counter>$Estados[$counter]</option>"; echo "</select><br><br>"; echo "<input type=submit>"; echo "</form>"; ?></body> </html> capital.php <html> <head> <title>Capitales</title> </head> <body bgcolor="#FFFFFF"> <?php $Capital=array(1=>"Colima","Guadalajara","Culiacan");

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL for ($counter=0;$counter<4;$counter++) { if ($counter==$estado) { echo "la capital del estado elegido es &Capital[$counter]"; } } ?> </body> </html>

2012

Como podemos observar los dos archivos tienen extensin .php, esto se debe a que es necesario ejecutar cdigo php en los dos, para poder formar dinmicamente las dos pginas. Para tener ms material con formularios realizaremos un programa PHP que contenga varios elementos de formulario juntos: Desarrollar un programa en PHP que pida el Nombre (textbox), el apellido(textbox), la edad (textbox), domicilio (text area), seleccione el rango de sueldo que le gustara ganar (listbox) y que seleccione como considera as mismo su desempeo laboral (radio button). El programa no aceptar curriculums que elijan un sueldo muy bajo, ni un sueldo extremo, ni tampoco si se considera psimo (minicu.htm y minicu.php). minicu.htm <html> <head> <title>Capitales</title> </head> <body bgcolor="#EEFFFF"> <b>MINICURRICULUM</b> <form method="post" action="minicu.php"> <p>Nombres: <input name="nombres" type="text"> Apellidos: <input name="apellidos" type="text"> Edad: <input name="edad" type="text" size="3"> <br> <br>Domicilio: <textarea name="Domicilio" rows="2" cols="40"> </textarea> </p> <p><br> <b>Que salario desea ganar?</b> <select name="salario"> <option value="0">Menos de S/. 1000</option> <option value="1000">Entre S/. 1000 y S/. 3000</option> <option value="3000">Entre S/. 3000 y S/. 5000</option> <option value="5000">Mas de S/. 5000</option>
Ingeniera Estadstica e Informtica -UNAP Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL </select> <br> <br> Cmo consideras tu desempeo? <br> <input name="Desempeo" type="radio" value="0">Psimo <br> <input name="Desempeo" type="radio" value="5">Regular <br> <input name="Desempeo" type="radio" value="10">Excelente <br> <br> <input type="submit" value="Pulse aqu cuando este listo(a)"> <input type="reset" value="Borrar Todo"> </p> </form> </body> </html> minicu.php <html> <head> <title>Capitales</title> </head> <body bgcolor="#EEFFFF"> Sr(a): <?php echo "$nombres $apellidos"; ?> en base a su edad (<?php echo "$edad";?>) y sus aspiraciones<br> econmicas y su auto estimacin hemos determinado que:<br> <?php echo "Salario deseado: $salario<br>"; echo "Su desempeo elegido: $Desempeo<br>"; if((($salario==0)OR($salrio==5000))OR($Desempeo==0)) { echo "Ud. No cumple satisfactoriamente nuestras aspiraciones"; } ?> </body> </html> Resultados:

2012

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL Minicu.htm

2012

Minicu.php

BASES DE DATOS Hasta ahora hemos visto la funciones bsicas de PHP, lo que viene a continuacin ya es sobre la forma en cmo podemos acceder a bases de datos, veremos cmo acceder a ellas en dos sistemas de bases de datos diferentes, los cuales son MySQL Server y Microsoft Access. El primer sistema que veremos es MySQL Server, pero antes de ver cdigo PHP, aprenderemos un poco de este sistema, para los ejemplos en PHP ya va a ser necesario que tengamos una base de datos creada por lo tanto pondremos atencin en las formas en que estas se crean. QUE ES MYSQL Administrador de Base de Datos Una base de datos es un conjunto de datos estructurados. Esto podra ser cualquier cosa, desde una simple lista de compras hasta una galera de pinturas o la gran cantidad de informacin que se maneja en una corporacin. Para agregar, acceder y procesar los datos almacenados en una base de datos computacional, se necesita un sistema administrador de base de datos tal como MySQL. Adems los computadores son muy buenos manejando grandes cantidades de datos, el administrador de base de datos juega un rol central en la computacin, ya sea como utilidad autnoma o parte de otra aplicacin. Sistema administrador de base de datos relacionales Una base de datos relacional almacena datos en tablas separadas, ms bien colocando todos los datos en un gran almacn. Esto agrega velocidad y flexibilidad. Las tablas son enlazadas por relaciones definidas haciendo posible combinar datos desde varias tablas solicitadas. El

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL

2012

SQL forma parte de MySQL, conocido como Lenguaje de Consultas Estructurado, es el lenguaje estandarizado ms comn usado para acceder base de datos. Software de Fuente Abierta Fuente abierta significa que es posible que pueda ser usado y modificado por cualquiera. Alguien puede bajar MySQL desde Internet y usar ste sin tener que pagar nada. Alguien puede estudiar el cdigo fuente y cambiarlo de acuerdo a sus necesidades. MySQL usa el GPL de la GNU, para definir lo que se puede hacer con el software en diferentes situaciones. Uso de MySQL MySQL es muy rpido, seguro y fcil de usar. MySQL tambin ha desarrollado un conjunto de caractersticas muy prcticas, en estrecha cooperacin con otros usuarios. MySQL fue desarrollado para manejar grandes bases de datos mucho ms rpido que las soluciones existentes y ha sido usado exitosamente en ambientes de produccin con altas demandas, por varios aos. Aunque est bajo un desarrollo constante, MySQL siempre ofrece conjunto de funciones muy poderoso y eficiente. La conectividad, velocidad y seguridad hace de MySQL una suite poderosa para acceder a bases de datos en Internet. CARACTERISTICAS TECNICAS DE MYSQL MySQL es un sistema Cliente/Servidor que consta de un servidor SQL multi- hilo que soporta diferentes backends, variados programas cliente y de libreras, administrador de herramientas y un programa de interface. MySQL contribucin para muchos de los software disponibles Es mucho ms probable que se encuentre que diversas aplicaciones ya soportan MySQL. Los valores centrales de MySQL son : La mejor y ms usada base de datos en el mundo. Disponible y Accesible para todos Fcil de usar Se est perfeccionando continuamente mientras permanece rpida y segura. Divertida para usar y perfeccionar. Libre de molestias. CARACTERISTICAS PRINCIPALES DE MYSQL A continuacin se describen algunas de las caractersticas ms importantes de MySQL: Escrito en C y C++, testado con GCC 2.7.2.1. Usa GNU autoconf para portabilidad. Clientes C, C++, Eiffel,PHP,Python,JAVA, Perl, TCL. Multiproceso, es decir puede usar varias CPU si stas estn disponibles. Puede trabajar en distintas plataformas y S.O. distintos. Sistema de contraseas y privilegios muy flexible y segura. Todas la palabras de paso viajan encriptadas en la red. Registros de longitud fija y variable.

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL

2012

16 ndices por tabla, cada ndice puede estar compuesto de 1 a 15 columnas o partes de ellas con una longitud mxima de 127 bytes. Todas las columnas pueden tener valores por defecto. Utilidad Isamchk para chequear, optimizar y reparar tablas. Todos los datos estn grabados en formato ISO8859_1. Los clientes usan TCP o UNIX Socket para conectarse al servidor. Todos los comandos tienen -help o -? Para las ayudas. Soporta diversos tipos de columnas como enteros de 1, 2, 3, 4, y 8 bytes, coma flotante, doble precisin, carcter, fechas, enumerados, etc. ODBC para Windows 95 (con fuentes), se puede utilizar ACCESS para conectar con el servidor. Muy rpida usando joins, optimizada para un barrido multi-joins. Todas las funciones y operadores soportan en el SELECT y WHERE como partes de consultas. Ejemplo: mysql> SELECT CONCAT(nombre," ",apellido) FROM nombre_tabla WHERE ingreso >10000 AND edad >30 Todas las clausulas SQL soportan GROUP BY y ORDER BY.

CREANDO Y USANDO UNA BASE DE DATOS Visualizacin de las bases de datos existentes en el servidor MySQL Antes de crear una base de datos, se debe conocer qu base de datos existen actualmente en el servidor, para ello se utiliza el comando SHOW, de la siguiente manera: mysql> SHOW DATABASES;

Esta lista probablemente no es igual en todas las mquinas, pero las bases de datos mysql y test estn siempre entre ellas. La base de datos mysql se requiere porque en ella se describe la informacin de los privilegios de acceso a los usuarios. La base de datos test proporciona el espacio de trabajo para los usuarios. Seleccin de una base de datos Para seleccionar o acceder a una base de datos determinada se utiliza el comando USE: mysql> USE test Database changed Una vez, que se ha realizado la conexin con xito se puede comenzar a trabajar con la base de datos, pero siempre y cuando se tengan los permisos adecuados. Si no se tienen

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL

2012

los permisos el administrador debe darle los permisos al usuario para poder trabajar, esto se realiza con la ejecucin del siguiente comando: mysql> GRANT ALL ON nombre_database.* TO nombre_usuario; Creacin de una base de datos Para crear una base de datos se debe tener permiso para poder crear base de datos en el servidor MySQL , si se tiene el permiso entonces la sentencia a seguir es: mysql> CREATE DATABASE nombre_database; Bajo Unix, los nombres de las bases de datos y de las tablas son sensibles, esto quiere decir que se hace diferencia entre minsculas y maysculas, as es que para referirse a una base de datos determinada hay que llamarla tal como se le nombro cuando fue creada. Creacin de tablas Para crear las tablas que va a contener la base de datos, se realiza de la siguiente forma: mysql> CREATE TABLE nombre_tabla(campo_1 tipo(tamao), campo_2 tipo(tamao),...,campo_n tipo(tamao)); El campo indica el nombre de la columna y tipo(tamao) especfica el tipo de dato y el espacio que se va a conservar para cada dato almacenado en esa columna. Ejemplo: codigo int(5), nombre char(25), fecha date, etc.. Cuando se trata de fechas no se especfica el tamao, puesto que ya est determinado. Para visualizar las tablas que tiene una base de datos se usa el mismo comando utilizado para ver las bases de datos, pero con la diferencia de que en vez de database se coloca tables, es decir: mysql> SHOW TABLES; Para verificar que la tabla ha sido creada de la forma indicada, se usa el comando DESCRIBE. Ejemplo: Se va a crear una tabla llamada clientes, de la siguiente forma: mysql> CREATE TABLE clientes( rut char(8),nombre char(25), direccion char(50), telefono int(10)); mysql> DESCRIBE clientes;

Esto es muy til cuando se olvida el nombre o tipo de una columna. El Field indica el nombre de la columna, Type es el tipo de dato que acepta esa columna, Null indica si la columna puede contener valores NULL, Key indica la clave por la cual la columna se va a indexar y Default especfica el valor por defecto que tiene la columna. Ingreso de Datos a las tablas
Ingeniera Estadstica e Informtica -UNAP Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL

2012

Para ingresar informacin a una tabla se puede hacer bsicamente de dos maneras. La primera se utiliza cuando se tiene mucha informacin a ingresar de una sola vez, entonces es conveniente almacenar esta informacin en un archivo de texto, es decir, .txt. Una vez que se tiene este archivo, se procede de la siguiente forma: mysql> LOAD DATA LOCAL INFILE "nombre_archivo.txt" INTO TABLE nombre_tabla; Para el caso que se desee ingresar un solo registro, entonces la sentencia a seguir es: mysql> INSERT INTO nombre_tabla VALUES (``valor_1'',''valor_2'',...., Los datos a ingresar se separan por comas y van entre comillas. Estos datos indican los valores que va a tomar cada una de las columnas, segn el orden en que fueron creadas. En el caso que se quiera ingresar un valor NULL no es necesario las comillas, slo se coloca NULL. Recuperacin de la Informacin Para recuperar la informacin que est contenida en una tabla, la sentencia general a seguir es: mysql> SELECT qu_es_lo_que_se_desea_ver FROM nombre_tabla WHERE condiciones_a_satisfacer; Para los casos en que, se requiera: - Ver o seleccionar toda la informacin de una tabla: - mysql> SELECT * FROM nombre_tabla; - Seleccionar filas en particular: - mysql> SELECT * FROM nombre_tabla WHERE nombre_columna="lo que se desee buscar" - Seleccionar columnas en particular: - mysql> SELECT nombre_columna_1, nombre_columna_n FROM nombre_tabla; Esto es conveniente cuando no se desea ver toda la fila o registro, entonces solo se seleccionan aquellas columnas en las que se est interesado. PHP PARA BASES DE DATOS MYSQL Conectarse Empecemos con el primer script, que nos mostrar como conectarnos a una base de datos (conectarse.php). <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Conectarse en php</title> </head> <body> <?php function Conectarse() { if(!($link=mysql_connect("localhost", "root","root"))) { echo "Error en la conexin del Servidor.";

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL exit(); } if(!mysql_select_db("desarrollo",$link)) { echo "Error No existe Conexin en la Base de Datos.", exit(); } return $link; } Conectarse(); echo "Conexin con la Base de Datos.<br>"; ?> </body> </html>

2012

Como podemos ver en el ejemplo anterior aisl lo necesario para la conexin en una funcin, ahora esa funcin la pondremos en un archivo PHP solo (conec.php). conec.php <?php function Conectarse() { if(!($link=mysql_connect("localhost", "root","root"))) { exit(); } if(!mysql_select_db("desarrollo",$link)) { exit(); } return $link; } ?> Ya que tenemos la funcin en un archivo separado solo hay que mandarlo llamar cuando sea necesario, de esta forma cuando tengamos aplicaciones complejas que use muchas pginas php y sea necesario cambiarle algo a la conexin solo se le tenga que hacer el cambio a este pequeo archivo y no a todas las pginas. Agregar registros Veremos un ejemplo de agregar registros a la base de datos (insertareg.php y agregar.php). insertareg.php <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Inserta</title> </head> <body> <h2><u>Manejo de Base de Datos con PHP y MySQL</u></h2>

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL

2012

<form action="agregar.php"> <table> <tr> <td width="61">Nombres:</td> <td width="117"><input name="nombre" type="text" size="20" maxlength="30" /></td> </tr> <tr> <td>Direccin:</td> <td><input name="direccion" type="text" size="20" maxlength="30" /></td> </tr> <tr> <td>Telfono:</td> <td><input name="telefono" type="text" size="10" maxlength="30"/></td> </tr> <td>E-mail:</td> <td><input name="email" type="text" size="20" maxlength="30"/></td> </tr> <td>Imagen:</td> <td><input name="imagen" type="text" size="15" maxlength="30"/></td> </tr> </table> <input type="submit" name="accion" value="Grabar"> </form> <hr> <?php include("conec.php"); $link=Conectarse(); $result=mysql_query("select * from tabla1",$link); ?> <table border=1 cellspacing=1 cellpadding=1> <tr> <td>&nbsp;Nombres</td> <td>&nbsp;Direccin&nbsp;</td> <td>&nbsp;Telfono&nbsp;</td> <td>&nbsp;E-mail&nbsp;</td> <td>&nbsp;Imagen&nbsp;</td> </tr> <?php while($row=mysql_fetch_array($result)){ printf("<tr><td>&nbsp;%s</td><td>&nbsp;%s&nbsp;</td><td>&nbsp;%s&nbsp;</t d><td>&nbsp;%s&nbsp;</td><td>&nbsp;<img src=%s&nbsp;</td></tr>",$row["nombre"],$row["direccion"],$row["telefono"],$row["email" ],$row["imagen"]); } mysql_free_result($result); ?> </table> </body> </html>

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL agregar.php <?php include("conec.php"); $link = Conectarse(); $sql="insert into tabla1(nombre, direccion, telefono, email, imagen) values('$nombre','$direccion','$telefono','$email','$imagen')"; mysql_query($sql,$link); header("Location:insertareg.php"); ?>

2012

Eliminar registros Pasemos a la eliminacin de registros, este consta de dos archivos, los dos .php el primero es para elegir el registros a borrar y el segundo lo borra (eliminareg.php y borra.php). eliminareg.php <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Inserta</title> </head> <body> <h2><u>Manejo de Base de Datos con PHP y MySQL</u></h2> <?php include("conec.php"); $link=Conectarse(); $result=mysql_query("select*from tabla1",$link); ?> <table border="1" cellspacing="1" cellpadding="1"> <tr> <td>&nbsp;Nombres</td> <td>&nbsp;Direccin&nbsp;</td> <td>&nbsp;Telfono&nbsp;</td> <td>&nbsp;E-mail&nbsp;</td> <td>&nbsp;Imagen&nbsp;</td> </tr> <?php while($row=mysql_fetch_array($result)){ printf("<tr><td>&nbsp;%s</td><td>&nbsp;%s&nbsp;</td><td>&nbsp;%s&nbsp;</t d><td>&nbsp;%s&nbsp;</td><td>&nbsp;%s&nbsp;</td><td><a href=\"borra.php?id=%d\">Borra</a></td></tr>",$row["nombre"],$row["direccion"],$row[ "telefono"],$row["email"],$row["imagen"],$row["ID"]); } mysql_free_result($result); ?> </table> </body> </html>

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL

2012

borra.php <?php include("conec.php"); $link=Conectarse(); mysql_query("delete from tabla1 where ID = $id",$link); header("Location: eliminareg.php"); ?> Modificar registros Veremos un ejemplo de modificar registros a la base de datos, consta de tres archivos diferentes, el primero para introducir la consulta por el campo nombre, el segundo para realizar los cambios necesarios y el tercero para modificar la base de datos (consulta.htm, busca.php y modifica.php). consulta.htm <html> <head> <title>Ejemplo de PHP</title> </head> <body> <H1>Ejemplo de modificar</H1> <FORM ACTION="busca.php"> Nombre: <INPUT TYPE="text" NAME="nombre" SIZE="20" MAXLENGTH="30"> <INPUT TYPE="submit" NAME="accion" VALUE="Buscar"> </FORM> </body> </html> busca.php <html> <body> <?php include("conec.php"); $link=Conectarse(); $Sql="select * from tabla1 where nombre like '%$nombre%'"; echo $Sql; $result=mysql_query($Sql,$link); ?> <TABLE BORDER=1 CELLSPACING=1 CELLPADDING=1> <TR> <TD>&nbsp;Nombre</TD> <TD>&nbsp;Direccin&nbsp;</TD> <TD>&nbsp;Telefono&nbsp;</TD> <TD>&nbsp;Email&nbsp;</TD> <TD>&nbsp;Imagen&nbsp;</TD> </TR>

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

Programacin Web/AppServ-PHP-MySQL

2012

<form name="form1" method="post" action="modifica.php"> <?php while($row = mysql_fetch_array($result)) { printf("<tr><td><INPUT TYPE='text' NAME='nombre' SIZE='20' MAXLENGTH='30' value='%s'></td><td>&nbsp;<INPUT TYPE='text' NAME='direccion' SIZE='20' MAXLENGTH='30' value='%s'>&nbsp;</td><td>&nbsp;<INPUT TYPE='text' NAME='telefono' SIZE='20' MAXLENGTH='30' value='%s'>&nbsp;</td><td>&nbsp;<INPUT TYPE='text' NAME='email' SIZE='20' MAXLENGTH='30' value='%s'>&nbsp;</td><td>&nbsp;<INPUT TYPE='text' NAME='imagen' SIZE='20' MAXLENGTH='30' value='%s'>&nbsp;</td></tr>", $row["nombre"],$row["direccion"],$row["telefono"],$row["email "],$row["imagen"]); } mysql_free_result($result); ?> </form> </body> </html> modifica.php <?php include("conec.php"); $link=Conectarse(); $Sql="UPDATE tablacurso SET nombre='$nombre', direccion='$direccion', email='$email', telefono='$telefono' imagen='$imagen' WHERE nombre='$nombre'"; mysql_query($Sql,$link); header("Location: consulta5.php"); ?> Bueno espero en verdad que les sirva de apoyo para aquellos que estn empezando a programar en PHP y MySQL . Consultas a la siguiente direccin. aguilar.finesi@hotmail.es

Ingeniera Estadstica e Informtica -UNAP

Bach. Yhony Aguilar Quenta

S-ar putea să vă placă și