Académique Documents
Professionnel 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
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
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
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
10
11
8/12/2007
13
8/12/2007
14
Parte
15
8/12/2007
16
17
8/12/2007
18
8/12/2007
19
Algunas Instrucciones de
PHP
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;
Pag. 18
8/12/2007
22
Comentarios
8/12/2007
23
La fecha y hora se
genera al momento de
ejecutarse el script
que crea la pgina.
Pag. 20
8/12/2007
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
Acceder Variables de la
Forma
8/12/2007
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.
<br />';
<br />';
<br />';
27
EJEMPLO DE LA CORRIDA
Debe mostrar
los mismos
valores que
entr el usuario
en pantalla.
Pag. 22
8/12/2007
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 />';
La comilla no
puede ser
sencilla.
Pag. 24-25
29
30
8/12/2007
31
32
Constantes
PHP permite declarar constantes, algunos
ejemplos son:
define(TIREPRICE,100);
define(OILPRICE,10);
define(SPARKPRICE,4);
echo TIREPRICE;
8/12/2007
33
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
Operad
or
Nombre
Ejemplo
+
*
/
%
Suma
$a + $b
Resta
$a - $b
Multiplicacin
$a * $b
Divisin
$a / $b
Modulus
$a % $b
8/12/2007
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
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;
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
39
Otros Operadores
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.
8/12/2007
41
Resultado de la Corrida
Pag. 40
8/12/2007
42
Utilizando Funciones de
Variables
$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
43
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
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
45
8/12/2007
46
Ciclo - WHILE
$num = 1;
while ($num <= 5)
{
echo $num.<br />;
$num++;
}
8/12/2007
47
Cdigo de Ejemplo
8/12/2007
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
49
Ciclo doWhile
$num = 100;
do
{
echo $num.<br />;
}
while ($num < 1 );
Pag. 53-54
8/12/2007
50
if ($totalqty == 0)
{
echo You did not order anything on the previous page!<br />;
exit;
}
8/12/2007
51
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
53
PASO - 2
Seleccionar
EasyPHP 2.0 beta 1
8/12/2007
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
55
PASO - 4
Primero
se indica
el idioma
que se
desea y
luego
comienza
el Wizard
de la
instalaci
n
8/12/2007
56
PASO - 5
Se acepta el
agreement y se
lee la informacin
importante.
8/12/2007
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
59
PASO - 8
La
instalacin
debe
completars
e 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
- 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.
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
65
Menu de EasyPHP
8/12/2007
66
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.
67
68
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
Pag. 26671
267
<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>
72
8/12/2007
Pag. 269
73
75
Pag. 270
76
77
8/12/2007
78
79
//object oriented
o
mysqli_select_db(db_resource, db_name)//
8/12/2007
procedural
80
81
82
83
Nelliud D. Torres
85
Poner Informacin en la
Base de Datos
Enviar la consulta
Cotejar los resultados
87
8/12/2007
88
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>
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
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
95