SlideShare una empresa de Scribd logo
1 de 95
Presentación PHP & MySQL
Por: Nelliud D. Torres
¿Qué es PHP?
• Server-side scripting language.
• Diseñado para el Web.
• Se interpreta a nivel del servidor y genera código
HTML o algún 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 número actual en:
http://www.php.net/usage.php
8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 2
¿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 página principal es: http://www.php.net
• La página de Zend Technologies que apoya PHP
es: http://zend.com
8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 4
Fortalezas de PHP
• Alto rendimiento (performance) – PHP es altamente
eficiente, en la página http://www.zend.com se
muestran estadísticas que así lo confirman.
• Interactúa con muchas bases de datos – En adición a
MySQL, PHP trabaja con
PostgreSQL, MSQL, Oracle, dbm, FilePro, Hyperwave,
Informix, InterBase y Sybase entre otros.
• Librerías – Debido a que PHP se diseño para utilizarse
en el Web, contiene múltiples funciones integradas
(built-in) con tareas relacionadas al Web.
8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 5
Fortalezas de PHP (cont. - 1)
• Costo – PHP es gratis. La última versión se
puede bajar de: http://www.php.net
• Fácil 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 rápidamente.
• Apoyo a Objetos– La versión 5 de PHP provee
varias capacidades de este paradigma de
programación.
8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 6
Fortalezas de PHP (cont. - 2)
• Portabilidad – PHP esta disponible para diferentes
sistemas operativos. Usualmente el código que se
escribe para una plataforma, trabaja sin
modificaciones en otra.
• Source Code – El programador tiene acceso al
código 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 compañía Zend
Technologies (www.zend.com) provee apoyo a PHP.
8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 7
¿Qué es MySQL? (cont.)
• Es un robusto y rápido Relational Database
Management (RDBMS)
• Controla el acceso a los datos y se asegura que
múltiples usuarios puedan utilizarlo.
• Provee acceso rápido y seguro.
• Utiliza el standard query language (SQL).
• Es el database open source más popular del
mundo
8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 8
Fortalezas de MySQL
• Rendimiento (performance) – MySQL es
innegablemente rápido. En la página
http://www.mysql.com/why-mysql/white-
papers/performance.php muestra comparaciones con
otros productos. En el 2002 la revista eWeek hizo
una comparación 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.
• Fácil de usar – La operación del producto es similar a
otros.
8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 9
Fortalezas de MySQL (cont.)
• Portabilidad – Se puede utilizar en diferentes
sistemas Unix y en Windows.
• Source Code – El programador tiene el código
fuente disponible para hacer cambios y/o mejoras
a la base de datos.
• Disponibilidad de apoyo – No todos los productos
open source tienen una compañía que provea
apoyo, entrenamiento, consultoría, 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 programación 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
Estadísticas sobre servidores Web
marzo 2008
Estadísticas sobre servidores Web
marzo 2008 (cont.)
8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 13
Estadísticas del mes de
http://www.securityspace.com/s_survey
/data/200803/com/index.html
Ejemplo sencillo de cómo utilizar XHTML y PHP - 1
Primera Parte
<html>
<body>
<form action="processorder.php" method="post">
<table border="0">
<tr bgcolor="#cccccc">
<td width="150">Item</td>
<td width="15">Quantity</td>
</tr>
<tr>
<td>Tires</td>
<td align="center"><input type="text" name="tireqty" size="3"
maxlength="3"></td>
</tr>
<tr>
<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
Nombre del script de PHP que se va
a correr cuando se someta la forma
Método en el que se van a
pasar valores al script de PHP
Nombres de variables de la
forma que pueden ser
utilizados dentro del script de
PHP
Ejemplo sencillo de cómo utilizar XHTML y PHP - 2
Segunda Parte<td>Spark Plugs</td>
<td align="center"><input type="text" name="sparkqty" size="3"
maxlength="3"></td>
</tr>
<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>
</td>
</tr>
<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
15
List Box
Botón para
someter la
forma
Forma creada por el Browser
8/12/2007
© - Derechos Reservados - Prof. Nelliud D.
Torres
16
Código en PHP que procesa la forma
<html>
<head>
<title>Bob’s Auto Parts – Order Results</title>
</head>
<body>
<h1>Bob’s 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
17
Este ejemplo sólo
tira el mensaje de
que la orden fue
procesada
Mensaje generado por PHP
8/12/2007
© - Derechos Reservados - Prof. Nelliud D.
Torres
18
Cotejar el código (source) de la página
8/12/2007
© - Derechos Reservados - Prof. Nelliud D.
Torres
19
Algunas Instrucciones de PHP
USO DE LOS TAGS EN PHP
8/12/2007
© - Derechos Reservados - Prof. Nelliud D.
Torres
21
El código PHP comienza con <?php y termina con ?>
similar a los tags que se utilizan en HTML. Estos símbolos
se llaman php tags y le indican al Web server en donde
comienza y termina el código de PHP. Cualquier código
que se ponga dentro de estos tags se interpreta por el
Web server como código de PHP. Lo que no esté dentro
del tag de PHP se considera HTML.
Whitespace
• Los espacios en blanco al igual que en HTML no
afecta la ejecución del código ni el resultado en
pantalla. Sin embargo se recomiendo la
indentación y separación adecuada que facilite la
lectura del código.
• Ejemplo:
echo ‘hello ‘;
echo ‘world’;
echo ‘hello ‘; echo ‘world’;
8/12/2007
© - Derechos Reservados - Prof. Nelliud D.
Torres
22
Pag. 18
Comentarios
• Comments – Al igual que otros lenguajes, PHP
permite incluir comentarios dentro de su código e
ignorarlos al momento de ejecución.
• Ejemplos:
/* Author: Bob Smith
Last modified: April 10
This program processes the customer orders.
*/
echo ‟<p>Order processed.</p>; // Start printing order
8/12/2007
© - Derechos Reservados - Prof. Nelliud D.
Torres
23
Comentarios
de más de una
línea
Comentarios
como parte de
una misma
línea
Resultado Contenido Dinámico
8/12/2007
© - Derechos Reservados - Prof. Nelliud D.
Torres
24
Pag. 20
La fecha y hora se
genera al momento de
ejecutarse el script
que crea la página.
Uso de Funciones
<?php
echo '<p>Order processed at</p>';
echo date('H:i, jS F');
echo '</p>';
?>
8/12/2007
© - Derechos Reservados - Prof. Nelliud D.
Torres
25
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.
Acceder Variables de la Forma
• Las variables en PHP comienzan con el signo de dólar ($).
• De acuerdo a la versión y configuración 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 opción register_globals.
• Medium style ($_POST*‘tireqty’+) – Recomendado por el libro.
• Long style ($HTTP_POST_VARS*‘tireqty’+) – Es el más largo, pero
el más portable. Si se desactiva, mejora el rendimiento de la
ejecución del código. No se recomienda.
8/12/2007
© - Derechos Reservados - Prof. Nelliud D.
Torres
26
Ejemplo Código - 1
• Modificar el código anterior para que incluya lo siguiente:
// Creacion de variables
$tireqty = $_POST['tireqty'];
$oilqty = $_POST['oilqty'];
$sparkqty = $_POST['sparkqty'];
//
echo '<p>Your order is as follows: </p>';
echo $tireqty. ' tires <br />';
echo $oilqty. ' bottles of oil <br />';
echo $sparkqty. ' spark plugs <br />';
8/12/2007
© - Derechos Reservados - Prof. Nelliud D.
Torres
27
Creando las variables.
Mostrando los valores en
pantalla.
El punto concadena la variable con el texto
EJEMPLO DE LA CORRIDA
8/12/2007
© - Derechos Reservados - Prof. Nelliud D.
Torres
28
Pag. 22
Debe mostrar los
mismos valores que
entró el usuario en
pantalla.
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 instrucción:
echo $tireqty. ' tires <br />';
Puede ser sustituida por:
echo “$tireqty tires <br />”;
8/12/2007
© - Derechos Reservados - Prof. Nelliud D.
Torres
29
Pag. 24-25
Ambas hacen lo
mismo.
La comilla no puede
ser sencilla.
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, números y under-score.
• No pueden comenzar con un dígito.
• Son case sensitive. Los nombres de funciones son la
excepción ya que no son case sensitive.
• Una variable puede tener el mismo nombre de una
función, sin embargo esto no es recomendado.
8/12/2007
© - Derechos Reservados - Prof. Nelliud D.
Torres
30
Creación y Asignación de Variables
• PHP permite declarar variables en adición 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 números enteros.
– Float – Maneja números reales. (también 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
dólar ($), 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 – Están 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 función.
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 función, pero si
dentro.
6. Variables inside functions local – Locales a la función y dejan de existir
cuando la ejecución se sale de la función.
8/12/2007
© - Derechos Reservados - Prof. Nelliud D.
Torres
34
Operadores Aritméticos
• Son símbolos que se pueden utilizar para manipular
valores y variables. A continuación vamos a ver los
diferentes operadores.
8/12/2007
© - Derechos Reservados - Prof. Nelliud D.
Torres
35
OPERADORES ARITMÉTICOS
Operador Nombre Ejemplo
+ Suma $a + $b
- Resta $a - $b
* Multiplicación $a * $b
/ División $a / $b
% Modulus $a % $b
Operadores Aritméticos Combinados
• Es una forma corta de escribir ecuaciones aritméticas. La
siguiente tabla muestra un resumen:
8/12/2007
© - Derechos Reservados - Prof. Nelliud D.
Torres
36
OPERADORES ARITMÉTICOS COMBINADOS
Operador 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
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 Comparación
Los operadores
de comparación
(lógicos) son los
siguientes;
8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 38
OPERADORES DE COMPARACIÓN
Operador Nombre Uso
== Igual $a == $b
=== Idéntico $a === $b
!= No igual $a != $b
!== No idéntico $a !== $b
<> No igual $a <> $b
< Menor que $a < $b
> Mayor que $a > $b
<= Menor o igual $a <= $b
>= Mayor o igual $a >= $b
Operadores – Lógicos
• Combina resultados de condiciones lógicas. La tabla a
continuación muestra las diferentes opciones.
8/12/2007
© - Derechos Reservados - Prof. Nelliud D.
Torres
39
OPERADORES LÓGICOS
Operador Nombre Uso
! NOT !$b
&& AND $a && $b
|| OR $a || $b
and AND $a and $b
or OR $a or $b
Otros Operadores
• En adición 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 expresión suprime un mensaje de warning o error
si esta condición se da. Ej. $a = @(57/0) // No da
mensaje división por cero
8/12/2007
© - Derechos Reservados - Prof. Nelliud D.
Torres
40
Ejemplo Código - 2
• Modificar el código 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 * TIREPRICE
+ $oilqty * OILPRICE
+ $sparkqty * SPARKPRICE;
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
Acumulando cantidades
Definiendo constantes.
Resultado de la Corrida
8/12/2007
© - Derechos Reservados - Prof. Nelliud D.
Torres
42
Pag. 40
Utilizando Funciones de Variables
• PHP tiene una librería 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
8/12/2007
© - Derechos Reservados - Prof. Nelliud D.
Torres
43
Pag. 42
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
Código de Ejemplo
• Crear el siguiente script de php y ejecutarlo
<html>
<body>
<table border = 0 cellpadding = 3>
<tr>
<td bgcolor = "#CCCCCC" align = center>Distance</td>
<td bgcolor = "#CCCCCC" align = center>Cost</td>
</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;
}
?>
</table>
</body>
</html>
8/12/2007
© - Derechos Reservados - Prof. Nelliud D.
Torres
48
Encabezamiento de la tabla
Ciclo
Generando la tabla dinámicamente
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 do…While
$num = 100;
do
{
echo $num.’<br />’;
}
while ($num < 1 );
8/12/2007
© - Derechos Reservados - Prof. Nelliud D.
Torres
50
Pag. 53-54
Sólo 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 menús.
Salir de una Estructura de Control
• Si deseas detener la ejecución de una pieza de
código, 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 líneas 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 INSTALACIÓN DE
EASYPHP
PASO - 1Entre la
dirección:
http://www.easy
php.org/ debe
aparecer la
siguiente
pantalla:
8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 53
PASO - 2
8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 54
Seleccionar EasyPHP 2.0
beta 1
PASO - 3
Aparece una
página en
donde se
procede a
bajar la
instalación.
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
instalación
8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 56
PASO - 5
Se acepta el agreement
y se lee la información
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
instalación)
8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 58
PASO - 7
Se procede a instalar el
producto
8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 59
PASO - 8
La instalación
debe
completarse
sin ningún
problema.
8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 60
Instrucciones - 1
8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 61
Install EasyPHP
Download EasyPHP from the website www.easyphp.org
double-click on the downloaded executable
select an installation directory and follow the instructions
Instrucciones - 2
8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 62
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
Instrucciones - 3
8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 63
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>
Instrucciones - 4
8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 64
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.
Instrucciones - 5
8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 65
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.
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
© - Derechos Reservados - Prof. Nelliud D.
Torres
67
Se recomienda
guardar cada
aplicación en un
directorio por
separado.
Pasos para correr un Script en PHP - 2
8/12/2007
© - Derechos Reservados - Prof. Nelliud D.
Torres
68
En EasyPHP
buscas la
opción Local
Web (F7), eso
abrirá el
Browser, de ahí
se abre el
directorio
deseado y se
ejecuta el
script (click).
Accediendo MySQL desde el Web
con PHP
Ejemplo De Código y Forma Para
Acceder La Base De Datos
Forma De Búsqueda
<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
71
Pag. 266-267
Código 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
© - Derechos Reservados - Prof. Nelliud D.
Torres
72
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>
Pantalla con Resultados
8/12/2007
© - Derechos Reservados - Prof. Nelliud D.
Torres
73
Pag. 269
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 conexión a la Base de Datos.
3. Elegir y consultar la Base de Datos.
4. Obtener los resultados y presentarlos al
usuario.
5. Cerrar la conexión a la Base de Datos.
A continuación 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 después 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
76
Pag. 270
1. Cotejar y filtrar la data que proviene del
usuario. (cont.)
Se tiene que cotejar si los datos vienen con las comillas
(quotes) automáticamente o no. Es una directiva que se
puede configurar a nivel de administración. 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 conexión a la Base de
Datos.
Para conectarnos a la Base de Datos:
@ $db = new mysqli('localhost', 'root', 'root',
'books');
8/12/2007
© - Derechos Reservados - Prof. Nelliud D.
Torres
78
Username
Password
Nombre de la base de datos
Librería que conecta a la
base de datos
Se usa en Object oriented
2. Establecer la conexión a la Base de
Datos. (cont.)
Una vez se hace la conexión, se debe verificar que fue
exitosa ya que el resto del código depende de que la
conexión se logre. Se coteja con el siguiente código:
if (mysqli_connect_errno())
{
echo 'Error: Could not connect to
database. Please try again later.';
exit;
}
8/12/2007
© - Derechos Reservados - Prof. Nelliud D.
Torres
79
De ser cierto el resultado de esta
función, significa que hubo
problemas al tratar de conectarse a
la base de datos.
2. Establecer la conexión a la Base de
Datos. (cont. 2)
El libro indica el siguiente código 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)// procedural
8/12/2007
© - Derechos Reservados - Prof. Nelliud D.
Torres
80
3. Elegir y consultar la Base de Datos
Ya establecida la conexión, lo próximo 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 instrucción 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
}
8/12/2007
© - Derechos Reservados - Prof. Nelliud D.
Torres
5. Cerrar la Conexión 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 conexión 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 Información en la
Base de Datos
Poner Información en la Base de Datos
•Los pasos son similares a los de mostrar resultados:
– Crear la conexión
–Enviar la consulta
–Cotejar los resultados
•Para este caso se utiliza el comando INSERT en lugar
del comando SELECT
•A continuación vemos el ejemplo con el codigo
newbook.html
8/12/2007
© - Derechos Reservados - Prof. Nelliud D.
Torres
87
Forma De Búsqueda 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
Código PHP de Entrar los Datos
8/12/2007
© - Derechos Reservados - Prof. Nelliud D.
Torres
89
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>
<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;
}
Resultado de la Corrida
Buscando el Record a ver si fue Creado
Pag. 277
Revisión del Código de Insertar
La siguiente instrucción 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
92
Pag. 278
Tópicos 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 librerías 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/white-
papers/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
8/12/2007
© - Derechos Reservados - Prof. Nelliud D.
Torres
95

