Vous êtes sur la page 1sur 95

Presentacin PHP & MySQL

Por: Nelliud D. Torres

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

Qu es PHP? (cont.)
Usage Stats for April 2007
PHP: 20,917,850 domains, 1,224,183
IP addresses
Source: Netcraft

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

- Derechos Reservados - Prof. Nelliud D.


Torres

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

- Derechos Reservados - Prof. Nelliud D.


Torres

Fortalezas de PHP (cont. - 1)


Costo PHP es gratis. La ltima versin
se puede bajar de: http://www.php.net
Fcil de aprender La sintaxis de PHP
es similar a la de C. Por lo tanto si uno
conoce cualquier lenguaje similar a C
(Java, C++, C#) puede aprender PHP
rpidamente.
Apoyo a Objetos La versin 5 de PHP
provee varias capacidades de este
paradigma de programacin.
8/12/2007

- Derechos Reservados - Prof. Nelliud D.


Torres

Fortalezas de PHP (cont. - 2)


Portabilidad PHP esta disponible para
diferentes sistemas operativos. Usualmente el
cdigo que se escribe para una plataforma,
trabaja sin modificaciones en otra.
Source Code El programador tiene acceso
al cdigo fuente lo que permite hacer
modificaciones sin la necesidad de esperar por
actualizaciones ni preocuparse si el vendedor
se va a quiebra y termina el apoyo al producto.
Disponibilidad de apoyo La compaa
Zend Technologies (www.zend.com) provee
apoyo a PHP.
8/12/2007

- Derechos Reservados - Prof. Nelliud D.


Torres

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

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

Fortalezas de MySQL (cont.)


Portabilidad Se puede utilizar en
diferentes sistemas Unix y en Windows.
Source Code El programador tiene el
cdigo fuente disponible para hacer
cambios y/o mejoras a la base de datos.
Disponibilidad de apoyo No todos los
productos open source tienen una
compaa que provea apoyo,
entrenamiento, consultora, etc. Sin
embargo se puede obtener todos estos
beneficios en MySQLAB. (www.mysql.com)
8/12/2007

- Derechos Reservados - Prof. Nelliud D.


Torres

10

Decisiones a tomar cuando se va a


construir un e-commerce site

Hardware para el servidor


Sistema Operativo
Software orientado a Web
Sistema de Base de Datos
Un lenguaje de programacin scripting

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

Estadsticas sobre servidores


Web
marzo 2008

Estadsticas sobre servidores Web


marzo 2008 (cont.)

Estadsticas del mes de


http://www.securityspace.com/s_
survey/data/200803/com/index.
html

8/12/2007

- Derechos Reservados - Prof. Nelliud D.


Torres

13

Ejemplo sencillo de cmo utilizar XHTML y


PHP - 1Nombre del script de PHP
<html>
que se va a correr cuando se
<body>
someta la forma
<form action="processorder.php" method="post">
<table border="0">
Primera Parte
<tr bgcolor="#cccccc">
<td width="150">Item</td>
Mtodo en el que se van
<td width="15">Quantity</td>
a pasar valores al script
</tr>
de PHP
<tr>
<td>Tires</td>
<td align="center"><input type="text"
name="tireqty" size="3"
Nombres de variables de
maxlength="3"></td>
la forma que pueden ser
</tr>
utilizados dentro del
<tr>
script de PHP
<td>Oil</td>
<td align="center"><input type="text"
name="oilqty" size="3" maxlength="3"></td>
</tr>
<tr>

8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

14

Ejemplo sencillo de cmo utilizar XHTML y


PHP - 2
<td>Spark Plugs</td>
Segunda
<td align="center"><input type="text"
name="sparkqty" size="3"
maxlength="3"></td>
</tr>
List Box
<tr>
<td>How did you find Bob's?</td>
<td><select name="find">
<option value = "a">I'm a regular customer</option>
<option value = "b">TV advertising</option>
<option value = "c">Phone directory</option>
<option value = "d">Word of mouth</option>
</select>
Botn para
</td>
someter la
</tr>
forma
<tr>
<td colspan="2" align="center"><input type="submit"
value="Submit Order"></td>
</tr>
</table> </form> </body> </html>
8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

Parte

15

Forma creada por el Browser

8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

16

Cdigo en PHP que procesa la


forma
<html>
<head>
<title>Bobs Auto Parts Order
Results</title>
</head>
<body>
<h1>Bobs Auto Parts Order
Results</h1>
<h2>Order Results</h2>
<?php
echo <p>Order processed.</p>;
?>
</body>
</html>
8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

Este ejemplo slo


tira el mensaje de
que la orden fue
procesada

17

Mensaje generado por PHP

8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

18

Cotejar el cdigo (source) de


la pgina

8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

19

Algunas Instrucciones de
PHP

USO DE LOS TAGS EN PHP


El cdigo PHP comienza con <?php y termina
con ?> similar a los tags que se utilizan en
HTML. Estos smbolos se llaman php tags y le
indican al Web server en donde comienza y
termina el cdigo de PHP. Cualquier cdigo que
se ponga dentro de estos tags se interpreta por
el Web server como cdigo de PHP. Lo que no
est dentro del tag de PHP se considera HTML.

8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

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;
Pag. 18
8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

22

Comentarios

Comments Al igual que otros lenguajes,


PHP permite incluir comentarios dentro de
su cdigo e ignorarlos al momento de
ejecucin.
Comentario
s de ms de
Ejemplos:
una lnea
/* Author: Bob Smith
Comentario
s como
Last modified: April 10
parte de
This program processes the customer orders. una misma
lnea
*/
echo <p>Order processed.</p>; // Start printing order

8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

23

Resultado Contenido Dinmico

La fecha y hora se
genera al momento de
ejecutarse el script
que crea la pgina.

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

- Derechos Reservados - Prof.


Nelliud D. Torres

25

Acceder Variables de la
Forma

Las variables en PHP comienzan con el signo de dlar ($).


De acuerdo a la versin y configuracin del PHP que se
tenga en el servidor, podemos recoger los valores de las
variables en tres formas.
Short style ($tireqty) Corto y conveniente, pero
requiere que se active la opcin register_globals.
Medium style ($_POST[tireqty]) Recomendado por el
libro.
Long style ($HTTP_POST_VARS[tireqty]) Es el ms
largo, pero el ms portable. Si se desactiva, mejora el
rendimiento de la ejecucin del cdigo. No se
recomienda.

8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

26

Ejemplo Cdigo - 1
Modificar el cdigo anterior para que incluya lo
siguiente:
Creando las
variables.

// Creacion de variables
$tireqty = $_POST['tireqty'];
$oilqty
= $_POST['oilqty'];
$sparkqty = $_POST['sparkqty'];
//

Mostrando los
valores en pantalla.

echo '<p>Your order is as follows: </p>';


echo $tireqty. ' tires
echo $oilqty.
' bottles of oil
echo $sparkqty. ' spark plugs
8/12/2007

<br />';
<br />';
<br />';

El punto concadena la variable con el


texto
- Derechos Reservados - Prof.
Nelliud D. Torres

27

EJEMPLO DE LA CORRIDA

Debe mostrar
los mismos
valores que
entr el usuario
en pantalla.

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.
Ambas hacen
lo mismo.
La instruccin:
echo $tireqty. ' tires <br />';

Puede ser sustituida por:


echo $tireqty tires <br />;
8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

La comilla no
puede ser
sencilla.
Pag. 24-25
29

Reglas para uso de Identifiers


Identifiers pueden ser nombres de variables,
funciones y clases entre otros.
Las reglas para definir identifiers son:
Pueden ser de cualquier largo y pueden consistir
de letras, nmeros y under-score.
No pueden comenzar con un dgito.
Son case sensitive. Los nombres de funciones son
la excepcin ya que no son case sensitive.
Una variable puede tener el mismo nombre de
una funcin, sin embargo esto no es
recomendado.
8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

30

Creacin y Asignacin de Variables


PHP permite declarar variables en adicin a las que
se pasan de HTML.
No es necesario declarar las variables en PHP antes
de utilizarlas.
Una variable se crea cuando se le asigna un valor
por primera vez.
Se utiliza el operador de igualdad (=) para asignar
valor.
Ejemplos:
$totalqty = 0;
$totalamount = $totalqty;
$sumatotal = 0.0;

8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

31

Tipos de Datos en PHP

Los tipos de datos que maneja PHP son:

Integer Maneja nmeros enteros.


Float Maneja nmeros reales. (tambin se le
llama double)
String Maneja cadena de caracteres.
Boolean Cierto o Falso.
Array Maneja arreglos.
Object Almacena instancias de las clases.

PHP permite que las variables cambien de tipo


de dato de acuerdo al valor que almacenen al
momento.
8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

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

- Derechos Reservados - Prof.


Nelliud D. Torres

33

Alcance (scope) de las Variables


Por scope nos referimos a los lugares en donde una
variable puede ser visible dentro de la estructura de
PHP.
Los seis tipos de scope en PHP son:
1. Built-in superglobal Estn visibles en toda la estructura.
2. Constants Una vez se declaran, se pueden ver globalmente, por lo
tanto se pueden usar dentro y fuera de cualquier funcin.
3. Global variables Se ve dentro del script, pero no dentro de las
funciones.
4. Variables inside functions De funciones declaradas como global,
utilizan el mismo nombre en las variables globales.
5. Variables inside functions static No se ven fuera de la funcin, pero
si dentro.
6. Variables inside functions local Locales a la funcin y dejan de
existir cuando la ejecucin se sale de la funcin.

8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

34

Operadores Aritmticos
Son smbolos que se pueden utilizar para
manipular valores y variables. A continuacin
vamos a ver los diferentes operadores.
OPERADORES ARITMTICOS
Operad
or

Nombre

Ejemplo

+
*
/
%

Suma

$a + $b

Resta

$a - $b

Multiplicacin

$a * $b

Divisin

$a / $b

Modulus

$a % $b

8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

35

Operadores Aritmticos
Combinados
Es una forma corta de escribir ecuaciones
aritmticas. La siguiente tabla muestra un
resumen:
OPERADORES ARITMTICOS COMBINADOS
Operad
or

Uso

Equivalente a:

+=
-=
*=
/=
%=
.=

$a += $b

$a = $a + $b

$a -= $b

$a = $a - $b

$a *= $b

$a = $a * $b

$a /= $b

$a = $a / $b

$a %= $b

$a = $a % $b

$a .= $b

$a = $a . $b

8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

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

- Derechos Reservados - Prof. Nelliud


D. Torres

37

Operadores de Comparacin
Los
operadores
de
comparacin
(lgicos) son
los
siguientes;

8/12/2007

OPERADORES DE COMPARACIN
Operad
or

Nombre

Uso

Igual
$a == $b
==
Idntico
$a === $b
===
No igual
$a != $b
!=
No idntico
$a !== $b
!==
No igual
$a <> $b
<>
Menor que
$a < $b
<
Mayor que
$a > $b
>
Menor o igual
$a <= $b
<=
Mayor o igual
$a >= $b
>=
- Derechos Reservados - Prof. Nelliud
D. Torres

38

Operadores Lgicos
Combina resultados de condiciones lgicas.
La tabla a continuacin muestra las diferentes
opciones. OPERADORES LGICOS
Operad Nombre
or

!
&&
||
and
or
8/12/2007

Uso

NOT

!$b

AND

$a && $b

OR

$a || $b

AND

$a and $b

OR

$a or $b

- Derechos Reservados - Prof.


Nelliud D. Torres

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

Utilizando Funciones de
Variables

PHP tiene una librera de funciones que te


permiten manipular y probar variables.
gettype() Indica el tipo de dato de la variable.
settype() Define la variable al tipo de dato
especificado.
Ejemplo:

$a = 56;
echo gettype($a).<br />; // muestra integer
settype($a,double); // Lo cambia a double
echo gettype($a).<br />; // muestra double
Pag. 42

8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

43

Funciones que Cotejan Tipo de


Dato
Son funciones que cotejan el tipo de dato de
la variable. Devuelven true o false. Ejemplos:

is_array()
is_double(), is_float, is_real() // Todas son lo mismo.
is_long(), is_int(), is_integer() // Todas son lo mismo.
is_string()
is_object()
is_resource()
is_null()
is_scalar() , is_numeric(), is_callable()

8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

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 />';
}

