Вы находитесь на странице: 1из 60

Prof: Ing.

José Marval
Introducción
 Requisitos
• Servidor web Apache (www.apache.org)
• con el módulo PHP (www.php.net)
• y la base de datos MySQL (www.mysql.com) si se desea
crear páginas dinámicas

 Otras utilidades
• Herramientas para la gestión de MySQL, como
PHPMyAdmin (www.phpmyadmin.net)
• Editores de PHP.
• Manuales de PHP y MySQL

Prof: Ing. José Marval


Herramientas
Editor:

Servidor Local (http://localhost/):


WampServer.
Carpeta servidor. X:/wamp/www

XAMPP.
Carpeta servidor. X:/xampp/htdocts

Manual de PHP.

Prof: Ing. José Marval


Como Funciona PHP

Prof: Ing. José Marval


Sintaxis Básica
 PHP es sensible a las mayúsculas.
 ¿Cómo se incrusta en la página web?
<?PHP ... ?>
recomendado, siempre disponible
<?= expresión ?>
equivale a <?PHP echo expresión ?>
 Las instrucciones se separan con un ; como en C. La marca final ?>
implica un ;
 Comentarios: como en C, /* … */ (varias líneas ) y // (una línea)
/* Comentario de
varias líneas */
echo “hola”; // Comentario de una línea

Ejemplo:
<?php
phpinfo();
?>
prueba.php

Prof: Ing. José Marval


Funciones echo y print
echo print
echo “Hola mundo”; print “Hola mundo”;
echo “Hola “ . “mundo”; print “Hola “, “mundo”;

Ejemplo:
<HTML>
<HEAD>
<TITLE>Mi primer programa en PHP</TITLE>
</HEAD>
<BODY>
<?PHP
echo "<P>Hola mundo</P>";
?>
</BODY>
</HTML>

holamundo.php
Prof: Ing. José Marval
Ejercicio 1
programa que muestra un mensaje
Ilustra cómo incrustar código PHP en un documento HTML y cómo
imprimir desde PHP

Prof: Ing. José Marval


Ejercicio 1
Código:

<html>
<head>
<title>PHP y HTML</title>
</head>
<body>
<h1><font color=“#0000FF”>PHP y HTML</font></h1>
<p>Éste es el párrafo 1, escrito desde HTML</p>
<?php
echo "<p>Éste es el párrafo 2, escrito desde PHP</p>\n";
?>
<p>Éste es el párrafo 3, escrito nuevamente desde HTML</p>
<?php
echo "<P>Y éste es el párrafo 4, escrito desde PHP</P>\n";
?>
</body>
</html>

ejercicio1.php

Prof: Ing. José Marval


Tipos de Datos
 PHP soporta 8 tipos de datos primitivos:
• Tipos escalares: boolean, integer, double, string
• Tipos compuestos: array, object
• Tipos especiales: NULL

 El tipo de una variable no se suele especificar. Se decide en tiempo


de ejecución en función del contexto y puede variar

Prof: Ing. José Marval


Variables
•Las variables siempre van precedidas de un $
•El nombre es sensible a las mayúsculas
•Comienzan por letra o subrayado, seguido de letras, números o
subrayado
•Variables predefinidas:
$GLOBALS, $_SERVER, $_GET, $_POST, $_COOKIES,
$_FILES,
$_ENV, $_REQUEST, $_SESSION
•Ámbito: globales al fichero (excepto funciones) o locales a una función
•Ejemplo:
$valor = 5;
echo “El valor es: “ . $valor . “\n”;
echo “El valor es: $valor\n”;
Resultado:
El valor es: 5

Prof: Ing. José Marval


Constantes
• Definición de constantes:
define (“CONSTANTE”, “hola”);
echo CONSTANTE;
• No llevan $ delante
• Sólo se pueden definir constantes de los tipos
escalares (boolean, integer, double, string).

Prof: Ing. José Marval


Operadores
Precedencia de operadores

Operadores Información Adicional


[] array()
++ -- incremento/decremento

! tipos
* / % aritmética
+ - . aritmética, y cadena
< <= > >= comparación
== != comparación
&& lógicos
|| lógicos
? : ternario
= += -= *= /= .= %= asignación

Prof: Ing. José Marval


Estructuras de control
•Estructura selectiva if-else

if (condición) if (condición1)
sentencia sentencia 1
else if (condición2)
sentencia 2
if (condición)
...
sentencia 1
else if (condición n)
else
sentencia n
sentencia 2
else
sentencia n+1

•Mismo comportamiento que en C


•Las sentencias compuestas se encierran
entre llaves
•elseif puede ir todo junto

Prof: Ing. José Marval


Estructuras de control
Ejemplo de estructura selectiva if-else:
<?PHP
if ($sexo == ‘M’)
$saludo = "Bienvenida, ";
else
$saludo = "Bienvenido, ";
$saludo = $saludo . $nombre;
echo $saludo;
?>

Prof: Ing. José Marval


Estructuras de control
• Estructura selectiva switch
switch (expresión)
{
case valor_1:
sentencia 1
break;
case valor_2:
sentencia 2
break;

case valor_n:
sentencia n
break;
default
sentencia n+1
}

Prof: Ing. José Marval


Estructuras de control
• Estructura repetitiva while
while (condición)
sentencia

• Mismo comportamiento que en C


Ejemplo de estructura repetitiva while:
<?PHP
echo "<UL>\n";
$i=1;
while ($i <= 5)
{
echo "<LI>Elemento $i</LI>\n";
$i++;
}
echo "</UL>\n";
?>

Prof: Ing. José Marval


Estructuras de control
• Estructura repetitiva for
for (inicialización; condición; incremento)
sentencia

• Mismo comportamiento que en C

Ejemplo de estructura repetitiva for:

<?PHP
echo "<UL>\n";
for ($i=1; $i<=5; $i++)
echo "<LI>Elemento $i</LI>\n";
echo "</UL>\n";
?>

Prof: Ing. José Marval


Ejercicio 2

Prof: Ing. José Marval


Ejercicio 2
<html>
<head>
<title>PHP y HTML</title>
</head>
<body>
<h1><font color=“#0000FF”>Tabla de Multiplicar</font></h1>
<?PHP
$n = 7;
echo "<P>La tabla de multiplicar del $n es:</P>\n";
for ($i=1; $i<=10; $i++)
echo "$n x $i = " . $n*$i . "<BR>\n";
?>
</body>
</html>

ejercicio2.php

Prof: Ing. José Marval


Arreglos
Se declaran y acceden los elementos con los corchetes: [ ]
• La primera componente es la cero
• Los elementos pueden tener distinto tipo en un mismo vector
• Se puede acceder a un elemento mediante un índice asociativo.
• Arrays multidimensionales
• Constructor: array()

Tipos de los elementos:


$vector1[0] = 1;
$vector1[1] = ‘hola’;
$vector1[“nom”] = “juan”;
• Constructor:
$vector2 = array (1, “jorge”, 3);
$vector3 = array(0 => 1, 1 => “jorge”, “nom” => “jaime”, 3 => 5 );
// índice => valor

Prof: Ing. José Marval


Arreglos
Otra 2 formas:
$a[] = 'a';
$a[] = 'b';
$a[] = 'c';
// equivale a
$a = array('a', 'b', 'c');
//--------------------------------------------------------------------------------------------//
$firstquarter = array(1 => 'January', 'February‘,'March');
print_r($firstquarter);
Genera:
Array ( [1] => January [2] => February [3] =>March )
Nota: Array que empieza en 1 en vez de 0

$fruits = array (
"fruits" => array("a" => "orange", "b" => "banana", "c" =>
"apple"),
"numbers" => array(1, 2, 3, 4, 5, 6),
"holes" => array("first", 5 => "second", "third")
);
print_r($fruits);

Prof: Ing. José Marval


Arreglos
La estructura de control foreach permite iterar sobre arrays
Sintaxis:
foreach (expresión_array as $valor)
sentencia
foreach (expresión_array as $clave => $valor)
sentencia
Ejemplos:
foreach ($color as $valor)
echo “Valor: $valor<BR>\n”;
foreach ($color as $clave => $valor)
echo “Clave: $clave; Valor: $valor<BR>\n”;
Salida:
Valor: 101
Valor: 51
Valor: 255
Clave: rojo; Valor: 101
Clave: verde; Valor: 51
Clave: azul; Valor: 255

Prof: Ing. José Marval


Cadenas
Las cadenas pueden ir con comillas dobles “ o comillas simples ‘.
$cadena = “Hola Mundo”;
$cadena = ‘Hola Mundo’;

Algunas Funciones de Cadenas:


•strlen(cadena). Nos devuelve el número de carácteres de una cadena.
• split(separador,cadena). Divide una cadena en varias usando un carácter separador.
• sprintf(cadena de formato, var1, var2...). Formatea una cadena de texto al igual que
printf pero el resultado es devuelto como una cadena.
• substr(cadena, inicio, longitud). Devuelve una subcadena de otra, empezando por inicio
y de longitud longitud.
• chop(cadena). Elimina los saltos de línea y los espacios finales de una cadena.
• strpos(cadena1, cadena2). Busca la cadena2 dentro de cadena1 indicándonos la posición
en la que se encuentra.
• str_replace(cadena1, cadena2, texto). Reemplaza la cadena1 por la cadena2 en el texto.

Prof: Ing. José Marval


Cadenas
<body>
<?php
echo strlen("12345"),"<br>";
$palabras=split(" ","Esto es una prueba");
for ($i=0;$palabras[$i];$i++)
echo $palabras[$i],"<br>";
$resultado=sprintf ("8X5 = %d <br>",8*5);
echo $resultado,"<br>";
echo substr("Devuelve una subcadena de otra",9,3),"<br><br>";
if (chop("Cadena \n\n ")=="Cadena")
echo "Iguales <Br><br>";
echo strpos("busca la palabra dentro de la frase",
"palabra"),"<br><br>";
echo str_replace ("verde","rojo","Un pez de color verde, como
verde es la hierba"),"<br>";
?>
</body>

Prof: Ing. José Marval


Funciones
Ejemplo:
function suma ($x, $y)
{
$s = $x + $y;
return $s;
}
$a=1;
$b=2;
$c=suma ($a, $b);
echo $c;
Por defecto los parámetros se pasan por valor
Paso por referencia:
function incrementa (&$a)
{
$a = $a + 1;
}
$a=1;
incrementa ($a);
echo $a; // Muestra un 2

Prof: Ing. José Marval


Funciones
Argumentos por defecto
function muestranombre ($titulo = "Sr.")
{
echo "Estimado $titulo:\n";
}
muestranombre ();
muestranombre ("Prof.");
Salida:
Estimado Sr.:
Estimado Prof.:

Los argumentos con valores por defecto deben ser siempre los últimos:
function muestranombre ($nombre, $titulo= "Sr.")
{
echo "Estimado $titulo $nombre:\n";
}
muestranombre (“Fernández”);
muestranombre (“Fernández”, "Prof.");
Salida:
Estimado Sr. Fernández:
Estimado Prof. Fernández:

Prof: Ing. José Marval


include y require
•Inclusión de ficheros externos:
include(), include_once()
require(), require_once()
•Ambos incluyen y evalúan el fichero especificado
•Diferencia: en caso de error include() produce un
warning y require() un error fatal
•Se usará require() si al producirse un error debe
interrumpirse la carga de la página
Ejemplo:
<?PHP
// Incluir bibliotecas de funciones
require ("conecta.php");
require ("fecha.php");
require ("cadena.php");
require ("globals.php");
?>
<?PHP
include ("cabecera.html");
?>
// Código HTML + PHP
. . .
<?PHP
include ("pie.html");
?>

Prof: Ing. José Marval


Objetos
<?php
class ejemplo{
var $variable1;
var $variable2;
//constructor
public function __construct($cad){
$this->variable1 = $cad;
}
//funciones
public function asigna($cad){
$this->variable2 = $cad;
}
public function muestra(){
echo $this->variable1.' '.$this->variable2;
}
}
//creando el objeto
$objeto = new ejemplo("HOLA");
//usando las funciones
$objeto->asigna("MUNDO");
$objeto->muestra();
?>
Prof: Ing. José Marval
Formulario

Prof: Ing. José Marval


Formulario
Para leer desde el formulario:

Variables globales: $_GET, $_POST

Para el ejemplo:

$nombre = $_GET[‘nombre’];
$empresa = $_GET[‘empresa’];
$email = $_GET[‘email’];
$mensaje = $_GET[‘mensaje’];

Prof: Ing. José Marval


Subidas de Archivos
Para subir un fichero al servidor se utiliza el elemento de entrada FILE
Hay que tener en cuenta una serie de consideraciones importantes:
• El elemento FORM debe tener el atributo ENCTYPE="multipart/form-
data“
• El fichero tiene un límite en cuanto a su tamaño. Este límite se fija de en
el fichero de configuración php.ini

Prof: Ing. José Marval


Subidas de Archivos
La variable $_FILES contiene toda la información del fichero
subido:
$_FILES['imagen']['name']
Nombre original del fichero en la máquina cliente
$_FILES['imagen']['type']
Tipo mime del fichero. Por ejemplo, "image/gif"
$_FILES['imagen']['size']
Tamaño en bytes del fichero subido
$_FILES['imagen']['tmp_name']
Nombre del fichero temporal en el que se almacena el fichero
subido en el servidor
$_FILES['imagen’]['error']
Código de error asociado al fichero subido

Prof: Ing. José Marval


Subidas de Archivos
if (is_uploaded_file ($_FILES['imagen']['tmp_name']))
{
$nombreDirectorio = "img/";
$nombreFichero = $_FILES['imagen']['name'];

move_uploaded_file ($_FILES['imagen']['tmp_name'],
$nombreDirectorio . $nombreFichero);
}
else
echo "No se ha podido subir el fichero";

Prof: Ing. José Marval


Ejercicio 3

Prof: Ing. José Marval


Prof: Ing. José Marval
PHPMyAdmin
phpMyAdmin es una herramienta para la administración del
servidor de bases de datos MySQL
Dispone de una interfaz gráfica y es de libre distribución
Permite realizar todo tipo de operaciones sobre bases de datos:
crear, borrar y modificar tablas
consultar, insertar, modificar y eliminar datos
definir usuarios y asignar permisos
realizar copias de seguridad
etc
Está escrita en php y se ejecuta desde el navegador
Si está instalada en la carpeta phpmyadmin, se ejecuta
escribiendo en la barra de direcciones del navegador la url
http://localhost/phpmyadmin/
Puede administrar bases de datos locales y remotas

Prof: Ing. José Marval


PHPMyAdmin

Prof: Ing. José Marval


Lenguaje SQL

 SQL (Structured Query Language) es el lenguaje que se utiliza


para comunicarse con la base de datos
 Procedimiento de comunicación con la base de datos:

Página orden SQL


PHP Base
de
resultado datos

Prof: Ing. José Marval


Lenguaje SQL
 Las instrucciones más habituales son SELECT, INSERT, UPDATE,
DELETE
 Veamos su sintaxis básica y algunos ejemplos de uso
 Para ello utilizaremos una tabla noticias con cinco campos: un
identificador único de la noticia, el título de la noticia, el texto de
la noticia, la categoría de la noticia y la fecha de publicación de la
noticia
usuarios
nombre
apellido
cedula
nick
clave
tipo

Prof: Ing. José Marval


Lenguaje SQL
SELECT

Sintaxis:
SELECT expresión FROM tabla
[WHERE condición]
[ORDER BY {unsigned_integer | col_name | formula}
[ASC | DESC] ,...]
[LIMIT [offset,] row_count | row_count OFFSET
offset]

Ejemplo:
SELECT * from usuarios WHERE nombre=‘jose’ LIMIT 10
ORDER BY nick DESC
Obtiene los usuarios cuyo nombre es “josé” con un tope máximo de 10,
ordenados por nick

Prof: Ing. José Marval


Lenguaje SQL
INSERT
Sintaxis:
INSERT [INTO] nombre_tabla [(nombre_columna,...)]
VALUES ((expresión | DEFAULT),...), (...),...
INSERT [INTO] nombre_tabla
SET nombre_columna=(expresión | DEFAULT), ...

Ejemplo:
INSERT INTO usuarios (nombre, apellido, cedula,
nick, clave, Tipo) VALUES (‘josé’, ‘marval’,
‘14000000’, ‘jose_1520’, ‘1234’, 0)
Inserta un usuario con los valores indicados

Prof: Ing. José Marval


Lenguaje SQL
UPDATE
Sintaxis:
UPDATE nombre_tabla
SET nombre_columna1=expr1 [, nombre_columna2=expr2
...]
[WHERE condición]
[ORDER BY ...]
[LIMIT row_count]

Ejemplo:
UPDATE usuarios SET clave = ‘654321’ WHERE
cedula=‘14000000’
Modifica la clave del usuario con cedula = 14000000

Prof: Ing. José Marval


Lenguaje SQL
DELETE
Sintaxis:
DELETE FROM nombre_tabla
[WHERE condición]
[ORDER BY ...]
[LIMIT row_count]

Ejemplo:
DELETE FROM usuarios WHERE nombre = ‘jose’
Borra los usuarios de nombre jose

Prof: Ing. José Marval


Conectar MySQL con PHP
Los pasos para acceder desde PHP a una base de datos son los
siguientes:
 Conectar con el servidor de bases de datos
 Seleccionar una base de datos
 Enviar la instrucción SQL a la base de datos
 Obtener y procesar los resultados
 Cerrar la conexión con el servidor de bases de datos

Prof: Ing. José Marval


Conectar MySQL con PHP
Las funciones concretas de MySQL que realizan estas operaciones son:
– Conectar con el servidor y seleccionar la bases de datos:
• mysqli_connect()
– Enviar la instrucción SQL a la base de datos:
• mysqli_query()
– Obtener y procesar los resultados:
• mysqli_num_rows(), mysqli_fetch_assoc(),
mysqli_fetch_object(),
– Cerrar la conexión con el servidor de bases de datos:
• mysqli_close()

Prof: Ing. José Marval


Conectar MySQL con PHP
Conectar con el servidor de bases de datos: mysql_connect()
– Devuelve un identificador de la conexión en caso de éxito y false en
caso contrario

Sintaxis:
$conexion = new mysqli (servidor, username, password, database);

Ejemplo:

$conexion = new mysqli("localhost“, "us_curso“, "us_pasword“, "base_datos");

Prof: Ing. José Marval


Conectar MySQL con PHP
Enviar la instrucción SQL a la base de datos: mysql_query()
 Devuelve un identificador o true (dependiendo de la instrucción) si la
instrucción se ejecuta correctamente y false en caso contrario

Sintaxis:

$resultado = $conexion->query (instrucción);

Ejemplo:

$resultado = $conexion->query("SELECT * FROM USUARIOS")

Prof: Ing. José Marval


Conectar MySQL con PHP
Obtener y procesar los resultados: mysqli_num_rows(),
mysqli_fetch_assoc()
 En el caso de que la instrucción enviada produzca unos
resultados, mysql_query() devuelve las filas de la tabla afectadas
por la instrucción
 mysql_num_rows() devuelve el número de filas afectadas
 Para obtener las distintas filas del resultado se utiliza la función
mysql_fetch_assoc(), que obtiene una fila del resultado en un
array asociativo cada vez que se invoca

Sintaxis:
$nFilas = $resultado->num_rows;
$fila = $resultado->fetch_assoc();

Prof: Ing. José Marval


Conectar MySQL con PHP
Ejemplo:
usuarios
jose marval 14000000 Jose_20 1234 0
pedro lopez 16000000 pedrito 1234 0

jose perez 15000000 Jose_21 1234 1


luis jimenez 13000000 Luisj_55 1234 0
carlos perez 17000000 carlospz 1234 1
jose rodriguez 15600000 Jose_22 1234 1

Instrucción:
select * from usuarios

Prof: Ing. José Marval


Conectar MySQL con PHP
Ejemplo:
usuarios
jose marval 14000000 Jose_20 1234 0
pedro lopez 16000000 pedrito 1234 0
jose perez 15000000 Jose_21 1234 1 $consulta
luis jimenez 13000000 Luisj_55 1234 0 $nfilas=3
carlos perez 17000000 carlospz 1234 1
jose rodriguez 15600000 Jose_22 1234 1

Instrucción:
select * from usuarios where nombre = “jose”

Prof: Ing. José Marval


Conectar MySQL con PHP
Obtener los resultados: mysqli_num_rows(), mysqli_fetch_assoc()
 Para acceder a un campo determinado de una fila se usa la siguiente
sintaxis:

$fila[“nombre_campo”]// por ser un array asociativo

Ejemplo:
$nFilas = $resultado->num_rows;
for ($i=0; $i<$nfilas; $i++){
$fila = $resultado->fetch_assoc ();
echo "Nombre: " . $fila["nombre"];
echo "Login: " . $fila["login"];
}
?>

Prof: Ing. José Marval


Conectar MySQL con PHP
Cerrar la conexión con el servidor de bases de datos:
mysqli_close()

Ejemplo
$conexion->close ($conexion);

Prof: Ing. José Marval


MySQL con PHP
Ejemplo:
Generar la tabla usuarios con PHP:

Prof: Ing. José Marval


Formularios

Prof: Ing. José Marval


Formularios

Prof: Ing. José Marval


Ajax
Asynchronous JavaScript And XML (JavaScript asíncrono y
XML)

Prof: Ing. José Marval


Objeto XMLHttpRequest
Un objeto XMLHttpRequest es una instancia de una API que nos
permite la transferencia de datos en formato XML desde los script del
navegador (JavaScript) a los del servidor ( PHP, Perl, ASp, Java ... ) e
inversamente.

Prof: Ing. José Marval


Función AJAX con Jquery
$.ajax({
url : 'proscesar.php',
data : { },
type : 'GET',
dataType : 'json',
success : function(json) {
$("#contenedor").html(json.respuesta);
},
error : function(jqXHR, status, error) {
//Si ocurre un error
}
});

Prof: Ing. José Marval


Sesiones
•A veces es necesario mantener el estado de una conexión entre
distintas páginas o entre distintas visitas a un mismo sitio
Ejemplos: aplicaciones personalizadas, carrito de la compra,
control de acceso
•HTTP es un protocolo sin estado: cada conexión entre el cliente
y el servidor es independiente de las demás.
•Para mantener el estado entre diferentes conexiones hay que
establecer lo que se conoce como una sesión.
•Las sesiones permiten disponer de unas variables con valores
persistentes durante toda la conexión del usuario.
•PHP dispone de una biblioteca de funciones para la gestión de
sesiones.

Prof: Ing. José Marval


Sesiones
Funciones de PHP para el manejo de sesiones.
session_start ()
inicializa una sesión y le asigna un identificador de sesión
único. Si la sesión ya está iniciada, carga todas las
variables de sesión.
$_SESSION[‘nombre’] = valor;
registra una variable de sesión
unset ($_SESSION[‘nombre’]);
elimina una variable de sesión
if (isset($_SESSION[‘nombre’]))
comprueba si una variable está registrada. Devuelve true
en caso afirmativo y false en caso contrario
session_destroy ()
cierra una sesión
Prof: Ing. José Marval

Вам также может понравиться