Академический Документы
Профессиональный Документы
Культура Документы
Introduccin a Php. Programacin en Php. POO en Php. Complementos para Php (Apache y Mysql).
N HORAS 12 28 16 16
Tema 1: Introduccin
Introduccin a PHP Instalacin y configuracin de Apache Instalacin y configuracin de PHP Recursos de PHP
Introduccin a PHP
Breve historia de PHP
PHP es el sucesor de un producto llamado PHP/FI Creado en 1994 por Rasmur Lerdorf. Los primeros pasos del lenguaje era un simple conjunto de ficheros binarios (CGI) escritos en lenguaje C. En el ao 1995 , Rasmus publico el cdigo fuente de PHP, lo que permiti a los desarrolladores usarlo como considerasen apropiado.
Introduccin a PHP
Qu es PHP? PHP es lo que llamamos un lenguaje de programacin del lado del servidor, esto significa que el cdigo se interpreta en el servidor y no en el ordenador del usuario. El cdigo PHP interpretado, produce un resultado que es enviado al navegador del visitante en forma de HTML, imagen, documento .doc... de ninguna manera el navegador del visitante accede al cdigo fuente en PHP sino solo a su resultado en HTML. Por qu PHP? Por sus ventajas: es potente, fcil de aprender, de libre distribucin, permite el acceso a bases de datos Dispone de abundante soporte en la Web
Introduccin a PHP
Funcionamiento de PHP El funcionamiento de las pginas en PHP alojadas en un servidor es el siguiente: -El navegador del cliente solicita el documento PHP. -Llega la solicitud del servidor y el servidor localiza el documento, lanza el intrprete de PHP y ejecuta todo su codigo. -Una vez ejecutado el cdigo se genera el resultado en HTML y lo devuelve al servidor para que lo transfiera al cliente. -El servidor transfiere el resultado en HTML y es mostrado en el navegador del cliente.
El navegador pide un documento al servidor, en el caso que este documento sea un archivo PHP, el archivo es interpretado y se enva su resultado al navegador.
Profesor Rodrigo Cabello
Este cdigo producir el siguiente resultado que es lo que se enviar al navegador del visitante
Introduccin a PHP
Requisitos
Servidor web Apache (www.apache.org) con el mdulo PHP (www.php.net) y la base de datos MySQL (www.mysql.com) si se desea crear pginas dinmicas Herramientas para la gestin de MySQL, como PHPMyAdmin (www.phpmyadmin.net) Editores de PHP, como DevPHP (www.sourceforge.net) Manuales de PHP y MySQL
Otras utilidades
WAMP
WAMP es el acrnimo usado para describir un sistema de infraestructura de internet que usa las siguientes herramientas: Windows como sistema operativo Apache como servidor web MySQL como gestor de bases de datos PHP El uso de un WAMP permite servir pginas html a internet adems de poder gestionar datos en ellas, al mismo tiempo un WAMP, proporciona lenguajes de programacin para desarrollar aplicaciones web
LAMP es el sistema anlogo que corre bajo ambiente Linux WAMP es el sistema anlogo que corre bajo ambiente Windows MAMP es el sistema anlogo que corre bajo ambiente Macintosh
Dev-PHP es una herramienta muy til para el desarrollo web con el cual podr trabajar de mejor manera en PHP, es el complemento perfecto pues manejara y manipular tu librera de clases, bsquedas, vistas de los scripts, integracin con PHP parsers, manejo de la librera PHP-GTK, y depuracin del cdigo. Definitivamente Dev-PHP es una herramienta necesaria que te ayudar durante tus horas de programacin.
Notepad++ es un editor de texto y de cdigo fuente libre con soporte para varios lenguajes de programacin. Se parece al Bloc de notas en cuanto al hecho de que puede editar texto sin formato y de forma simple. No obstante, incluye opciones ms avanzadas que pueden ser tiles para usuarios avanzados como desarrolladores y programadores.
Los comentarios que soporta PHP sn los de C, C++ y los del shell de Unix, asi podemos usar // y /* */ para comentarios y comentarios multilinea respectivamente como haramos en C
Profesor Rodrigo Cabello
Tema 4 Variables
Una variable es un nombre que contiene unos determinados datos, ya sean de texto o numricos, y en php tienen la peculiaridad de ir precedidas por el signo del dolar ($). En PHP no es necesario declarar las variables antes de usarlas y pueden contener texto y nmeros indiferentemente ( ya hablaremos de esto ms adelante <? $miVariable = 'Hola '; $miVariable2 = 33; // Imprimimos Hola 33 echo $miVariable.$miVariable2; ?> Como vemos, asignamos valor a una variable con el operador de igualdad (=), y concatenamos con el operador punto (.). Para que una variable sea accesible desde cualquier parte de nuestro script php, la definiremos cmo global de la siguiente manera: <? global $miVariableGlobal = 'Hola'; ?>
Profesor Rodrigo Cabello
Tema 4 Variables
Tipo de datos en PHP integer: Enteros, en decimal, octal o hexadecimal. $MiVarDec = -923; $MiVarOct = 0127; $MiVarHex = 0xf1; print("v1: $MiVarDec v2: $MiVarOct v3: $MiVarHex"); double: Reales. $MiVar = 1.3e4; $var1 = 2.28888; $var2 = 2.21112; $var3 = $var1 + $var2; print ("$var3"); boolean: true o false (PHP 4.x) array: vectores $MiVar[2] = 123; string: Cadenas. $var1 = "Cadena\n"; $var2 = 'Mas cadenas'; object: Objetos. $MiVar = new MiClase();
Profesor Rodrigo Cabello
Tema 5 Constantes
Una constante es como una variable pero con la diferencia que una vez toma un valor este no puede variar durante la ejecucin del script, otra particularidad de las constantes es que son globales, por lo que se pueden leer desde el interior de una funcin sin tener que pasarlas como parmetro.
Al contrario que las variables, las constantes se expresan sin signo del dlar ($), y se tienen que definir usando la funcin define:
<? define ('miConstante','valor de mi constante'); echo miConstante; ?>
Profesor Rodrigo Cabello
Tema 6 Vectores
Los vectores o array son listas ordenadas de elementos. Para definir un vector en PHP utilizamos la funcin array: <?php $vector = array ( "elemento 1", "elemento 2" ); ?> Una vez definido el vector, podemos acceder a sus elementos, sus elementos estarn identificados por un nmero ( empezando por 0 ) o una clave que se puede definir as: <?php $vector = array ( "clave 1" => "elemento 1", "clave 2" => "elemento 2" ); ?> Para acceder a un elemento usaremos [ y ] con su clave ( "clave 1" o 0 ): <?php echo $vector[0];// elemento 1 echo $vector['clave 1'];// elemento 1 ?>
Tema 6 Vectores
Podemos borrar un elemento de una variable con la funcin unset
<?php // Borramos el 'clave 3'; unset ( $vector['clave 3'] ); print_r ($vector); / ?>
<?php // As si $var1 = "php"; $var2 = Array ( "php","html" ); // [0]=>php, [1]=>html $var3 = "aprendo $var1"; // aprendo php $var3 = "aprendo {$var2[0]}"; // aprendo php
Tema 7 Operadores
Los operadores son expresiones que nos permiten manipular los datos que les pasamos, cada uno de los datos que se le pasa a un operador se llama operando, y segn el nmero de operandos de que disponga un operador estaremos hablando de un operador unario (un operando), binario (dos operandos), ternario... Los operadores no los utilizamos aisladamente, sino que solemos utilizar mas de uno en una misma expresin compleja, en este caso tendremos que tener en cuenta las normas de preferencia para no encontrarnos con resultados no deseados
Profesor Rodrigo Cabello
Tema 7 Operadores
Para cambiar el orden en que se realizan las operaciones utilizaremos los parntesis (), consiguiendo que se realicen primero las operaciones del interior del parntesis y, acto seguido, el resto de operaciones siguiendo en cada caso el mismo orden de preferencia anteriormente citado: <?php // el operador de multiplicacin es l signo asterisco ( * ) $a = 2 + 4 * 2; // El resultado es 10 $a = (2+4) * 2; // el resultado es 12 ?>
Profesor Rodrigo Cabello
Igual (==) - Devuelve 1 si los operando son iguales aunque sean de tipo distinto. Diferente (!= o <>) - Devuelve 1 si los operando son distintos. Menor que (<) - Devuelve 1 si el primer operando es mas pequeo que el segundo. Mayor que (>) - Devuelve 1 si el primer operando es mas grande que el segundo. Menor o igual que (<=) - Devuelve 1 si el primer operando es mas pequeo o igual que el segundo. Mayor o igual que (>=) - Devuelve 1 si el primer operando es mas grande o igual que el segundo. Estos operadores se usan mayormente como condicin para las estructuras de control
Estos operadores pueden ponerse delante del operando, en ese caso la operacin devolver el valor una vez operado, o despus, caso en el que la operacin devolver el valor antes de operar:
<? $variable = 2; echo $variable++; // Imprime 2 y luego incrementa echo ++$variable; // incrementa y luego imprime 4 ?>
Profesor Rodrigo Cabello
A su vez, existe un operador que hemos incluido entre los operadores de asignacin, que es el operador de asignacin sobre concatenacin (.=), este operador concatena a una variable un valor dado de la siguiente manera:
<? $texto = 'hola '; $texto .= 'mundo'; echo $texto; ?>
<? if($var1 == 12){ echo 'La variable vale 12'; } else { echo 'La variable tiene otro valor'; } ?>
Profesor Rodrigo Cabello
<? if($var1 == 12){ echo 'La variable vale 12'; } elseif($var1 == 3){ echo 'La variable vale 3'; } else { echo 'La variable tiene otro valor'; } ?>
Tema 9 Funciones
Una funcin es un conjunto de instrucciones que a lo largo del programa van a ser ejecutadas multitud de veces. Es por ello, que este conjunto de instrucciones se agrupan en una funcin. Sintaxis general para declarar una funcin:
Tema 9 Funciones
Las funciones pueden ser llamadas y ejecutadas desde cualquier punto del programa.
Adems, una funcin puede recibir parmetros externos de los cuales dependa el resultado de dicha funcin. Es decir, segn el parmetro o parmetros con los que se invoque a la funcin, sta devolver un resultado u otro.
Tema 9 Funciones
Para llamar (hacer que se ejecute) la funcin usaremos esta sintaxis: nombre(parmetros); <?php //Ejemplo funciones function mostrarTexto($texto) { echo "<strong>El texto es : </strong>"; echo $texto; } mostrarTexto("Esto lo realiza la funcin"); ?>
Profesor Rodrigo Cabello
Tema 9 Funciones
Tambin podemos crear funciones que devuelvan datos
<?php // Ejemplo funciones function operaciones($n1, $n2, $operacion) { $resultado = 0; if($operacion == "Sumar") { $resultado = $n1 + $n2; }else if($operacion == "Restar") { $resultado = $n1 - $n2; }else if($operacion == "Multiplicar") { $resultado = $n1 * $n2; } return $resultado; // Devolver el resultado } // Llamar a la funcin operaciones $r = operaciones(5, 7, "Sumar"); echo $r . "<br>"; // O podemos imprimir directamente echo operaciones(15, 8, "Restar"); ?>
Profesor Rodrigo Cabello
Tema 9 Funciones
Funcin sin parmetros
<?php //Ejemplo funciones function mostrarTextoError { echo "<strong>Se ha producido un error </strong>"; // Aqu pueden venir varias lneas de instrucciones } ?>
Tema 9 Funciones
Libreras: archivos en los que se guardan las funciones. La forma de incluirlos en nuestro script es a partir de la instruccin require o include:
require("libreria.php") o include("libreria.php")
<? include("libreria.php"); $titulo="Mi Web"; hacer_encabezado($titulo); ?> <body> El cuerpo de la pgina </body> </html>
Profesor Rodrigo Cabello
Tema 10 Formularios
Desde PHP se puede acceder fcilmente a los datos introducidos desde un formulario HTML
Fichero uno.php
<HTML> <BODY> <FORM ACTION=dos.php METHOD=POST> Edad: <INPUT TYPE=text NAME=edad> <INPUT TYPE=submit VALUE=aceptar> </FORM> </BODY> </HTML> <HTML> <BODY> <?PHP $edad = $_POST[ edad ]; ?> </BODY> </HTML> echo(La edad es: $edad);
Fichero dos.php
Tema 10 Formularios
Tema 10 Formularios
Acceso a los diferentes tipos de elementos de entrada de formulario
Elementos de tipo INPUT TEXT RADIO CHECKBOX BUTTON FILE HIDDEN PASSWORD SUBMIT
Tema 10 Formularios
TEXT
Introduzca la cadena a buscar: <INPUT TYPE="text" NAME="cadena" VALUE="valor por defecto" SIZE="20">
Tema 10 Formularios
PASSWORD
Contrasea: <INPUT TYPE="password" NAME="clave"> <?PHP echo ($clave); //echo ($_POST[" clave "]); ?>
Tema 10 Formularios
RADIO
<INPUT TYPE="radio" NAME="titulacion" VALUE=II CHECKED>I.Informtica <INPUT TYPE="radio" NAME="titulacion" VALUE="ITIG">I.T.I. Gestin <INPUT TYPE="radio" NAME="titulacion" VALUE="ITIS">I.T.I. Sistemas
Tema 10 Formularios
CHECKBOX
<INPUT TYPE="checkbox" NAME="extras" VALUE="garaje" CHECKED>Garaje <INPUT TYPE="checkbox" NAME="extras" VALUE="piscina">Piscina <INPUT TYPE="checkbox" NAME="extras" VALUE="jardin">Jardn
Tema 10 Formularios
SELECT simple
<SELECT NAME="titulacion"> <OPTION VALUE="II" SELECTED>Ingeniera Informtica <OPTION VALUE="ITIG">Ingeniera Tcnica en Informtica de Gestin <OPTION VALUE="ITIS">Ingeniera Tcnica en Informtica de Sistemas </SELECT>
Tema 10 Formularios
TEXTAREA
<TEXTAREA COLS=30" ROWS=4" NAME="comentario"> Este libro me parece ... </TEXTAREA>
Tema 10 Formularios
BUTTON
<INPUT TYPE= "submit" NAME="nueva" VALUE="Aadir una ms">
<?PHP if ($nueva) echo("Se va a aadir una nueva"); //if ($_POST[" nueva "]) //echo("Se va a aadir una nueva"); ?>
Tema 11 My SQL
Las bases de datos permiten almacenar de una forma estructurada y eficiente toda la informacin de un sitio web Ventajas
Proporcionar informacin actualizada Facilitar la realizacin de bsquedas Disminuir los costes de mantenimiento Implementar sistemas de control de acceso Almacenar preferencias de los usuarios
Tema 10 MySql
Esquema bsico de un sitio web soportado por bases de datos:
Tema 10 MySql
Caractersticas de MySQL
Modelo relacional, multiusuario Numricos
tinyint, smallint, mediumint, int, integer, bigint decimal, float, numeric date, time, datetime, year, timestamp char, varchar tinytext, text, mediumtext, longtext tinyblob, blob, mediumblob, longblob enum, set
Tipos de datos
Fecha y hora
Cadena
Est escrita en php y se ejecuta desde el navegador Si est instalada en la carpeta phpmyadmin, se ejecuta escribiendo en la barra de direcciones del navegador la url http://localhost/phpmyadmin/ Puede administrar bases de datos locales y remotas
Tema 10
SQL (Structured Query Language) es el lenguaje que se utiliza para comunicarse con la base de datos Procedimiento de comunicacin con la base de datos:
Pgina PHP
Tema 10
Las instrucciones ms habituales son SELECT, INSERT, UPDATE, DELETE Veamos su sintaxis bsica y algunos ejemplos de uso
Tema 10 Sintaxis:
SELECT
SELECT expresin FROM tabla [WHERE condicin] [ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] ,...] [LIMIT [offset,] row_count | row_count OFFSET offset] Ejemplo: SELECT * from noticias WHERE fecha=CURDATE() LIMIT 10 ORDER BY fecha DESC Obtiene las noticias del da con un tope mximo de 10, ordenadas de la ms reciente a la ms antigua
Tema 10
Sintaxis:
Insert
INSERT [INTO] nombre_tabla [(nombre_columna,...)] VALUES ((expresin | DEFAULT),...), (...),... INSERT [INTO] nombre_tabla SET nombre_columna=(expresin | DEFAULT), ...
Ejemplo:
INSERT INTO noticias (id, titulo, texto, categoria, fecha) VALUES (37, Nueva promocin en Nervin, 145 viviendas de lujo en urbanizacin ajardinada situadas en un entorno privilegiado, promociones, CURDATE())
Tema 10
DELETE [WHERE [ORDER [LIMIT
DELETE
Sintaxis:
Ejemplo:
Tema 10
Funciones de PHP para el acceso a bases de datos MySQL Los pasos para acceder desde PHP a una base de datos son los siguientes:
Conectar con el servidor de bases de datos Seleccionar una base de datos Enviar la instruccin SQL a la base de datos Obtener y procesar los resultados Cerrar la conexin con el servidor de bases de datos
Tema 10
Acceso a bases de datos MySQL Las funciones concretas de MySQL que realizan estas operaciones son:
mysql_query()
mysql_num_rows() y mysql_fetch_array() mysql_close()
Obtener y procesar los resultados: Cerrar la conexin con el servidor de bases de datos:
Tema 10
Sintaxis:
$conexion = mysql_connect (servidor, username, password);
Ejemplo:
$conexion or die $conexion or die = mysql_connect (localhost, (No se puede conectar con el = mysql_connect (localhost, (No se puede conectar con el cursophp, ) servidor); cursophp-ad, php.hph) servidor);
Tema 10
Sintaxis:
mysql_select_db (database);
Ejemplo:
mysql_select_db (lindavista) or die (No se puede seleccionar la base de datos);
Tema 10
Enviar la instruccin SQL a la base de datos: mysql_query()
Devuelve un identificador o true (dependiendo de la instruccin) si la instruccin se ejecuta correctamente y false en caso contrario
Sintaxis:
$consulta = mysql_query (instruccin, $conexion);
Ejemplo:
$consulta = mysql_query (select * from noticias, $conexion) or die (Fallo en la consulta);
Tema 10
Obtener y procesar los resultados: mysql_num_rows(), mysql_fetch_array()
En el caso de que la instruccin enviada produzca unos resultados, mysql_query() devuelve las filas de la tabla afectadas por la instruccin mysql_num_rows() devuelve el nmero de filas afectadas Para obtener las distintas filas del resultado se utiliza la funcin mysql_fetch_array(), que obtiene una fila del resultado en un array asociativo cada vez que se invoca
Sintaxis:
$nfilas = mysql_num_rows ($consulta); $fila = mysql_fetch_array ($consulta);
Tema 10
Ejemplo:
noticias 1 2 3 4 5 Ttulo 1 Ttulo 2 Ttulo 3 Ttulo 4 Ttulo 5 Texto 1 Texto 2 Texto 3 Texto 4 Texto 5 ofertas promociones promociones costas promociones 05/02/2004 05/02/2004 04/02/2004 01/02/2004 31/01/2004
Instruccin:
select * from noticias where categoria=promociones
Profesor Rodrigo Cabello
Tema 10
Ejemplo:
noticias 1 2 3 4 5 Ttulo 1 Ttulo 2 Ttulo 3 Ttulo 4 Ttulo 5 Texto 1 Texto 2 Texto 3 Texto 4 Texto 5 ofertas promociones promociones costas promociones 05/02/2004 05/02/2004 04/02/2004 01/02/2004 31/01/2004 $consulta $nfilas=3
Instruccin:
select * from noticias where categoria=promociones
Profesor Rodrigo Cabello
Tema 10
Obtencin de las filas:
$nfilas = mysql_num_rows ($consulta); if ($nfilas > 0) { for ($i=0; $i<$nfilas; $i++) { $fila = mysql_fetch_array ($consulta); procesar fila i-sima de los resultados } }
Tema 10
Obtener los resultados: mysql_num_rows(), mysql_fetch_array()
Para acceder a un campo determinado de una fila se usa la siguiente sintaxis:
$fila[nombre_campo] // por ser un array asociativo $fila[$i] // $i=ndice del campo desde 0
Ejemplo:
for ($i=0; $i<$nfilas; $i++) { $fila = mysql_fetch_array ($consulta); print Ttulo: . $fila[titulo]; print Fecha: . $fila[fecha]; }
Tema 10
Cerrar la conexin con el servidor de bases de datos: mysql_close() Sintaxis:
mysql_close ($conexion);
Ejemplo
mysql_close ($conexion);