8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

45

Estructura de Control - Switch


switch($find)
{
case a
echo <p>Regular customer.</p>;
break;
case b
echo <p>Customer referred by TV advert.</p>;
break;
case c
echo <p>Customer referred by phone directory.</p>;
break;
case d
echo <p>Customer referred by word of mouth.</p>;
break;
default :
echo <p>Do not know how this customer found us.</p>;
break;
}

8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

46

Ciclo - WHILE
$num = 1;
while ($num <= 5)
{
echo $num.<br />;
$num++;
}

8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

47

Cdigo de Ejemplo

Crear el siguiente script de php y ejecutarlo


<html>
Encabezamiento
<body>
tabla
<table border = 0 cellpadding = 3>
<tr>
<td bgcolor = "#CCCCCC" align = center>Distance</td>
<td bgcolor = "#CCCCCC" align = center>Cost</td>
Ciclo
</tr>
<?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

- Derechos Reservados - Prof.


Nelliud D. Torres

de la

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

- Derechos Reservados - Prof.


Nelliud D. Torres

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

Salir de una Estructura de Control


Si deseas detener la ejecucin de una
pieza de cdigo, tienes 3 formas de
conseguirlo:
1. Utilizar el enunciado break que permite salir
de un ciclo como por ejemplo un switch.
2. Utilizar el enunciado continue si deseas
continuar en el ciclo, pero que salte las
lneas que van de ese punto al final.
3. Utilizar el enunciado exit si deseas salir del
ciclo por completo. Ejemplo:

