Curso PHP y Mysql
Curso PHP y Mysql
Curso PHP y Mysql
CLASE NMERO 1
Introduccin a PHP
Qu significa PHP? PHP Hypertext Pre-processor, conocido al principio como Personal Home Page Tools. Para qu sirve? Para crear pginas Web de forma dinmica y es usado principalmente del lado del servidor. Actualmente se encuentra en la versin 6 que se est implementando, pero la ms usada es la versin 5.X
Referencia en: http://es.wikipedia.org/wiki/PHP Referencia en: http://craftyman.net/10-mejores-practicas-para-php/
Instalacin de XAMPP y DW
Variables PHP
Operadores de Asignacin
= Asigna a la parte derecha el valor izquierdo += Realiza la suma de la derecha con la izquierda y la asigna a la derecha -= Realiza la resta de la derecha con la izquierda y la asigna a la derecha *= Realiza la multiplicacin de la derecha con la izquierda y la asigna a la derecha /= Realiza la divisin de la derecha con la izquierda y la asigna a la derecha %= Se obtiene el resto y se asigna .= Concatena el valor de la izquierda con la derecha y lo asigna a la derecha
Operadores Lgicos
! Operador NO o negacin .Si era true pasa a false y viceversa and Operador Y, si ambos son verdaderos vale verdadero or Operador O, vale verdadero si alguno de los dos es verdadero xor Verdadero si alguno de los dos es true pero nunca ambos && True si ambos lo son
Operadores Condicionales
== Comprueba si nmeros son iguales != Comprueba si nmeros son distintos dos
dos
> Mayor que, devuelve true en caso afirmativo < Menor que, devuelve true en caso afirmativo >= Mayor o igual
|| True si alguno lo es
IF ... ELSE
Nota: Los operador && y || son exactamente iguales a los de Java. Carlos Eduardo, Pin Indacochea 8
SWITCH
Ejemplo Sencillo
10
Ejercicios
1) Realice un programa que muestre un mensaje que diga Bienvenido al Mundo PHP y luego concatnelo y con un salto de lnea muestre tambin Y al Mundo MySQL Realice un programa que determine si un nmero es mayor a 1500 y menor a 3000, y que calcule el 10% del nmero y finalmente muestre el resultado. Realice un programa que ingrese por variable un nmero del 1 al 5 y muestre un mensaje del nmero que es. Realice un programa que ingrese un nmero aravico y lo convierta a nmero romano, considere slo nmeros del 1 al 10.
2)
3)
4)
11
CLASE NMERO 2
WHILE
13
DO WHILE
14
FOR
15
Arreglos
Hay 2 formas de crear arreglos en PHP: De la siguiente manera:
$arreglo=array(indice1=> valor1,indice2=> valor2, ...m indiceN=>valorN) Importante: El ndice puede ser un nmero o una cadena de texto al igual que el valor. Y la segunda: $miarreglo[0]=Hola; $miarreglo[1]=Que Tal; $cadena=$miarreglo[0]. .$miarreglo[1];
16
17
Funciones
Slo para refrescar la memoria, las funciones sirven para reutilizar el cdigo sin necesidad de reescribirlo en todo el lugar de nuestra aplicacin, es decir, usar una programacin ordenada e intentar orientarla a objetos en vez de que sea estructurada. Un ejemplo de funcin en PHP es:
[Public / Protected / Private] function [NombreFuncion] ([parmetros si existen]) { lgica de programacin; programacin; return [Algo]; // Si es que hay algo para devolver [Algo]; } Nota: Si no usas Public / Protected / Private se asume como Public en las clases, dentro del cdigo si usas Public / Protected / Private te generar un error de T_ el tipo de declaracin realizada.
18
Funciones
19
include(ruta archivo): Carga el cdigo de un archivo con posibilidad de aadirlo varias veces sin generar errores crticos. require(ruta archivo): Carga el cdigo de un archivo con posibilidad de aadirlo varias veces mostrando cualquier error de forma crtica. require_once(ruta archivo): Carga el cdigo de un archivo una sola vez mostrando cualquier error de forma crtica. include_once(ruta archivo): Carga el cdigo de un archivo una sola vez varias veces sin generar errores crticos.
21
22
Estructura HTML
Estructura de una pgina en HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""http://www.w3.org/TR/xhtml1/DTD/xhtml1"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> http-equiv="Contentcharset=utf<title>Título de Documento</title> </head> <body> Estructura del Documento HTML </body> </html>
Componentes HTML
Formulario: <form name="form1" method="post/get" action="></form> Caja de Texto: <input type="text" name="textfield" id="textfield"> Caja de Texto Multilinea: <textarea name="textarea" id="textarea" cols="45" rows="5"></textarea> Botn Submit: <input type="submit" name="button" id="button" value="Enviar"> Botn Normal: Normal: <input type=button" name="button" id="button" value="Enviar"> Casilla de Verificacin: <input type="checkbox" name="checkbox" id="checkbox"> Casilla de Opcin: <input type="radio" name="radio" id="radio" value="radio"> Lista/Men: <select name="select" id="select></select> Campo para subir archivo: <input type="file" name="fileField" id="fileField"> Imagen: <img src="imagen" width="ancho" height="alto" alt="descripcion" /> URL: <a href="#" target="formaDeMostrar">LINK</a>
24
Componentes HTML
Nota: Slo se mencionan algunos componentes, mas informacin acerca de elementos y listados en: http://html.conclase.net/w3c/html401-es/index/elements.html http://www.sidar.org/recur/desdi/mcss/manual/html4.php Carlos Eduardo, Pin Indacochea
25
26
27
Ejercicios
1) Realice un programa que determine si un nmero es primo o no usando WHILE, DO WHILE y FOR Realice un programa que almacene en un arreglo las notas de un saln de clase (6 notas) y que determine el promedio final de lo ingresado. Realice un programa que calcule el coeficiente de determinacin simple de los datos ingresados para X y Y los cuales son para X: 7,5,3,9,12,15 y para Y: 8,25,9,10,5,7 y el valor de n=6; la frmula es la siguiente: 2)
3)
4)
Realice un programa que cree de forma dinmica con la estructura de FOR; 5 cajas de texto; 5 cajas de verificacin; 5 cajas para subir archivos; 5 botones para enviar y 5 vnculos dinmicos (URL) que direccionen a http://www.google.com.pe Realice el diseo en HTML y las clases correspondientes en PHP para el ingreso de una FACTURA para la venta nica de productos en un mercado, asuma el diseo de interfaz y el diseo de las tablas.
5)
28
CLASE NMERO 3
$_GET y $_POST
$_GET: Sirve pasar variables por la URL _GET: $_POST: Sirve para enviar variables o datos al dar _POST: un SUBMIT a un formulario. Nota: El $_GET se puede usar sin formulario o con formulario mientras que el $_POST es necesario un formulario para que se genere el evento, tambin puede darse por botn o por Script generado por el usuario.
30
$_GET y $_POST
31
$_GET y $_POST
32
Manejo de Fechas
Referencia en: http://www.manualdephp.com/manualphp/fechas.html Mas informacin en: http://www.ignside.net/man/php/fechas.php Carlos Eduardo, Pin Indacochea 33
Manejo de Fechas
34
Manejo de Ficheros
Los ficheros son archivos de texto, los Modos en los ficheros son:
y y y
r Slo lectura. El puntero al comienzo del archivo r+ Lectura y escritura; apuntador al inicio del archivo w Slo escritura, si no existe el archivo lo crea, si existe lo convierte en fichero de longitud cero y el apuntador se coloca en el inicio (sobrescribe el contenido, vamos) w+ Lectura y escritura, si existe lo trunca a tamao cero, y se sita al inicio, si no existe lo crea a Modo append, slo escritura, si no existe lo crea. Si existe, el apuntador se coloca al final del fichero (listo para escribir a continuacin del contenido) a+ Modo append, lectura y escritura, si no existe lo crea; apuntador al final del archivo
35
Manejo de Ficheros
36
37
38
39
CLASE NMERO 4
Comandos MySQL
SELECT [ * / CAMPOS] FROM [TABLA] WHERE [PARAMETROS] GROUP BY [CAMPO] ORDER BY [CAMPOS] LIMIT [INICIO,FIN]; INSERT INTO [TABLA] VALUES([CAMPOS DE LA TABLA]); UPDATE [TABLA] SET [C1=N1,,CN=NN] WHERE [PARAMETROS] DELETE FROM [TABLA] WHERE [PARAMETROS] ejemplo de sintaxis SELECT mas detallado http://dev.mysql.com/doc/refman/5.0/es/select.html lo podemos encontrar en:
Un
SELECT [ALL | DISTINCT | DISTINCTROW ] [HIGH_PRIORITY] [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] select_expr, ... [INTO OUTFILE 'file_name' export_options | INTO DUMPFILE 'file_name'] [FROM table_references [WHERE where_definition] [GROUP BY {col_name | expr | position} [ASC | DESC], ... [WITH ROLLUP]] [HAVING where_definition] [ORDER BY {col_name | expr | position} [ASC | DESC] , ...] [LIMIT {[offset,] row_count | row_count OFFSET offset}] [PROCEDURE procedure_name(argument_list)] [FOR UPDATE | LOCK IN SHARE MODE]]
41
42
43
44
Nueva Funcin: public function grabarDatos($a1,$a2,$a3,$a4,$a5,$a6){ grabarDatos($a1,$a2,$a3,$a4,$a5,$a6){ $query="INSERT INTO t_persona VALUES('$a1','$a2','$a3','$a4','$a5','$a6')"; query="INSERT $query=mysql_query($query); query=mysql_query($query); return $query; $query; }
Carlos Eduardo, Pin Indacochea 45
46
47
Pantalla para iniciar sesin. Pantalla para ingreso de productos. Reportes de productos existentes. Capacidad de poder aadir nuevos usuarios.
Nota: Asuma el diseo de las tablas, por lo general deben ir las tablas: producto, usuario y perfil de usuario; puede aadir la elaboracin de comprobantes de pago; realice el sistema con clases y ordnelo en carpetas; el producto ingresado debe tener la fecha de ingreso exacta y la hora de ingreso exacta. Finalmente agregue una forma de exportar los reportes a un fichero, para que se genere un backup diario de los productos de la tienda. Adems la tabla usuario debe tener un campo e-mail; para que al momento de registrar a un nuevo usuario se le enve automticamente un correo electrnico con un mensaje de Bienvenida.
Carlos Eduardo, Pin Indacochea 48
CLASE NMERO 5
50
51
52
53
54
55
56
57
58
59
60
61
62
Pantalla para actualizacin de productos. Pantalla para eliminar productos. Mostrar la lista de productos en un SELECT La tabla productos debe tener imgenes. Aadir diferentes tipos reportes y con diferentes filtros.
63
CLASE NMERO 6
65
66
Vistas en MySQL
La estructura de una Vista es:
CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] VIEW [nombre_vista] [(columnas)] [nombre_vista] [(columnas)] AS sentencia_ select [WITH [CASCADED | LOCAL] CHECK OPTION]
Para llamarla:
SELECT * FROM [nombre_vista] [nombre_vista]
Un ejemplo:
CREATE VIEW v1 AS SELECT * FROM t2 WHERE EXISTS (SELECT 1 FROM t1 WHERE t1.a = t2.a); UPDATE t1, v2 SET t1.a = 1 WHERE t1.b = v2.b;
67
Vistas en MySQL
68
Desencadenadores en MySQL
Los Desencadenadores o Trigger se ejecutan automticamente ya que trabajan a nivel de tabla, y cuando se da un evento en dicha tabla se genera automticamente dicho evento, la estructura es la siguiente:
CREATE TRIGGER nombre_disp momento_disp evento_disp ON nombre_tabla FOR EACH ROW sentencia_disp Nota de la referencia: Un disparador es un objeto con nombre en una base de datos que se asocia con una tabla, y referencia: se activa cuando ocurre un evento en particular para esa tabla. El disparador queda asociado a la tabla nombre_tabla. Esta debe ser una tabla permanente, no puede ser una tabla TEMPORARY ni una vista.
momento_disp es el momento en que el disparador entra en accin. Puede ser BEFORE (antes) o AFTER (despues), para indicar que el disparador se ejecute antes o despus que la sentencia que lo activa. evento_disp indica la clase de sentencia que activa al disparador. Puede ser INSERT, UPDATE, o DELETE. Por ejemplo, un disparador BEFORE para sentencias INSERT podra utilizarse para validar los valores a insertar. No puede haber dos disparadores en una misma tabla que correspondan al mismo momento y sentencia. Por ejemplo, no se pueden tener dos disparadores BEFORE UPDATE. Pero s es posible tener los disparadores BEFORE UPDATE y BEFORE INSERT o BEFORE UPDATE y AFTER UPDATE.
sentencia_disp es la sentencia que se ejecuta cuando se activa el disparador. Si se desean ejecutar mltiples sentencias, deben colocarse entre BEGIN ... END, el constructor de sentencias compuestas. Esto adems posibilita emplear las mismas sentencias permitidas en rutinas almacenadas.
69
Desencadenadores en MySQL
70
Desencadenadores en MySQL
71
session_start(); session_start(); // Permite el uso de sesiones, debe ir en la cabecera de la pgina PHP $_SESSION[VALOR]=VALUE; // Crea una sesin _SESSION[VALOR]=VALUE; unset($_SESSION[VALOR]); unset($_SESSION[VALOR]); // Elimina una sesin en especial. session_destroy(); session_destroy(); // Destruye todas las sesiones creadas.
72
73
74
CLASE NMERO 7
ESTILOS (CSS)
CSS: CSS: Cascading Style Sheets; es el lenguaje de hojas de estilos ms Sheets; utilizado para la creacin de pginas Web llamativas y de esta forma mejorar el aspecto visual. Hay 3 formas de utilizar las CSS:
a) b) c)
Asignando el estilo dentro de cada elemento HTML (No recomendado) Dentro del mismo cdigo (No recomendado) En una hoja de estilos a parte (Recomendado)
Nosotros slo utilizaremos la tercera, la sintaxis HTML bsica para llamar a un documento CSS de un archivo es:
<link rel="stylesheet" type="text/css" href=UBICACIN CSS" />
Mayor informacin en: http://www.w3c.es/divulgacion/guiasbreves/HojasEstilo http://es.kioskea.net/contents/css/cssposition.php3
76
ESTILOS (CSS)
Las hojas de estilos se dividen en componentes HTML, clases y ID, cada una de ellas se simboliza de la siguiente manera: Clases (.[NOMBRE]): Seala a un grupo de objetos que puede llevar la [NOMBRE]): misma clase, es llamada dentro del componente HTML de la siguiente manera: <div class=[CLASE]>ALGO</div>; cuando se lleva un punto (.); automticamente HTML lo reconoce como CLASE. ID (#[NOMBRE]): Es una llave primaria, es decir, nicamente lo puede (#[NOMBRE]): llevar un objeto HTML ya que es la mejor prctica, por lo general se usa en casos muy concisos o para trabajar anidado a JavaScript y finalmente formar AJAX. Los componentes HTML son: h1, h2, h3, h4, span, div, input, select, span, div, select, body, etc; y van sin punto (.) ni #; simplemente como su nombre lo etc; indica. indica.
77
ESTILOS (CSS)
Nota: La extensin de las hojas de estilos es *.CSS (.css); podemos encontrar varios ejemplos en Internet y tambin en el mismo DreamWeaver
78
79
CLASE NMERO 8
82
83
84
JavaScript
85
JavaScript
86
JavaScript
Para llevar la parte de JavaScript usaremos:
87
Ejercicios
Incorpore al Caso 2 los patrones de diseo MVC y vea la mejor forma de incorporar JavaScript en los eventos, sea para re direccionar, mensajes de alerta, etc.
88
CLASE NMERO 9
90
91
92
93
94
95
Ejercicios
Incorpore al autocompletado elaborado con AJAX la posibilidad que al hacer CLICK en un TEXTO que aparece por debajo del texto digitado, se copie y pegue a la caja de texto original y desaparezca el auto sugeridor para completar la palabra.
96
CLASE NMERO 10
Introduccin a JQUERY
jQuery es una librera JavaScript muy rpida y muy ligera que simplifica el desarrollo de la parte de cliente de las aplicaciones Web. En otras palabras, jQuery incluye muchas utilidades para crear fcilmente las pginas web de las aplicaciones dinmicas complejas. Las libreras jQuery son un archivo .JS que se invoca de la siguiente manera:
<script type="text/javascript src="jquery.js"></script> type="text/javascript
98
JQUERY
jQuery tiene una sintaxis muy sencilla. Los comandos se reconocen por comenzar con el smbolo "$". Ahora, la forma de una sentencia es la siguiente: $(elemento).evento(funcin-o-parmetro); (elemento).evento(funcin- parmetro); Un ejemplo:
JQUERY
Veamos un ejemplo JAVASCRIPT y JQUERY:
JAVASCRIPT
// Seleccionar un elemento document.getElementById("miParrafo"); document.getElementById("miParrafo"); // Seleccionar todos los enlaces document.getElementsByTagName("a"); document.getElementsByTagName("a"); // Seleccionar todo lo anterior ? // Seleccionar mediante la clase CSS ?
comparativo
entre
JQUERY
// Seleccionar un elemento $("#miParrafo"); $("#miParrafo"); // Seleccionar todos los enlaces $("a"); // Seleccionar todo lo anterior $("#miParrafo, $("#miParrafo, a") // Seleccionar mediante la clase CSS $(".miClase") $(".miClase")
100
JQUERY
Referencias en:
101
102