Más contenido relacionado

La actualidad más candente (6)

PHP IUTE
PHP IUTEPHP IUTE
PHP IUTE
 
Practica09
Practica09Practica09
Practica09
 
DEFINICION DE Php
DEFINICION DE PhpDEFINICION DE Php
DEFINICION DE Php
 
Programacion - Php
Programacion - PhpProgramacion - Php
Programacion - Php
 
Manual de php
Manual de phpManual de php
Manual de php
 
QUE ES PHP
QUE ES PHPQUE ES PHP
QUE ES PHP
 

Similar a Presentación PHP & MySQL para principiantes

Curso TIC de PHP y MSQL
Curso TIC de PHP y MSQLCurso TIC de PHP y MSQL
Curso TIC de PHP y MSQLWilian
 
15 servidor php
15 servidor php15 servidor php
15 servidor phpIsaacVk
 
Php adsi 2013 sena
Php adsi 2013 senaPhp adsi 2013 sena
Php adsi 2013 senayexikita1
 
Curso TIC de PHP y MSQL Parte 1
Curso TIC de PHP y MSQL Parte 1Curso TIC de PHP y MSQL Parte 1
Curso TIC de PHP y MSQL Parte 1Wilian
 
Investigacion Lenguaje php - Sindy
Investigacion Lenguaje php - SindyInvestigacion Lenguaje php - Sindy
Investigacion Lenguaje php - SindyJhoel Dgez Garcia
 