if ($totalqty == 0)
{
echo You did not order anything on the previous page!<br />;
exit;
}
8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

51

PASOS PARA LA INSTALACIN


DE EASYPHP

Entre la
direccin:

PASO - 1

http://www.eas
yphp.org/

debe
aparecer la
siguiente
pantalla:
nar
o
i
c
c
Sele loads
n
Do w

8/12/2007

- Derechos Reservados - Prof. Nelliud D.


Torres

53

PASO - 2

Seleccionar
EasyPHP 2.0 beta 1

8/12/2007

- Derechos Reservados - Prof. Nelliud D.


Torres

54

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

PASO - 3

- Derechos Reservados - Prof. Nelliud D.


Torres

55

PASO - 4
Primero
se indica
el idioma
que se
desea y
luego
comienza
el Wizard
de la
instalaci
n
8/12/2007

- Derechos Reservados - Prof. Nelliud D.


Torres

56

PASO - 5

Se acepta el
agreement y se
lee la informacin
importante.
8/12/2007

- Derechos Reservados - Prof. Nelliud D.


Torres

57

PASO - 6

Se indica directorio y
shortcut a utilizarse
(dejar el valor default
que trae la
instalacin)
- Derechos Reservados
8/12/2007

Torres

- Prof. Nelliud D.

