Professional Documents
Culture Documents
Qu es PHP?
Server-side scripting language. Diseado para el Web. Se interpreta a nivel del servidor y genera cdigo HTML o algn otro tipo de output que el visitante podr ver. Fue concebido en 1994 por Rasmun Lerdorf. Para el 2004 estaba instalado en 17 millones de dominios, se puede ver el nmero actual en: http://www.php.net/usage.php
8/12/2007 - Derechos Reservados - Prof. Nelliud D. Torres 2
Qu es PHP? (cont.)
Es un producto Open Source. Originalmente PHP significaba Personal Home Page. Luego se cambi a PHP Hypertext Preprocesor. La pgina principal es: http://www.php.net La pgina de Zend Technologies que apoya PHP es: http://zend.com
8/12/2007
Fortalezas de PHP
Alto rendimiento (performance) PHP es altamente eficiente, en la pgina http://www.zend.com se muestran estadsticas que as lo confirman. Interacta con muchas bases de datos En adicin a MySQL, PHP trabaja con PostgreSQL, MSQL, Oracle, dbm, FilePro, Hyperwave, Informix, InterBase y Sybase entre otros. Libreras Debido a que PHP se diseo para utilizarse en el Web, contiene mltiples funciones integradas (built-in) con tareas relacionadas al Web.
8/12/2007
Qu es MySQL? (cont.)
Es un robusto y rpido Relational Database Management (RDBMS) Controla el acceso a los datos y se asegura que mltiples usuarios puedan utilizarlo. Provee acceso rpido y seguro. Utiliza el standard query language (SQL). Es el database open source ms popular del mundo
8/12/2007 - Derechos Reservados - Prof. Nelliud D. Torres 8
Fortalezas de MySQL
Rendimiento (performance) MySQL es innegablemente rpido. En la pgina http://www.mysql.com/why-mysql/whitepapers/performance.php muestra comparaciones con otros productos. En el 2002 la revista eWeek hizo una comparacin de ejecutoria de bases de datos y MySQL qued empatado con Oracle. PDF Bajo costo Se puede conseguir una licencia open source sin costo alguno y licencias comerciales a un costo bajo. Fcil de usar La operacin del producto es similar a otros.
8/12/2007 - Derechos Reservados - Prof. Nelliud D. Torres 9
Algunas de estas elecciones puede crear dependencia en otras. Ej. No todos los sistemas Operativos corren el mismo Hardware y no todos los lenguajes scripting se conectan a todas las bases de datos.
8/12/2007 - Derechos Reservados - Prof. Nelliud D. Torres 11
8/12/2007
13
Primera Parte
8/12/2007
14
Parte
15
8/12/2007
16
17
8/12/2007
18
8/12/2007
19
8/12/2007
21
Whitespace
Los espacios en blanco al igual que en HTML no afecta la ejecucin del cdigo ni el resultado en pantalla. Sin embargo se recomiendo la indentacin y separacin adecuada que facilite la lectura del cdigo. Ejemplo: echo hello ; echo world; echo hello ; echo world;
8/12/2007 - Derechos Reservados - Prof. Nelliud D. Torres
Pag. 18
22
Comentarios
Comments Al igual que otros lenguajes, PHP permite incluir comentarios dentro de su cdigo e ignorarlos al momento de ejecucin. Comentarios Ejemplos: de ms de una
/* Author: Bob Smith Last modified: April 10 This program processes the customer orders. */
lnea Comentarios como parte de una misma lnea
8/12/2007
23
Pag. 20
8/12/2007 - Derechos Reservados - Prof. Nelliud D. Torres 24
Uso de Funciones
<?php echo '<p>Order processed at</p>'; echo date('H:i, jS F'); echo '</p>'; ?>
H La hora en militar. i Minutos incluyendo ceros a la izquierda. j Dia del mes sin incluir ceros a la izquierda. S Uso de sufijo (en este caso th) F Nombre completo del mes.
8/12/2007
25
8/12/2007
26
Ejemplo Cdigo - 1
Modificar el cdigo anterior para que incluya lo siguiente:
// Creacion de variables $tireqty = $_POST['tireqty']; $oilqty = $_POST['oilqty']; $sparkqty = $_POST['sparkqty']; //
Creando las variables.
echo '<p>Your order is as follows: </p>'; echo $tireqty. ' tires echo $oilqty. ' bottles of oil echo $sparkqty. ' spark plugs <br />'; <br />'; <br />';
EJEMPLO DE LA CORRIDA
Pag. 22
8/12/2007 - Derechos Reservados - Prof. Nelliud D. Torres 28
Concatenar Caracteres
El laboratorio pasado muestra que el punto se utiliza para concatenar cadenas de caracteres de diferentes formatos (String concatenation). Esto evita el tener que utilizar demasiado la directiva echo. La instruccin: Ambas hacen lo
echo $tireqty. ' tires <br />';
mismo.
Pag. 24-25
8/12/2007 - Derechos Reservados - Prof. Nelliud D. Torres 29
PHP permite que las variables cambien de tipo de dato de acuerdo al valor que almacenen al momento.
8/12/2007
32
Constantes
PHP permite declarar constantes, algunos ejemplos son:
define(TIREPRICE,100); define(OILPRICE,10); define(SPARKPRICE,4);
Se recomienda utilizar el formato de C para distinguir entre constantes y variables. Para referirse a las constantes no hay que usar el signo de dlar ($), por ejemplo:
echo TIREPRICE;
8/12/2007
33
6.
8/12/2007
34
Operadores Aritmticos
Son smbolos que se pueden utilizar para manipular valores y variables. A continuacin vamos a ver los diferentes operadores.
OPERADORES ARITMTICOS Operador Nombre Suma Resta Multiplicacin Divisin Modulus Ejemplo $a + $b $a - $b $a * $b $a / $b $a % $b
+ * / %
8/12/2007
35
+= -= *= /= %= .=
8/12/2007
36
Referencias en Variables
Para hacer referencias en variables, utilizamos el operador &, Ejemplo:
$a = 5; $b = $a; $a = 7; // $b va a seguir teniendo 7 $a = 5; $b = &$a; $a = 7; // $a y $b ambos tienen 7
8/12/2007
37
Operadores de Comparacin
Los operadores de comparacin (lgicos) son los siguientes;
OPERADORES DE COMPARACIN
Operador
Nombre
Igual Idntico No igual No idntico No igual
Uso
$a == $b $a === $b $a != $b $a !== $b $a <> $b
Menor que
Mayor que Menor o igual Mayor o igual
$a < $b
$a > $b $a <= $b $a >= $b
38
8/12/2007
Operadores Lgicos
Combina resultados de condiciones lgicas. La tabla a continuacin muestra las diferentes opciones.
OPERADORES LGICOS Operador Nombre Uso
! && || and or
NOT
AND OR
!$b
$a && $b $a || $b
AND
OR
$a and $b
$a or $b
8/12/2007
39
Otros Operadores
En adicin a los operadores ya mencionados, podemos incluir:
La coma (,) - Separa argumentos y otras listas. new y -> - Crear una instancia de una clase y acceder miembros. operador ternario (?:) - Trabaja igual que C, por ejemplo: ($grade >= 50 ? Passed : Failed) Error suppression El operador (@) puesto al frente de una expresin suprime un mensaje de warning o error si esta condicin se da. Ej. $a = @(57/0) // No da mensaje divisin por cero
8/12/2007 - Derechos Reservados - Prof. Nelliud D. Torres 40
Ejemplo Cdigo - 2
Modificar el cdigo anterior para que incluya lo siguiente al final:
$totalqty = 0; $totalqty = $tireqty + $oilqty + $sparkqty; echo 'Items ordered: '.$totalqty.'<br />'; $totalamount = 0.00; define('TIREPRICE',100); define('OILPRICE',10); define('SPARKPRICE',4); $totalamount = $tireqty + $oilqty + $sparkqty * TIREPRICE * OILPRICE * SPARKPRICE;
Acumulando cantidades
Definiendo constantes.
echo 'subtotal: $'.number_format($totalamount,2).'<br />'; $taxrate = 0.07; // tax local $totalamount = $totalamount * (1 + $taxrate); echo 'Total including tax: $'.number_format($totalamount,2).'<br />';
8/12/2007 - Derechos Reservados - Prof. Nelliud D. Torres 41
Resultado de la Corrida
Pag. 40
8/12/2007 - Derechos Reservados - Prof. Nelliud D. Torres 42
8/12/2007
8/12/2007
44
Estructuras de Control - IF
if ($totalqty == 0) { echo <font color=red>; echo You did not order anything on the previous page!<br />; echo </font>; } if ($totalqty == 0) { echo You did not order anything on the previous page!<br />; } else { echo $tireqty. ' tires <br />'; echo $oilqty. ' bottles of oil <br />'; echo $sparkqty. ' spark plugs <br />'; }
- Derechos Reservados - Prof. Nelliud D. Torres
8/12/2007
45
8/12/2007
46
Ciclo - WHILE
$num = 1; while ($num <= 5) { echo $num.<br />; $num++; }
8/12/2007
47
Cdigo de Ejemplo
<html> Encabezamiento de la tabla <body> <table border = 0 cellpadding = 3> <tr> <td bgcolor = "#CCCCCC" align = center>Distance</td> <td bgcolor = "#CCCCCC" align = center>Cost</td> </tr> Ciclo <?php $distance = 50; while ($distance <= 250 ) { echo "<tr>\n <td align = right>$distance</td>\n"; echo " <td align = right>". $distance / 10 ."</td>\n</tr>\n"; $distance += 50; } Generando la tabla dinmicamente ?> </table> </body> </html>
8/12/2007
48
Ciclo - FOR
<?php for($distance = 50; $distance <= 250; $distance += 50) { echo "<tr>\n <td align = right>$distance</td>\n"; echo " <td align = right>". $distance / 10 ."</td>\n</tr>\n" } ?>
8/12/2007
49
Ciclo doWhile
$num = 100; do { echo $num.<br />; } while ($num < 1 );
Slo se ejecuta una vez ya que num no es menor de 1. Este tipo de ciclo garantiza que por lo menos se va a ejecutar una vez. Ideal para mens.
Pag. 53-54
8/12/2007 - Derechos Reservados - Prof. Nelliud D. Torres 50
if ($totalqty == 0) { echo You did not order anything on the previous page!<br />; exit; }
- Derechos Reservados - Prof. Nelliud D. Torres
8/12/2007
51
Entre la direccin:
http://www.easy php.org/ debe
PASO - 1
8/12/2007
53
PASO - 2
8/12/2007
54
PASO - 3
Aparece una pgina en donde se procede a bajar la instalacin. El usuario debe indicar el lugar donde desea que se baje el archivo.
8/12/2007 - Derechos Reservados - Prof. Nelliud D. Torres 55
PASO - 4
Primero se indica el idioma que se desea y luego comienza el Wizard de la instalacin
8/12/2007
56
PASO - 5
PASO - 6
Se indica directorio y shortcut a utilizarse (dejar el valor default que trae la instalacin)
8/12/2007 - Derechos Reservados - Prof. Nelliud D. Torres 58
PASO - 7
8/12/2007
59
PASO - 8
La instalacin debe completarse sin ningn problema.
8/12/2007
60
Instrucciones - 1
Install EasyPHP Download EasyPHP from the website www.easyphp.org double-click on the downloaded executable select an installation directory and follow the instructions
8/12/2007
61
Instrucciones - 2
Run EasyPHP We are not really running EasyPHP as such: we are really a starting up Apache and MySQL. After installation, a short cut to EasyPHP is created in the directory "Start/Programs/EasyPHP". When EasyPHP is launched, an icon appears beside the clock [1]. A right-click gives access to various menus [2]: Help: help on EasyPHP Log Files: record errors generated by Apache, MySQL and EasyPHP Configuration: gives access to various configuration tools Explorer: open the directory "www" in Windows Explorer Administration : opens the administration page Web local : opens local web Restart : restarts Apache and MySQL Start/Stop : Starts/Stops Apache and MySQL Exit : closes EasyPHP
8/12/2007 - Derechos Reservados - Prof. Nelliud D. Torres 62
Instrucciones - 3
Use the directory "www" or an alias
You must place your files either in the directory "www" or an alias that you have created, so that PHP can interpret your PHP pages. To view your pages, select "local Web" or an Alias on the "Administration" page.
1 - open a new file. 2 - Type the structure of an HTML page. <html> <head> <title>My first page in PHP.</title> </head> <body> </body> </html>
8/12/2007 - Derechos Reservados - Prof. Nelliud D. Torres 63
3 - The example is designed to print the current date. The PHP Code is integrated directly into the
HTML and starts with. <html>
Instrucciones - 4
<head> <title>My first page in PHP.</title> </head> <body> Current date. : <? print (Date("l F d, Y")); ?> </body> </html> 4 - Saving the page.
Create a new directory in the directory "www" (or in an alias). Save your first PHP page there giving it one of the following extensions: php (recommended), php3, php4. This is not an absolute rule, but will function with this configuration of EasyPHP. It may necessary to modify these extensions if you choose to upload your pages to a web server which has a different configuration. For our example we choose the extension .php Rq: make sure in the screen options of Windows that the extensions of the files whose type is known are visible.
8/12/2007 - Derechos Reservados - Prof. Nelliud D. Torres 64
Instrucciones - 5
5 - See the result.
* DO NOT DO THIS: in Windows Explorer go to the directory "www" (or the directory of an alias) then the directory corresponding to your project and double-click on your example file. You will get an error message. *DO THIS : Launch EasyPHP, open "local Web", select your work directory (or an alias) then click on "date.php". You will see a web page which will shows the current date; for example: "current Date: Wednesday March 22, 2006". It is now up to you to create your own PHP pages.
8/12/2007
65
Menu de EasyPHP
8/12/2007
66
8/12/2007
67
Forma De Bsqueda
<html> <head> <title>Book-O-Rama Catalog Search</title> </head>
Pag. 266-267
71
8/12/2007
72
8/12/2007
Pag. 269
73
Pag. 270
76
8/12/2007
8/12/2007
77
8/12/2007
78
8/12/2007
79
//object oriented
8/12/2007
80
8/12/2007
81
Para saber la cantidad de instancias (records) que obtuvimos de la base de datos, utilizamos el siguiente comando:
$num_results = $result->num_rows;// object oriented o $num_results = mysqli_num_rows($result); // procedural
Esto hace falta para poder crear el ciclo que acceda esos datos y se puedan presentar al usuario:
for ($i=0; $i < $num_results; $i++) { // instrucciones }
8/12/2007 - Derechos Reservados - Prof. Nelliud D. Torres 82
Esto hace falta para poder crear el ciclo que acceda esos datos y se puedan presentar al usuario:
for ($i=0; $i < $num_results; $i++) { // instrucciones }
8/12/2007 - Derechos Reservados - Prof. Nelliud D. Torres 83
Esto hace falta para poder crear el ciclo que acceda esos datos y se puedan presentar al usuario:
for ($i=0; $i < $num_results; $i++) { // instrucciones }
8/12/2007 - Derechos Reservados - Prof. Nelliud D. Torres
8/12/2007
85
Para este caso se utiliza el comando INSERT en lugar del comando SELECT A continuacin vemos el ejemplo con el codigo newbook.html
- Derechos Reservados - Prof. Nelliud D. Torres
8/12/2007
87
8/12/2007
88
8/12/2007
89
Resultado de la Corrida
Pag. 277
8/12/2007
Pag. 278
92
Tpicos Adicionales
Existen otras formas de manejar las bases de datos Hay un standard para conectar a las Bases de Datos llamado ODBC (Open Database Connectivity) Esto permite conectar a la base de datos, pero no puedes utilizar las funciones que te permita la base de datos en particular. Otras bases de datos como Oracle, Db2, SqlServer tienen sus propias libreras que puedes incorporar a PHP.
8/12/2007
93
REFERENCIAS
PHP and MySQL Web Development, Third Edition, Luke Welling, and Laura Thomson http://www.php.net/usage.php http://www.php.net http://zend.com http://www.mysql.com/why-mysql/whitepapers/performance.php http://www.securityspace.com
8/12/2007 - Derechos Reservados - Prof. Nelliud D. Torres 94
REFERENCIAS (cont.)
PHP and MySQL Web Development, Third Edition, Luke Welling, and Laura Thomson http://www.easyphp.org/ http://www.mysql.com http://www.webopedia.com/TERM/O/ODBC.ht ml
- Derechos Reservados - Prof. Nelliud D. Torres
8/12/2007
95