Construyendo aplicaciones con php + lua + redis
Construyendo aplicaciones con php + lua + redisConstruyendo aplicaciones con php + lua + redis
Construyendo aplicaciones con php + lua + redisTensor
 
Investigación Lenguaje Php Eduardo Flores
Investigación Lenguaje Php  Eduardo FloresInvestigación Lenguaje Php  Eduardo Flores
Investigación Lenguaje Php Eduardo FloresJhoel Dgez Garcia
 
Optimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-MemoryOptimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-MemoryGonzalo Chacaltana
 
Generalidades de Php
Generalidades de PhpGeneralidades de Php
Generalidades de Phpdenis2801
 
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdfPHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdfRaaulroodriguez
 
PHP Con symfony
PHP Con symfonyPHP Con symfony
PHP Con symfonycsalazart
 

Similar a Presentación PHP & MySQL para principiantes (20)

Curso TIC de PHP y MSQL
Curso TIC de PHP y MSQLCurso TIC de PHP y MSQL
Curso TIC de PHP y MSQL
 
15 servidor php
15 servidor php15 servidor php
15 servidor php
 
Php adsi 2013 sena
Php adsi 2013 senaPhp adsi 2013 sena
Php adsi 2013 sena
 
Curso TIC de PHP y MSQL Parte 1
Curso TIC de PHP y MSQL Parte 1Curso TIC de PHP y MSQL Parte 1
Curso TIC de PHP y MSQL Parte 1
 