58

PASO - 7

Se procede a
instalar el
producto
8/12/2007

- Derechos Reservados - Prof. Nelliud D.


Torres

59

PASO - 8
La
instalacin
debe
completars
e sin
ningn
problema.

8/12/2007

- Derechos Reservados - Prof. Nelliud D.


Torres

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

- Derechos Reservados - Prof. Nelliud D.


Torres

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
- Derechos Reservados - Prof. Nelliud D.
8/12/2007
Torres
Exit : closes EasyPHP

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.

Your first PHP page


There are many ways to program in PHP and there are many suitable text editors
(eg specialized for HTML or PHP with syntax highlighting etc). In this example we
will use a simple text editor.

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

Instrucciones - 4

3 - The example is designed to print the current date. The PHP Code is integrated
directly into the HTML and starts with. <html>

<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.
- Derechos Reservados - Prof. Nelliud D.
8/12/2007

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 doubleclick 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

- Derechos Reservados - Prof. Nelliud D.


Torres

65

Menu de EasyPHP

8/12/2007

- Derechos Reservados - Prof. Nelliud D.


Torres

66

Pasos para correr un Script


en PHP

Crear el
script y
guardarlo
en el
directorio
WWW
como se
muestra a
continuaci
n:
8/12/2007

Se recomienda
guardar cada
aplicacin en un
directorio por
separado.

- Derechos Reservados - Prof.


Nelliud D. Torres

67

Pasos para correr un Script en PHP


2
En EasyPHP
buscas la
opcin Local
Web (F7),
eso abrir el
Browser, de
ah se abre el
directorio
deseado y se
ejecuta el
script (click).
8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

68

Accediendo MySQL desde el


Web con PHP

Ejemplo De Cdigo y Forma


Para Acceder La Base De Datos

Forma De Bsqueda
<html>
<head>
<title>Book-O-Rama Catalog Search</title>
</head>
<body>
<h1>Book-O-Rama Catalog Search</h1>
<form action="results.php"
method="post">
Choose Search Type:<br />
<select name="searchtype">
<option
value="author">Author</option>
<option value="title">Title</option>
<option value="isbn">ISBN</option>
</select>
<br />
Enter Search Term:<br />
<input name="searchterm" type="text">
<br />
<input type="submit" value="Search">
</form>
</body>
</html>

8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

Pag. 26671
267

Cdigo PHP Buscar Base De


Datos

<html>
<head>
<title>Book-O-Rama Search Results</title>
</head>
<body>
<h1>Book-O-Rama Search Results</h1>
<?php
// create short variable names
$searchtype=$_POST['searchtype'];
$searchterm=$_POST['searchterm'];
$searchterm= trim($searchterm);

if (!$searchtype || !$searchterm)
{
echo 'You have not entered search details.
Please go back and try again.';
exit;
}
if (!get_magic_quotes_gpc())
{
$searchtype = addslashes($searchtype);
$searchterm = addslashes($searchterm);
}
@ $db = new mysqli('localhost', 'bookorama',
'bookorama123', 'books');
if (mysqli_connect_errno())
{
echo 'Error: Could not connect to database.
Please try again later.';

8/12/2007

exit;
}
$query = "select * from books where ".$searchtype."
like '%".$searchterm."%'";
$result = $db->query($query);
$num_results = $result->num_rows;
echo '<p>Number of books found: '.
$num_results.'</p>';
for ($i=0; $i <$num_results; $i++)
{
$row = $result->fetch_assoc();
echo '<p><strong>'.($i+1).'. Title: ';
echo htmlspecialchars(stripslashes($row['title']));
echo '</strong><br />Author: ';
echo stripslashes($row['author']);
echo '<br />ISBN: ';
echo stripslashes($row['isbn']);
echo '<br />Price: ';
echo stripslashes($row['price']);
echo '</p>';
}
$result->free();
$db->close();
?>
</body>
</html>

- Derechos Reservados - Prof.


Nelliud D. Torres

72

Pantalla con Resultados

8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

Pag. 269
73

Pasos Para Acceder La Base De


Datos Desde PHP

Consultar Base de Datos desde el


Web
1. Cotejar y filtrar la data que proviene del
usuario.
2. Establecer la conexin a la Base de
Datos.
3. Elegir y consultar la Base de Datos.
4. Obtener los resultados y presentarlos al
usuario.
5. Cerrar la conexin a la Base de Datos.
A continuacin explicamos cada paso:
8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

75

1. Cotejar y filtrar la data que


proviene del usuario.
Lo primero que hace el script despus de obtener los valores de la
forma es asegurarse que de no existan espacios en blanco en los
datos entrados por el usuario:
$searchterm = trim($searchterm);
Luego cotejamos que el usuario entr los datos requeridos por la
forma:
if (!$searchtype || !searchterm)
{
echo No se entraron los datos
exit;
}
8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

Pag. 270
76

1. Cotejar y filtrar la data que


proviene del usuario. (cont.)
Se tiene que cotejar si los datos vienen con las
comillas (quotes) automticamente o no. Es una
directiva que se puede configurar a nivel de
administracin. De no ser estar activada, hay
que incluirle los slashes al campo:
if (!get_magic_quotes_gpc())
{
$searchtype = addslashes($searchtype);
$searchterm = addslashes($searchterm);
}
8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

77

2. Establecer la conexin a la Base


de Datos.
Se usa en Object oriented
Librera que conecta a la
Para conectarnos a la Base de Datos:
base de datos

@ $db = new mysqli('localhost', 'root', 'root',


'books');
Username
Password
Nombre de la base de datos

8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

78

2. Establecer la conexin a la Base


de Datos. (cont.)
Una vez se hace la conexin, se debe verificar
que fue exitosa ya que el resto del cdigo
depende de que la conexin se logre. Se coteja
con el siguiente cdigo:
if (mysqli_connect_errno())
{
echo 'Error: Could not connect to
database. Please try again
De later.';
ser cierto el resultado de esta
funcin, significa que hubo
exit;
problemas al tratar de conectarse a
}
la base de datos.
8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

79

2. Establecer la conexin a la Base


de Datos. (cont. 2)
El libro indica el siguiente cdigo para
seleccionar la base de datos o si se desea
cambiar de base de datos:
$db->select_db(dbname)

//object oriented

o
mysqli_select_db(db_resource, db_name)//

8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

procedural

80

3. Elegir y consultar la Base de