Investigacion Lenguaje php - Sindy
Investigacion Lenguaje php - SindyInvestigacion Lenguaje php - Sindy
Investigacion Lenguaje php - Sindy
 
Php tema 4
Php tema 4Php tema 4
Php tema 4
 
Construyendo aplicaciones con php + lua + redis
Construyendo aplicaciones con php + lua + redisConstruyendo aplicaciones con php + lua + redis
Construyendo aplicaciones con php + lua + redis
 
Servidor PHP
Servidor PHPServidor PHP
Servidor PHP
 
Investigación Lenguaje Php Eduardo Flores
Investigación Lenguaje Php  Eduardo FloresInvestigación Lenguaje Php  Eduardo Flores
Investigación Lenguaje Php Eduardo Flores
 
Optimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-MemoryOptimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-Memory
 
Generalidades de Php
Generalidades de PhpGeneralidades de Php
Generalidades de Php
 
Php
PhpPhp
Php
 
Servidor php
Servidor phpServidor php
Servidor php
 
Cómo elegir un servidor Web
Cómo elegir un servidor WebCómo elegir un servidor Web
Cómo elegir un servidor Web
 
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdfPHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
 
Lab2
Lab2Lab2
Lab2
 
¿Cómo elegir servidor web?
¿Cómo elegir servidor web?¿Cómo elegir servidor web?
¿Cómo elegir servidor web?
 
Servidor php
Servidor phpServidor php
Servidor php
 
PHP Con symfony
PHP Con symfonyPHP Con symfony
PHP Con symfony
 
Código php
Código phpCódigo php
Código php
 

Más de SINAVEF_LAB

Acciones para atención de roya 25 de mayo
Acciones para atención de roya 25 de mayoAcciones para atención de roya 25 de mayo
Acciones para atención de roya 25 de mayoSINAVEF_LAB
 
12. conclusiones 2 reunion coordinacion mc. mitzi georgina gonz+ílez ochoa
12. conclusiones 2 reunion coordinacion mc. mitzi georgina gonz+ílez ochoa12. conclusiones 2 reunion coordinacion mc. mitzi georgina gonz+ílez ochoa
12. conclusiones 2 reunion coordinacion mc. mitzi georgina gonz+ílez ochoaSINAVEF_LAB
 
11. delimitaci+¦n de focos ver.22nov14
11. delimitaci+¦n de focos ver.22nov1411. delimitaci+¦n de focos ver.22nov14
11. delimitaci+¦n de focos ver.22nov14SINAVEF_LAB
 
10. adecuaciones formatos pvef cafe v23nov14 ing. gerardo acevedo s+ínchez
10. adecuaciones formatos pvef cafe v23nov14 ing. gerardo acevedo s+ínchez10. adecuaciones formatos pvef cafe v23nov14 ing. gerardo acevedo s+ínchez
10. adecuaciones formatos pvef cafe v23nov14 ing. gerardo acevedo s+ínchezSINAVEF_LAB
 
jaime rdenas pez
jaime rdenas pezjaime rdenas pez
jaime rdenas pezSINAVEF_LAB
 
6. avances t+®c ope pvef-cafe v22nov14ver2 dr. gustavo mora aguilera
6. avances t+®c ope pvef-cafe v22nov14ver2 dr. gustavo mora aguilera6. avances t+®c ope pvef-cafe v22nov14ver2 dr. gustavo mora aguilera
6. avances t+®c ope pvef-cafe v22nov14ver2 dr. gustavo mora aguileraSINAVEF_LAB
 
5. nuevos riegos asociados al cultivo del cafeto dr. ricardo y+í+¦ez l+¦pez
5. nuevos riegos asociados al cultivo del cafeto dr. ricardo y+í+¦ez l+¦pez5. nuevos riegos asociados al cultivo del cafeto dr. ricardo y+í+¦ez l+¦pez
5. nuevos riegos asociados al cultivo del cafeto dr. ricardo y+í+¦ez l+¦pezSINAVEF_LAB
 
4. perspectivas vef caf+® 2015 ing. rigoberto gonz+ílez g+¦mez
4. perspectivas vef caf+® 2015 ing. rigoberto gonz+ílez g+¦mez4. perspectivas vef caf+® 2015 ing. rigoberto gonz+ílez g+¦mez
4. perspectivas vef caf+® 2015 ing. rigoberto gonz+ílez g+¦mezSINAVEF_LAB
 
3. servicio de acompa+æamiento tecnico procafe ing. juan de dios del castillo
3. servicio de acompa+æamiento tecnico procafe ing. juan de dios del castillo3. servicio de acompa+æamiento tecnico procafe ing. juan de dios del castillo
3. servicio de acompa+æamiento tecnico procafe ing. juan de dios del castilloSINAVEF_LAB
 
2. ponencias m+®xico noviembre ing. jaime c+írdenas l+¦pez
2. ponencias m+®xico noviembre ing. jaime c+írdenas l+¦pez2. ponencias m+®xico noviembre ing. jaime c+írdenas l+¦pez
2. ponencias m+®xico noviembre ing. jaime c+írdenas l+¦pezSINAVEF_LAB
 