Datos
Ya establecida la conexin, lo prximo que
debemos hacer es crear el comando de SQL
que queremos utilizar:
$query = "select * from books where ".
$searchtype." like '%".$searchterm."%'";

Para ejecutar el comando anterior:


$result = $db->query($query); // object oriented
$result = mysqli_query($db, $query); // procedural
8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

81

4. Obtener los resultados y


presentarlos al usuario

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

4. Obtener los resultados y


presentarlos al usuario (cont.)
Dentro del ciclo podemos utilizar la siguiente
instruccin para almacenar en una variable (row)
cada instancia y que nos permita mostrarla en
pantalla al usuario:
$row = $result->fetch_assoc();// object oriented
o
$row = mysqli_fetch_assoc($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

83

4. Obtener los resultados y


presentarlos al usuario (cont. 2)
Esto nos va a permitir mostrar los atributos como
por ejemplo el ISBN:
echo <br />ISBN: ;
echo stripslashes($row[isbn]);

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
}
- Derechos Reservados - Prof.
8/12/2007

Nelliud D. Torres

5. Cerrar la Conexin de la Base de


Datos
Se puede liberar las instancias obtenidas
utilizando el siguiente comando:
$result->free(); ();// object oriented
o
mysqli_free_result($result); // procedural

Finalmente podemos cerrar la conexin a la base


de datos:
$db->close(); // object oriented
o
mysqli_close($db) // procedural
8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

85

Poner Informacin en la
Base de Datos

Poner Informacin en la Base de


Datos
Los pasos son similares a los de mostrar
resultados:
Crear la conexin

Enviar la consulta
Cotejar los resultados

Para este caso se utiliza el comando


INSERT en lugar del comando SELECT
A continuacin vemos el ejemplo con el
codigo newbook.html
8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

87

Forma De Bsqueda Book-o-rama


<html>
<head>
<title>Book-O-Rama - New Book Entry</title>
</head>
<body>
<h1>Book-O-Rama - New Book Entry</h1>
<form action="insert_book.php" method="post">
<table border="0">
<tr>
<td>ISBN</td>
<td><input type="text" name="isbn" maxlength="13"
size="13"></td>
</tr>
<tr>
<td>Author</td>
<td> <input type="text" name="author" maxlength="30"
size="30"></td>
</tr>
<tr>
<td>Title</td>
<td> <input type="text" name="title" maxlength="60"
size="30"></td>
</tr>
<tr>
<td>Price $</td>
<td><input type="text" name="price" maxlength="7"
size="7"></td>
</tr>
<tr>
<td colspan="2"><input type="submit"
value="Register"></td>
</tr>
</table>
</form>
</body>
</html>

8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

88

Cdigo PHP de Entrar los Datos


<html>
<head>
<title>Book-O-Rama Book Entry
Results</title>
</head>
<body>
<h1>Book-O-Rama Book Entry
Results</h1>
<?php
// create short variable names
$isbn=$_POST['isbn'];
$author=$_POST['author'];
$title=$_POST['title'];
$price=$_POST['price'];
if (!$isbn || !$author || !$title || !$price)
{
echo 'You have not entered all the
required details.<br />'
.'Please go back and try again.';
exit;
}
8/12/2007

if (!get_magic_quotes_gpc())
{
$isbn = addslashes($isbn);
$author = addslashes($author);
$title = addslashes($title);
$price = doubleval($price);
}
@ $db = new mysqli('localhost', 'root', 'root', 'books');
if (mysqli_connect_errno())
{
echo 'Error: Could not connect to database. Please try
again later.';
exit;
}
$query = "insert into books values
('".$isbn."', '".$author."', '".$title."', '".$price."')";
$result = $db->query($query);
if ($result)
echo $db->affected_rows.' book inserted into
database.';
$db->close();
?>
</body>
</html>

- Derechos Reservados - Prof.


Nelliud D. Torres

89

Resultado de la Corrida

Buscando el Record a ver si fue Creado

Pag. 277

Revisin del Cdigo de Insertar


La siguiente instruccin permite insertar
instancias en la tabla:
$query = insert into books values
($isbn, author,
$title, $price);
$result = $db->query($query); // indica
si se inserto exitosamente o no

8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

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

- Derechos Reservados - Prof.


Nelliud D. Torres

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.html
8/12/2007

- Derechos Reservados - Prof.


Nelliud D. Torres

95

Vous aimerez peut-être aussi