1. politica nacional cafetalera. ing. crist+¦bal sayago
1. politica nacional cafetalera. ing. crist+¦bal sayago1. politica nacional cafetalera. ing. crist+¦bal sayago
1. politica nacional cafetalera. ing. crist+¦bal sayagoSINAVEF_LAB
 
Enfermedades del cafe dr. rui leite
Enfermedades del cafe dr. rui leiteEnfermedades del cafe dr. rui leite
Enfermedades del cafe dr. rui leiteSINAVEF_LAB
 
Sist. de vig. epidem. roya mex.17feb14
Sist. de vig. epidem. roya mex.17feb14Sist. de vig. epidem. roya mex.17feb14
Sist. de vig. epidem. roya mex.17feb14SINAVEF_LAB
 
Sist. de vig. epidem. roya mex.14mar14 recfin
Sist. de vig. epidem. roya mex.14mar14 recfinSist. de vig. epidem. roya mex.14mar14 recfin
Sist. de vig. epidem. roya mex.14mar14 recfinSINAVEF_LAB
 
Sist. de vig. epidem. roya 07may14 sagarpa
Sist. de vig. epidem. roya 07may14 sagarpaSist. de vig. epidem. roya 07may14 sagarpa
Sist. de vig. epidem. roya 07may14 sagarpaSINAVEF_LAB
 
Reunion de coordinación 28feb2014 xalapa, veracruz
Reunion de coordinación 28feb2014 xalapa, veracruzReunion de coordinación 28feb2014 xalapa, veracruz
Reunion de coordinación 28feb2014 xalapa, veracruzSINAVEF_LAB
 
Presentación pvef octubre
Presentación pvef   octubrePresentación pvef   octubre
Presentación pvef octubreSINAVEF_LAB
 
Modelo operativo administrativo
Modelo operativo administrativoModelo operativo administrativo
Modelo operativo administrativoSINAVEF_LAB
 

Más de SINAVEF_LAB (20)

Acciones para atención de roya 25 de mayo
Acciones para atención de roya 25 de mayoAcciones para atención de roya 25 de mayo
Acciones para atención de roya 25 de mayo
 
12. conclusiones 2 reunion coordinacion mc. mitzi georgina gonz+ílez ochoa
12. conclusiones 2 reunion coordinacion mc. mitzi georgina gonz+ílez ochoa12. conclusiones 2 reunion coordinacion mc. mitzi georgina gonz+ílez ochoa
12. conclusiones 2 reunion coordinacion mc. mitzi georgina gonz+ílez ochoa
 
11. delimitaci+¦n de focos ver.22nov14
11. delimitaci+¦n de focos ver.22nov1411. delimitaci+¦n de focos ver.22nov14
11. delimitaci+¦n de focos ver.22nov14
 
10. adecuaciones formatos pvef cafe v23nov14 ing. gerardo acevedo s+ínchez
10. adecuaciones formatos pvef cafe v23nov14 ing. gerardo acevedo s+ínchez10. adecuaciones formatos pvef cafe v23nov14 ing. gerardo acevedo s+ínchez
10. adecuaciones formatos pvef cafe v23nov14 ing. gerardo acevedo s+ínchez
 
jaime rdenas pez
jaime rdenas pezjaime rdenas pez
jaime rdenas pez
 
6. avances t+®c ope pvef-cafe v22nov14ver2 dr. gustavo mora aguilera
6. avances t+®c ope pvef-cafe v22nov14ver2 dr. gustavo mora aguilera6. avances t+®c ope pvef-cafe v22nov14ver2 dr. gustavo mora aguilera
6. avances t+®c ope pvef-cafe v22nov14ver2 dr. gustavo mora aguilera
 
5. nuevos riegos asociados al cultivo del cafeto dr. ricardo y+í+¦ez l+¦pez
5. nuevos riegos asociados al cultivo del cafeto dr. ricardo y+í+¦ez l+¦pez5. nuevos riegos asociados al cultivo del cafeto dr. ricardo y+í+¦ez l+¦pez
5. nuevos riegos asociados al cultivo del cafeto dr. ricardo y+í+¦ez l+¦pez
 
4. perspectivas vef caf+® 2015 ing. rigoberto gonz+ílez g+¦mez
4. perspectivas vef caf+® 2015 ing. rigoberto gonz+ílez g+¦mez4. perspectivas vef caf+® 2015 ing. rigoberto gonz+ílez g+¦mez
4. perspectivas vef caf+® 2015 ing. rigoberto gonz+ílez g+¦mez
 
3. servicio de acompa+æamiento tecnico procafe ing. juan de dios del castillo
3. servicio de acompa+æamiento tecnico procafe ing. juan de dios del castillo3. servicio de acompa+æamiento tecnico procafe ing. juan de dios del castillo
3. servicio de acompa+æamiento tecnico procafe ing. juan de dios del castillo
 
2. ponencias m+®xico noviembre ing. jaime c+írdenas l+¦pez
2. ponencias m+®xico noviembre ing. jaime c+írdenas l+¦pez2. ponencias m+®xico noviembre ing. jaime c+írdenas l+¦pez
2. ponencias m+®xico noviembre ing. jaime c+írdenas l+¦pez
 
1. politica nacional cafetalera. ing. crist+¦bal sayago
1. politica nacional cafetalera. ing. crist+¦bal sayago1. politica nacional cafetalera. ing. crist+¦bal sayago
1. politica nacional cafetalera. ing. crist+¦bal sayago
 
Enfermedades del cafe dr. rui leite
Enfermedades del cafe dr. rui leiteEnfermedades del cafe dr. rui leite
Enfermedades del cafe dr. rui leite
 
Sist. de vig. epidem. roya mex.17feb14
Sist. de vig. epidem. roya mex.17feb14Sist. de vig. epidem. roya mex.17feb14
Sist. de vig. epidem. roya mex.17feb14
 
Sist. de vig. epidem. roya mex.14mar14 recfin
Sist. de vig. epidem. roya mex.14mar14 recfinSist. de vig. epidem. roya mex.14mar14 recfin
Sist. de vig. epidem. roya mex.14mar14 recfin
 
Sist. de vig. epidem. roya 07may14 sagarpa
Sist. de vig. epidem. roya 07may14 sagarpaSist. de vig. epidem. roya 07may14 sagarpa
Sist. de vig. epidem. roya 07may14 sagarpa
 
Sat oirsa 2014
Sat oirsa 2014Sat oirsa 2014
Sat oirsa 2014
 
Reunion de coordinación 28feb2014 xalapa, veracruz
Reunion de coordinación 28feb2014 xalapa, veracruzReunion de coordinación 28feb2014 xalapa, veracruz
Reunion de coordinación 28feb2014 xalapa, veracruz
 
Presentación pvef octubre
Presentación pvef   octubrePresentación pvef   octubre
Presentación pvef octubre
 
Modelo operativo administrativo
Modelo operativo administrativoModelo operativo administrativo
Modelo operativo administrativo
 
Pca. muestreo
Pca. muestreoPca. muestreo
Pca. muestreo
 

Último

periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas123yudy
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfsamyarrocha1
 
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptPINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptAlberto Rubio
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxJUANCARLOSAPARCANARE
 
DETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORDETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORGonella
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxMartín Ramírez
 
cuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicacuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicaGianninaValeskaContr
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024gharce
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxJUANSIMONPACHIN
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfcoloncopias5
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxMartín Ramírez
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...YobanaZevallosSantil1
 

Último (20)

periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdf
 
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptPINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
 
VISITA À PROTEÇÃO CIVIL _
VISITA À PROTEÇÃO CIVIL                  _VISITA À PROTEÇÃO CIVIL                  _
VISITA À PROTEÇÃO CIVIL _
 
DIA INTERNACIONAL DAS FLORESTAS .
DIA INTERNACIONAL DAS FLORESTAS         .DIA INTERNACIONAL DAS FLORESTAS         .
DIA INTERNACIONAL DAS FLORESTAS .
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
 
DETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORDETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIOR
 
TL/CNL – 2.ª FASE .
TL/CNL – 2.ª FASE                       .TL/CNL – 2.ª FASE                       .
TL/CNL – 2.ª FASE .
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
 
cuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicacuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básica
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
 
Earth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversaryEarth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversary
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
 

Presentación PHP & MySQL para principiantes

  • 1. Presentación PHP & MySQL Por: Nelliud D. Torres
  • 2. ¿Qué es PHP? • Server-side scripting language. • Diseñado para el Web. • Se interpreta a nivel del servidor y genera código HTML o algún 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 número actual en: http://www.php.net/usage.php 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 2
  • 3. ¿Qué es PHP? (cont.) Usage Stats for April 2007 • PHP: 20,917,850 domains, 1,224,183 IP addresses Source: Netcraft
  • 4. ¿Qué es PHP? (cont.) • Es un producto Open Source. • Originalmente PHP significaba Personal Home Page. • Luego se cambió a PHP Hypertext Preprocesor. • La página principal es: http://www.php.net • La página de Zend Technologies que apoya PHP es: http://zend.com 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 4
  • 5. Fortalezas de PHP • Alto rendimiento (performance) – PHP es altamente eficiente, en la página http://www.zend.com se muestran estadísticas que así lo confirman. • Interactúa con muchas bases de datos – En adición a MySQL, PHP trabaja con PostgreSQL, MSQL, Oracle, dbm, FilePro, Hyperwave, Informix, InterBase y Sybase entre otros. • Librerías – Debido a que PHP se diseño para utilizarse en el Web, contiene múltiples funciones integradas (built-in) con tareas relacionadas al Web. 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 5
  • 6. Fortalezas de PHP (cont. - 1) • Costo – PHP es gratis. La última versión se puede bajar de: http://www.php.net • Fácil 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 rápidamente. • Apoyo a Objetos– La versión 5 de PHP provee varias capacidades de este paradigma de programación. 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 6
  • 7. Fortalezas de PHP (cont. - 2) • Portabilidad – PHP esta disponible para diferentes sistemas operativos. Usualmente el código que se escribe para una plataforma, trabaja sin modificaciones en otra. • Source Code – El programador tiene acceso al código 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 compañía Zend Technologies (www.zend.com) provee apoyo a PHP. 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 7
  • 8. ¿Qué es MySQL? (cont.) • Es un robusto y rápido Relational Database Management (RDBMS) • Controla el acceso a los datos y se asegura que múltiples usuarios puedan utilizarlo. • Provee acceso rápido y seguro. • Utiliza el standard query language (SQL). • Es el database open source más popular del mundo 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 8
  • 9. Fortalezas de MySQL • Rendimiento (performance) – MySQL es innegablemente rápido. En la página http://www.mysql.com/why-mysql/white- papers/performance.php muestra comparaciones con otros productos. En el 2002 la revista eWeek hizo una comparación 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. • Fácil de usar – La operación del producto es similar a otros. 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 9
  • 10. Fortalezas de MySQL (cont.) • Portabilidad – Se puede utilizar en diferentes sistemas Unix y en Windows. • Source Code – El programador tiene el código fuente disponible para hacer cambios y/o mejoras a la base de datos. • Disponibilidad de apoyo – No todos los productos open source tienen una compañía que provea apoyo, entrenamiento, consultoría, etc. Sin embargo se puede obtener todos estos beneficios en MySQLAB. (www.mysql.com) 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 10
  • 11. 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 programación 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
  • 13. Estadísticas sobre servidores Web marzo 2008 (cont.) 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 13 Estadísticas del mes de http://www.securityspace.com/s_survey /data/200803/com/index.html
  • 14. Ejemplo sencillo de cómo utilizar XHTML y PHP - 1 Primera Parte <html> <body> <form action="processorder.php" method="post"> <table border="0"> <tr bgcolor="#cccccc"> <td width="150">Item</td> <td width="15">Quantity</td> </tr> <tr> <td>Tires</td> <td align="center"><input type="text" name="tireqty" size="3" maxlength="3"></td> </tr> <tr> <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 Nombre del script de PHP que se va a correr cuando se someta la forma Método en el que se van a pasar valores al script de PHP Nombres de variables de la forma que pueden ser utilizados dentro del script de PHP
  • 15. Ejemplo sencillo de cómo utilizar XHTML y PHP - 2 Segunda Parte<td>Spark Plugs</td> <td align="center"><input type="text" name="sparkqty" size="3" maxlength="3"></td> </tr> <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> </td> </tr> <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 15 List Box Botón para someter la forma
  • 16. Forma creada por el Browser 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 16
  • 17. Código en PHP que procesa la forma <html> <head> <title>Bob’s Auto Parts – Order Results</title> </head> <body> <h1>Bob’s 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 17 Este ejemplo sólo tira el mensaje de que la orden fue procesada
  • 18. Mensaje generado por PHP 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 18
  • 19. Cotejar el código (source) de la página 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 19
  • 21. USO DE LOS TAGS EN PHP 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 21 El código PHP comienza con <?php y termina con ?> similar a los tags que se utilizan en HTML. Estos símbolos se llaman php tags y le indican al Web server en donde comienza y termina el código de PHP. Cualquier código que se ponga dentro de estos tags se interpreta por el Web server como código de PHP. Lo que no esté dentro del tag de PHP se considera HTML.
  • 22. Whitespace • Los espacios en blanco al igual que en HTML no afecta la ejecución del código ni el resultado en pantalla. Sin embargo se recomiendo la indentación y separación adecuada que facilite la lectura del código. • Ejemplo: echo ‘hello ‘; echo ‘world’; echo ‘hello ‘; echo ‘world’; 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 22 Pag. 18
  • 23. Comentarios • Comments – Al igual que otros lenguajes, PHP permite incluir comentarios dentro de su código e ignorarlos al momento de ejecución. • Ejemplos: /* Author: Bob Smith Last modified: April 10 This program processes the customer orders. */ echo ‟<p>Order processed.</p>; // Start printing order 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 23 Comentarios de más de una línea Comentarios como parte de una misma línea
  • 24. Resultado Contenido Dinámico 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 24 Pag. 20 La fecha y hora se genera al momento de ejecutarse el script que crea la página.
  • 25. Uso de Funciones <?php echo '<p>Order processed at</p>'; echo date('H:i, jS F'); echo '</p>'; ?> 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 25 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.
  • 26. Acceder Variables de la Forma • Las variables en PHP comienzan con el signo de dólar ($). • De acuerdo a la versión y configuración 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 opción register_globals. • Medium style ($_POST*‘tireqty’+) – Recomendado por el libro. • Long style ($HTTP_POST_VARS*‘tireqty’+) – Es el más largo, pero el más portable. Si se desactiva, mejora el rendimiento de la ejecución del código. No se recomienda. 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 26
  • 27. Ejemplo Código - 1 • Modificar el código anterior para que incluya lo siguiente: // Creacion de variables $tireqty = $_POST['tireqty']; $oilqty = $_POST['oilqty']; $sparkqty = $_POST['sparkqty']; // echo '<p>Your order is as follows: </p>'; echo $tireqty. ' tires <br />'; echo $oilqty. ' bottles of oil <br />'; echo $sparkqty. ' spark plugs <br />'; 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 27 Creando las variables. Mostrando los valores en pantalla. El punto concadena la variable con el texto
  • 28. EJEMPLO DE LA CORRIDA 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 28 Pag. 22 Debe mostrar los mismos valores que entró el usuario en pantalla.
  • 29. 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 instrucción: echo $tireqty. ' tires <br />'; Puede ser sustituida por: echo “$tireqty tires <br />”; 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 29 Pag. 24-25 Ambas hacen lo mismo. La comilla no puede ser sencilla.
  • 30. 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, números y under-score. • No pueden comenzar con un dígito. • Son case sensitive. Los nombres de funciones son la excepción ya que no son case sensitive. • Una variable puede tener el mismo nombre de una función, sin embargo esto no es recomendado. 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 30
  • 31. Creación y Asignación de Variables • PHP permite declarar variables en adición 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
  • 32. Tipos de Datos en PHP • Los tipos de datos que maneja PHP son: – Integer – Maneja números enteros. – Float – Maneja números reales. (también 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
  • 33. 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 dólar ($), por ejemplo: • echo TIREPRICE; 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 33
  • 34. 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 – Están 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 función. 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 función, pero si dentro. 6. Variables inside functions local – Locales a la función y dejan de existir cuando la ejecución se sale de la función. 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 34
  • 35. Operadores Aritméticos • Son símbolos que se pueden utilizar para manipular valores y variables. A continuación vamos a ver los diferentes operadores. 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 35 OPERADORES ARITMÉTICOS Operador Nombre Ejemplo + Suma $a + $b - Resta $a - $b * Multiplicación $a * $b / División $a / $b % Modulus $a % $b
  • 36. Operadores Aritméticos Combinados • Es una forma corta de escribir ecuaciones aritméticas. La siguiente tabla muestra un resumen: 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 36 OPERADORES ARITMÉTICOS COMBINADOS Operador 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
  • 37. 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
  • 38. Operadores de Comparación Los operadores de comparación (lógicos) son los siguientes; 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 38 OPERADORES DE COMPARACIÓN Operador Nombre Uso == Igual $a == $b === Idéntico $a === $b != No igual $a != $b !== No idéntico $a !== $b <> No igual $a <> $b < Menor que $a < $b > Mayor que $a > $b <= Menor o igual $a <= $b >= Mayor o igual $a >= $b
  • 39. Operadores – Lógicos • Combina resultados de condiciones lógicas. La tabla a continuación muestra las diferentes opciones. 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 39 OPERADORES LÓGICOS Operador Nombre Uso ! NOT !$b && AND $a && $b || OR $a || $b and AND $a and $b or OR $a or $b
  • 40. Otros Operadores • En adición 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 expresión suprime un mensaje de warning o error si esta condición se da. Ej. $a = @(57/0) // No da mensaje división por cero 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 40
  • 41. Ejemplo Código - 2 • Modificar el código 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 * TIREPRICE + $oilqty * OILPRICE + $sparkqty * SPARKPRICE; 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 Acumulando cantidades Definiendo constantes.
  • 42. Resultado de la Corrida 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 42 Pag. 40
  • 43. Utilizando Funciones de Variables • PHP tiene una librería 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 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 43 Pag. 42
  • 44. 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
  • 45. 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
  • 46. 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
  • 47. Ciclo - WHILE $num = 1; while ($num <= 5) { echo $num.”<br />”; $num++; } 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 47
  • 48. Código de Ejemplo • Crear el siguiente script de php y ejecutarlo <html> <body> <table border = 0 cellpadding = 3> <tr> <td bgcolor = "#CCCCCC" align = center>Distance</td> <td bgcolor = "#CCCCCC" align = center>Cost</td> </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; } ?> </table> </body> </html> 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 48 Encabezamiento de la tabla Ciclo Generando la tabla dinámicamente
  • 49. 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
  • 50. Ciclo do…While $num = 100; do { echo $num.’<br />’; } while ($num < 1 ); 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 50 Pag. 53-54 Sólo 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 menús.
  • 51. Salir de una Estructura de Control • Si deseas detener la ejecución de una pieza de código, 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 líneas 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
  • 52. PASOS PARA LA INSTALACIÓN DE EASYPHP
  • 53. PASO - 1Entre la dirección: http://www.easy php.org/ debe aparecer la siguiente pantalla: 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 53
  • 54. PASO - 2 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 54 Seleccionar EasyPHP 2.0 beta 1
  • 55. PASO - 3 Aparece una página en donde se procede a bajar la instalación. El usuario debe indicar el lugar donde desea que se baje el archivo. 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 55
  • 56. 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
  • 57. PASO - 5 Se acepta el agreement y se lee la información importante. 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 57
  • 58. PASO - 6 Se indica directorio y shortcut a utilizarse (dejar el valor default que trae la instalación) 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 58
  • 59. PASO - 7 Se procede a instalar el producto 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 59
  • 60. PASO - 8 La instalación debe completarse sin ningún problema. 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 60
  • 61. Instrucciones - 1 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 61 Install EasyPHP Download EasyPHP from the website www.easyphp.org double-click on the downloaded executable select an installation directory and follow the instructions
  • 62. Instrucciones - 2 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 62 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
  • 63. Instrucciones - 3 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 63 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>
  • 64. Instrucciones - 4 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 64 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.
  • 65. Instrucciones - 5 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 65 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.
  • 66. Menu de EasyPHP 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 66
  • 67. 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 © - Derechos Reservados - Prof. Nelliud D. Torres 67 Se recomienda guardar cada aplicación en un directorio por separado.
  • 68. Pasos para correr un Script en PHP - 2 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 68 En EasyPHP buscas la opción Local Web (F7), eso abrirá el Browser, de ahí se abre el directorio deseado y se ejecuta el script (click).
  • 69. Accediendo MySQL desde el Web con PHP
  • 70. Ejemplo De Código y Forma Para Acceder La Base De Datos
  • 71. Forma De Búsqueda <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 71 Pag. 266-267
  • 72. Código 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 © - Derechos Reservados - Prof. Nelliud D. Torres 72 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>
  • 73. Pantalla con Resultados 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 73 Pag. 269
  • 74. Pasos Para Acceder La Base De Datos Desde PHP
  • 75. Consultar Base de Datos desde el Web 1. Cotejar y filtrar la data que proviene del usuario. 2. Establecer la conexión a la Base de Datos. 3. Elegir y consultar la Base de Datos. 4. Obtener los resultados y presentarlos al usuario. 5. Cerrar la conexión a la Base de Datos. A continuación explicamos cada paso: 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 75
  • 76. 1. Cotejar y filtrar la data que proviene del usuario. Lo primero que hace el script después 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 76 Pag. 270
  • 77. 1. Cotejar y filtrar la data que proviene del usuario. (cont.) Se tiene que cotejar si los datos vienen con las comillas (quotes) automáticamente o no. Es una directiva que se puede configurar a nivel de administración. 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
  • 78. 2. Establecer la conexión a la Base de Datos. Para conectarnos a la Base de Datos: @ $db = new mysqli('localhost', 'root', 'root', 'books'); 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 78 Username Password Nombre de la base de datos Librería que conecta a la base de datos Se usa en Object oriented
  • 79. 2. Establecer la conexión a la Base de Datos. (cont.) Una vez se hace la conexión, se debe verificar que fue exitosa ya que el resto del código depende de que la conexión se logre. Se coteja con el siguiente código: if (mysqli_connect_errno()) { echo 'Error: Could not connect to database. Please try again later.'; exit; } 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 79 De ser cierto el resultado de esta función, significa que hubo problemas al tratar de conectarse a la base de datos.
  • 80. 2. Establecer la conexión a la Base de Datos. (cont. 2) El libro indica el siguiente código 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)// procedural 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 80
  • 81. 3. Elegir y consultar la Base de Datos Ya establecida la conexión, lo próximo 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
  • 82. 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
  • 83. 4. Obtener los resultados y presentarlos al usuario (cont.) Dentro del ciclo podemos utilizar la siguiente instrucción 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
  • 84. 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 } 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres
  • 85. 5. Cerrar la Conexión 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 conexión a la base de datos: $db->close(); // object oriented o mysqli_close($db) // procedural 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 85
  • 86. Poner Información en la Base de Datos
  • 87. Poner Información en la Base de Datos •Los pasos son similares a los de mostrar resultados: – Crear la conexión –Enviar la consulta –Cotejar los resultados •Para este caso se utiliza el comando INSERT en lugar del comando SELECT •A continuación vemos el ejemplo con el codigo newbook.html 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 87
  • 88. Forma De Búsqueda 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
  • 89. Código PHP de Entrar los Datos 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 89 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> <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; }
  • 90. Resultado de la Corrida
  • 91. Buscando el Record a ver si fue Creado Pag. 277
  • 92. Revisión del Código de Insertar La siguiente instrucción 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 92 Pag. 278
  • 93. Tópicos 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 librerías que puedes incorporar a PHP. 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 93
  • 94. 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/white- papers/performance.php http://www.securityspace.com 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 94
  • 95. 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 8/12/2007 © - Derechos Reservados - Prof. Nelliud D. Torres 95