0% encontró este documento útil (0 votos)
102 vistas170 páginas

Programación Web

El documento describe la arquitectura cliente-servidor y la arquitectura de capas (MVC). Explica que un servidor brinda servicios a clientes en una red y que la arquitectura de capas separa la lógica de negocios de la interfaz de usuario y los datos. También define sitios web, páginas web, aplicaciones web y herramientas para desarrollar sitios web como CMS, SDK y lenguajes de programación.

Cargado por

randyweb20
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
102 vistas170 páginas

Programación Web

El documento describe la arquitectura cliente-servidor y la arquitectura de capas (MVC). Explica que un servidor brinda servicios a clientes en una red y que la arquitectura de capas separa la lógica de negocios de la interfaz de usuario y los datos. También define sitios web, páginas web, aplicaciones web y herramientas para desarrollar sitios web como CMS, SDK y lenguajes de programación.

Cargado por

randyweb20
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 170

Programación web

Prof. Randy Douglas, Ing.


Funcionamiento de
la arquitectura
cliente-servidor
 Servidor:
 Dispositivo que brinda un servicio determinado en
una red, no es necesariamente una computadora.
Ej: Correo electrónico, almacenamiento de
archivos, transferencia de archivos, nombres de
dominio, hora, fecha, sitios web.
 Cliente:
 Dispositivo que consume un servicio brindado por
un servidor en una red, no es necesariamente una
computadora. Ej: Correo electrónico,
almacenamiento de archivos, transferencia de
archivos, nombres de dominio, hora, fecha, sitios
web.
Arquitectura n capas
 Es una arquitectura cliente-servidor en el que el objetivo primordial
es la separación de la lógica de negocios de la lógica de diseño; un
ejemplo básico de esto consiste en separar la capa de datos de la capa
de presentación al usuario con la de la lógica del negocio.

Las ventajas es que el desarrollo se puede llevar a cabo en varios


niveles y, en caso de que sobrevenga algún cambio, sólo se ataca al
nivel requerido sin tener que revisar entre código mezclado.

Permite distribuir el trabajo de creación de una aplicación por niveles;


de este modo, cada grupo de trabajo está totalmente abstraído del
resto de niveles, de forma que basta con conocer la API que existe
entre niveles.
 El diseño más utilizado actualmente es el diseño en tres niveles o
MVC.
Arquitectura n capas
 En la arquitectura MVC se ven 3 niveles:
 Vista: Es la capa en donde se presentan los
datos al cliente de una manera que el entienda
y de una forma estilizada. Se desarrolla con un
lenguaje front-end.
 Controlador: Es la capa que se ejecuta en el
servidor, se procesan los datos y se le dan al
cliente. Se desarrolla con un lenguaje back-
end.
 Modelo: Es la capa en donde se almacenan los
datos del sistema. Se desarrolla con un
lenguaje de consultas.
Sitios web
 Un sitio web es un conjunto de páginas web que están
conectadas entre sí y se encuentran alojadas en un
servidor web. Este espacio virtual es accesible para
cualquier persona con conexión a internet, que lo visite
por medio de un navegador web. Se compone de
diferentes tipos de contenido, como texto, imágenes,
videos y elementos interactivos.
Tipos de sitios web

 Estáticos: Su principal función es informar al


usuario. El usuario no tiene mucha más interacción
con ellas que el consultar su contenido el cual es
permanente. Se utilizan principalmente
herramientas de maquetación.
 Dinámicos: Se basan en la generación de contenido
a través de la información introducida por el
usuario procesándola para luego almacenarla. Se
utilizan además de lenguajes de maquetación,
lenguajes de programación web y bases de datos.
Página web
 También llamada página electrónica, página digital o ciber página​
es un documento digital complejo, que puede integrar y/o contener
texto, sonido, vídeo, programas, enlaces, imágenes, hipervínculos y
otros elementos, adaptado para la World Wide Web (WWW), y que
puede ser accedida y visualizada mediante un navegador web.
Están generadas bajo un base de HTMLEsta información se
encuentra generalmente en etiquetado HTML o XHTML, y puede
proporcionar acceso a otras páginas web mediante enlaces de
hipertexto. Frecuentemente también incluyen otros recursos como
pueden ser hojas de estilo en cascada, scripts, imágenes digitales,
etc.
 Las páginas web pueden estar almacenadas en un computador o en
un servidor web remoto. El servidor web puede restringir el acceso
únicamente a redes privadas, por ejemplo, en una intranet
corporativa, o puede publicar las páginas en la World Wide Web.Es
decir que se utiliza para acceder a página de distintas redes sociales
para poder acceder a ella necesitas una cuenta.
Fuente: Wikipedia
Aplicaciones
web
 Son programas que funcionan en
internet. Es decir, que los datos o
los archivos en los que trabajas son
procesados y almacenados dentro
de un servidor remoto que utiliza
los protocolos http o https. Estas
aplicaciones, por lo general, no
necesitan ser instaladas en tu
computador.
Hosting web
 Un hosting o alojamiento es el servicio que hace
posible el acceder a un sitio web ya sea de forma local
o en Internet.
 En esta acción se reserva un espacio en el sistema para
correr un servidor web, dentro de ese servidor se
pueden montar n cantidad de sitios los cuales pueden
tener acceso a otros servicios como bases de datos.
 Un hosting debe de tener el espacio en almacenamiento
necesario para almacenar todos los datos que los sitios
necesiten. También necesita del ancho de banda
necesario para que los clientes del sitio puedan acceder
a él de forma eficiente.
 Estabilidad
 Confiabilidad
 Seguridad.
Herramientas de desarrollo
SDKs y lenguajes CMS
 Son herramientas técnicas que permiten el desarrollo,  Sistema Gestor de Contenido, es un software que ayuda a los
modificación y administración de sitios web. Para usuarios a crear, administrar y modificar contenido en un
utilizar estas herramientas se necesitan de sitio web sin la necesidad de conocimientos técnicos
conocimientos técnicos especializados. especializados.
 Joomla
 PHP
 Drupal
 ASP.net
 Wordpress
 NodeJS  Magento (for eCommerce stores)}
 Java  Squarespace
 Python  Wix
 Visual Studio Community  TYPO3
 Visual Studio Code
 Sublime Text
Trabajando con un CMS
1. Descargar e instalar un servidor web. Usando Xampp
2. Descargar e instalar el CMS. Joomla, Drupal, Wordpress
3. Configuración inicial del CMS.
4. Creación de contenido.
5. Administración del portal.
Páginas web estáticas vrs. dinámicas
Páginas web estáticas Páginas web dinámicas
 Informar al usuario.  Enfoque en generación de contenido a través
 Información permanente. de la información dada por el usuario.

 Se actualiza de manera ocasional.


 Implementan lenguajes de programación.
 Se utilizan lenguajes de maquetación y diseño.  Procesan y almacenan los datos que el usuario
ingresa.
 La actualización la realiza el admin.
 Orientados a sitios donde se está en constante
 No soportan apps, db, entre otras.
actualización de la información del contenido.
 Enfocado a sitios empresariales que solo quieren
 Enfocado a sitios donde se requiera la
ofrecer una descripción de actividades, misión-
autenticación de usuarios, actualización de la
visión, colaboradores, servicios y productos que
información e interacción usuario-página.
ofrecen.
Páginas web estáticas vrs. dinámicas
Páginas web estáticas Páginas web dinámicas
Instalación de un servidor local
 Para poder trabajar con lenguajes de
programación web a nivel de servidor como
por ejemplo PHP, ASP o Java se necesita la
configuración de un servidor local o adquirir
un hosting web que soporte el lenguaje de
programación con el que se quiere
desarrollar.
 En esta ocasión nos enfocaremos en la
instalación y configuración de un servidor
local para trabajar con el lenguaje PHP y un
gestor de base de datos MySQL y similares.
Instalación de un servidor local
 Existen servidores que contienen todos los
componentes configurados y listos para su
ejecución.
 Se debe de elegir el que mejor se adapte al
sistema operativo con el que se está
trabajando.
 Siempre se debe de descargar desde la
página oficial.
Instalación de un servidor local
 Una vez descargado el archivo ejecutarlo como
administrador.
 Seguir los pasos de instalación.
 Seleccionar los componentes que se van a necesitar para los
desarrollos a realizar:
 Server
 Apache
 MySQL
 Filezilla FTP Server
 Mercury Mail Server
 Tomcat
 Lenguajes de programación
 PHP
 Perl
 Aplicaciones
 phpMyAdmin
 Webalizer
Instalación de un servidor local
 Verifique que la ruta de instalación del
servidor se encuentre en la raíz del disco
duro.
 Finalice la instalación del servidor.
 Una vez terminado ejecute el panel del
control del servidor como administrador e
inicialice los servicios necesarios dando
click a los botones Start.
 Apache – servidor web
 MySQL – gestor de base de datos
Instalación de un servidor local
 Verifique el correcto funcionamiento de los servicios
inicializados.
 Escriba en la barra de direcciones del navegador:
http://localhost, para verificar el funcionamiento del
servidor web.
 Escriba en la barra de direcciones del navegador:
http://localhost/phpmyadmin, para verificar el
funcionamiento del gestor de base de datos.
 Para verificar el funcionamiento del interprete abre un
editor de texto y crea una carpeta dentro del directorio
que aloja los archivos de ejecución. Su nombre por lo
general es htdocs o www.
 Crea dentro de esa carpeta que se creó un archivo llamado
info.php e ingrese el siguiente código <? phpinfo() ?>
¿Qué es PHP?
• PHP es un acrónimo para "PHP: Hypertext Preprocessor"
• Es un lenguaje de tipo script ampliamente utilizado
• Los scripts de PHP son ejecutados en el servidor
• PHP es gratis de descargar y utilizar
PHP es un lenguaje muy popular!
Es lo suficientemente poderoso para ser el núcleo de múltiples
sistemas gestores de contenido web como por ejemplo
Wordpress o redes sociales como Facebook!
Es lo bastante fácil para aprender a programar aplicaciones del
lado del servidor!
¿Qué es un archivo PHP?
 Estos archivos pueden contener texto, código HTML, CSS, Javascript y PHP.
 Son ejecutados en el servidor y dan como respuesta código plano HTML.
 Tienen como extensión .php
¿Qué se puede hacer con PHP?
 Generar páginas con contenido dinámico
 Crear, abrir, leer, escribir, borrar y cerrar archivos en el servidor.
 Recolectar data de un formulario
 Enviar y recibir cookies de navegación
 Agregar, borrar, modificar data en una BD.
 Controlar la autenticación y autorización de usuarios.
 Encriptar data.
¿Por qué usar PHP?
 Corre en múltiples plataformas (Windows, Linux, Unix, MAC OSX, entre otras)
 Es compatible con multitud de servidores (Apache, IIS, entre otros)
 Soporta un amplio rango de bases de datos.
 Es gratis
 Es fácil de aprender y es ligero para correr en servidores
¿Qué se necesita para usar PHP?
Buscar un web hosting que soporte PHP y MySQL Instalar un servidor web y luego instalar PHP y MySQL

 Si el hosting tiene activado el soporte a PHP no  Instalar un servidor web


se necesita hacer mucho.
 Instalar PHP
 Crear un archivo .php y colocarlo en la carpeta
web del servidor.
 Instalar MySQL
 No se necesita compilar ni instalar herramientas
adicionales.
 Debido a que PHP es gratis, la mayoria de los
web host soportan PHP.
Sintaxis
 Un script de PHP se ejecuta del lado del servidor.  <!DOCTYPE html>
 El servidor devuelve como respuesta al cliente un <html>
texto plano en formato HTML. <body>
 El navegador ejecuta dicho archivo. <h1>My first PHP page</h1>
 Un script PHP puede ubicarse en cualquier sitio <?php
del documento. echo "Hello World!";
?>
 Los scripts PHP deben ir entre las etiquetas:
</body>
<?php
</html>
// PHP code goes here
?>
 Cada sentencia PHP debe terminar con
punto y coma (;).
Sintaxis
 PHP es semi case sensitivy. <!DOCTYPE html>  <!DOCTYPE html>
<html>
 Las palabras claves, nombres de clases, <html>
<body>
funciones, funciones definidas por el <body>
<?php
<?php
usuario no son case sensitivy. $color = "red";
ECHO "Hello World!<br>"; echo "My car is " . $color . "<br>";
 Los nombres de las variables por otro echo "Hello World!<br>"; echo "My house is " . $COLOR .
lado si son case sensitivy. EcHo "Hello World!<br>"; "<br>";
?> echo "My boat is " . $coLOR .
</body> "<br>";
?>
</html>
</body>
</html>
Comentarios
 Un comentario es una línea la cual no es  <!DOCTYPE html>
ejecutada por parte del programa. <html>
 Su propósito es el de ser leída por alguien que <body>
ve el código. <?php
// Comentario de una línea
 Se pueden usar en:
# Comentario de una línea
 Ayudar a que otros entiendan el código.
 Recordarnos a nosotros mismos que se hizo
 /*
 Para depurar fragmentos de código.
* Comentario de varias líneas

 PHP soporta múltiples formas de comentar:


 */
 // - Para una línea
?>
</body>
 # - Para una línea
</html>
 /* */ - Para múltiples líneas.
Variables PHP
 Una variable es un contenedor que almacena
datos de manera temporal para que estas <?php
puedan ser usadas posteriormente.
 En PHP las variables inician con signo de dólar
$txt = "Hello world!";
($), seguido por el nombre de la variable. Ej: $x = 5;
$txt;
 Se puede simplemente declarar una variable de $y = 10.5;
la siguiente forma $txt;
 O inicializarla de esta manera $txt = 5;
?>
 Para llamar a una variable y utilizar su
contenido se hace de la misma forma echo $txt;
Variables PHP
 Reglas para los nombres de las variables:
 Se inicia con el signo de dólar ($), seguido por el nombre de la variable.
 El nombre debe de empezar con una letra o un guion bajo (_).
 No puede iniciar con número.
 Solo pueden contener valores alfanuméricos y guiones bajos (A-z, 0-9, _).
 Los nombres de las variables son case sensitive.
Variables PHP
 Para imprimir valores se utiliza la función <?php
echo. $txt = "W3Schools.com";
 Se puede concatenar el valor de una variable echo "I love $txt!";
con un String utilizando el carácter punto (.). ?>

 Se pueden utilizar operadores para realizar


<?php <?php
operaciones entre variables.
$x = 5; $txt = "W3Schools.com";
 PHP no tiene variables estrictas, ósea, a la $y = 4; echo "I love " . $txt . "!";
hora de declarar la variable no se indica el echo $x + $y; ?>
tipo de variable. ?>
 PHP asigna el tipo de variable una vez que
se inicializa esta.
Variables PHP
 Las variables PHP tienen múltiples alcances.
 Locales
 Globales
 Estáticas
 Super gloabales
Variables PHP
Global Local
 Una variable declarada fuera de una función  Una variable declarada dentro de una
es una variable global. función es una variable local.
 De base no pueden ser llamadas dentro de  Se pueden tener variables locales con el
las funciones. mismo nombre dentro de diferentes
funciones.
 Para permitir su uso se debe utilizar la
palabra reservada global.  Su ciclo de vida inicia cuando la función es
llamada y termina cuando la función
termina.
Variables PHP
Global Local
<?php
$x = 5; // global scope
<?php
function myTest() {
function myTest() {
// using x inside this function will generate an error $x = 5; // local scope
echo "<p>Variable x inside function is: $x</p>";
} echo "<p>Variable x inside function is: $x</p>";
myTest(); }
echo "<p>Variable x outside function is: $x</p>"; myTest();
?>
------------------------------------------------------
<?php // using x outside the function will generate an error
$x = 5;
$y = 10;
echo "<p>Variable x outside function is: $x</p>";
function myTest() { ?>
global $x, $y;
$y = $x + $y;
}
myTest();
echo $y; // outputs 15
?>
Variables PHP
Static <?php
function myTest() {
 Aumenta la vida de una variable local.
static $x = 0;
 Mantiene el valor de la variable si en algún
echo $x;
momento este fue modificado.
$x++;
 Es útil si en algún momento se necesita ese
valor modificado y no el iniciado.
}
myTest();
myTest();
myTest();
?>
Tipos de datos PHP
 Las variables pueden almacenar datos de diferentes tipos.
 PHP soporta los siguientes tipos de datos:
 String o cadenas
 Integer o enteros
 Float o reales
 Booleanos o lógicos
 Arreglos | Arrays
 Objectos
 NULL
 Recursos
Tipos de datos PHP
String Integer
 Es una secuencia de caracteres, como “Hola  Es un dato numérico no decimal entre -
mundo”. 2,147,483,648 and 2,147,483,647.

 Puede ser cualquier carácter dentro de comillas.


 Reglas:
Pueden ser simples, dobles o inclinadas.  Debe tener al menos 1 digito.
 No puede tener punto decimal
<?php
$x = "Hello world!";
 Pueden ser positivos o negativos
$y = “Hello world!';  Pueden ser base 10, base 2, base 8 o base 16.
echo $x; <?php
echo "<br>"; $x = 5985;
echo $y; var_dump($x);
?> ?>
Tipos de datos PHP
Float Booleano
 Es un número con punto decimal o en  Representa 2 posibles estados:
formato exponencial. VERDADERO o FALSO.
<?php  Son usados a menudo en pruebas
$x = 10.365; condicionales.
var_dump($x); $x = true;
?> $y = false;
Tipos de datos PHP
Arreglos Objetos
 Las clases y objetos son los aspectos principales de la POO.
 Un arreglo puede almacenar  Una clase es una plantilla de objetos, un objeto es una instancia de una clase.
 Cuando se crea un objeto, este adquiere todas las propiedades y métodos de la clase, pero cada
múltiples valores de un mismo tipo. <?php
objeto puede tener diferentes valores en sus propiedades.

class Car {

<?php public $color;


public $model;
public function __construct($color, $model) {
$cars = $this->color = $color;
$this->model = $model;

array("Volvo","BMW","Toyota"); }
public function message() {
return "My car is a " . $this->color . " " . $this->model . "!";

var_dump($cars); }
}

?> $myCar = new Car("black", "Volvo");


echo $myCar -> message();
echo "<br>";
$myCar = new Car("red", "Toyota");
echo $myCar -> message();
?>
Tipos de datos PHP
Valor NULO | NULL Recursos
 Es un tipo especial de dato.  No es en sí un tipo de dato.
 Cuando una variable tiene este valor es  Es una referencia al almacenado para
porque no se le ha asignado nada. funciones y recursos externos para PHP.
 Puede ser usado para limpiar una variable  Un ejemplo de esto es almacenar la data de
asignándole el valor de NULL a esta. una llamada a una base de datos.
<?php
$x = "Hello world!";
$x = null;
var_dump($x);
?>
Concatenación
 Para concatenar variables con otras variables <?php
y/o cadenas de caracteres entre otros tipos de $edad = 34;
datos soportados se utiliza el operador punto echo “Tu edad es: “ . $edad;
(.). ?>
Funciones echo y print
echo print
 Usada para imprimir información en  Usada para imprimir información en
pantalla. pantalla.
 Puede usarse con o sin paréntesis.  Puede usarse con o sin paréntesis.
 No retorna valor.  Retorna un valor de 1. Esto sirve para usarse
en condicionales.
 Acepta múltiples parámetros.
 Acepta un parámetro.
 Es más rápido que print.
 Es más lento que echo.
Funciones echo y print
echo print
<?php <?php
echo "<h2>PHP is Fun!</h2>"; print "<h2>PHP is Fun!</h2>";
echo "Hello world!<br>"; print "Hello world!<br>";
echo "I'm about to learn PHP!<br>"; print "I'm about to learn PHP!";
echo "This ", "string ", "was ", "made ", "with multiple parameters.";
?>
?>
-----------------------------------
-----------------------------------------------------
<?php <?php
$txt1 = "Learn PHP"; $txt1 = "Learn PHP";
$txt2 = "W3Schools.com"; $txt2 = "W3Schools.com";
$x = 5; $x = 5;
$y = 4; $y = 4;
echo "<h2>" . $txt1 . "</h2>"; print "<h2>" . $txt1 . "</h2>";
echo "Study PHP at " . $txt2 . "<br>"; print "Study PHP at " . $txt2 . "<br>";
echo $x + $y; print $x + $y;
?> ?>
Manejar formularios con PHP
 Las variables super globales $_GET y $_POST son usadas para
recolectar data de formularios.
 Ambos manejan los datos de los formularios en pares de llaves/valores.
Archivo welcome.php
 Del lado del HTML es importante indicar 2 atributos en el form.
 action: En donde se coloca la ruta del archivo .php que captura la data y la
procesa. <html>
 method: El cual es el método que utilizará HTML para enviarle los datos al
archivo .php. Son parecidas a las super globales que usa PHP para <body>
recolectar la data. En el caso del get se usa para enviar la data a través de la
barra de navegación (inseguro). Post se usa para enviar la data encapsulada
al archivo .php (no tan insegura). Welcome <?php echo $_POST["name"]; ?><br>
<html>
<body> Your email address is: <?php echo
<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
$_POST["email"]; ?>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form> </body>
</body> </html>
</html>
Manejar formularios con PHP
¿Cuándo usar GET? ¿Cuándo usar POST?
 Los datos enviados por este método son  Los datos enviados por este método son invisibles por
otros.
visibles por todos.
 No tiene límite en la cantidad de data que se puede
 Tiene la limitación de solo soportar 2000 enviar.
caracteres.  Es más lento de enviar datos que GET.
 Es más rápido de enviar datos que POST.  POST soporta la carga de data binaria como por
ejemplo archivos .exe al servidor.
 Se debe de evitar usarlo cuando se trabaja  Es el método preferido por los desarrolladores para
con datos sensibles como contraseñas. enviar datos.
Strings PHP
strlen() str_word_count()
 Retorna la longitud del String.  Retorna la cantidad de palabras del String.
<?php <?php
echo strlen("Hola mundo!"); // salida 12 echo str_word_count("Hola mundo!"); //
?> salida 2
?>
Strings PHP
strrev() strpos()
 Retorna el String al reves.  Busca un texto en específico en el String.
Si hay coincidencia retorna la posición del
<?php
primer carácter, sino retorna FALSE.
echo strrev("Hola mundo!"); // salida !odnum
aloH <?php
?> echo strpos("Hola mundo!“, “mundo”); //
salida 5
?>
Strings PHP
Tarea #2, segundo periodo
 Busque los siguientes métodos String según aparecen en la siguiente tabla.
 Debe de presentar una diapositiva por método.
 La diapositiva debe de ser de tipo de diseño “2 contenidos | Two Content”
 En el contenido de la izquierda debe de venir la explicación del método y la sintaxis del método.
 En el contenido de la derecha debe de venir un ejemplo completo del código.
 Debe de subirlo en el portafolio de evidencias en la carpeta de Evidencias de conocimiento con el
nombre “Strings PHP # de la lista.pptx”.
 Fecha de entrega: 30 de junio 2023.
Números en PHP
Integer | Enteros
 Un integer es un número sin punto decimal.  Se tienen las siguientes constantes predefinidas en PHP:
 PHP_INT_MAX – Muestra el integer más grande soportado
 En sistemas de 32 bits esta entre -2147483648 y 2147483647  PHP_INT_MIN – Muestra el integer más pequeño soportado
 PHP_INT_SIZE - El tamaño del integer en bytes
 En sistemas de 64 bits esta entre -9223372036854775808 y
 Se poseen unas funciones para verificar si los valores en una variable son integer:
9223372036854775807
 is_int()
 En caso de almacenar un número más grande será almacenado como  is_integer() - alias de int()

Float.  is_long() - alias de_int()

 Los integer tienen ciertas reglas: <?php


 Debe tener al menos un digito $x = 5985;
 No puede tener punto decimal var_dump(is_int($x));
 Puede ser positive o negative
 Pueden ser formato decimal, hexadecimal, octal y binario
$x = 59.85;
var_dump(is_int($x));
?>
Números en PHP
Float | Punto flotante | Decimales
 Es un número con punto decimal o en forma exponencial.
 Se puede almacenar un número hasta 1.7976931348623E+308
 <?php
y una precisión de hasta 14 dígitos.
 Se tienen las siguientes constantes predefinidas en PHP: $x = 10.365;
PHP_FLOAT_MAX – Muestra el floating más grande soportado
var_dump(is_float($x));

 PHP_FLOAT_MIN – Muestra el floating más pequeño soportado


PHP_FLOAT_DIG – El número de dígitos decimales que pueden
?>

ser redondeados a un flotante sin pérdida de precisión.
 PHP tiene las siguientes funciones para verificar si una variable
es float:
 is_float()
 is_double() – un alias de is_float()
Números en PHP
Infinitos
 Un número más grande que un float se <?php
echo is_finite(2) . "<br>";
considera infinito. echo is_finite(log(0)) . "<br>";
echo is_finite(2000);
 PHP tiene las siguientes funciones ?>
para verificar si un número es finito o <?php
echo is_infinite(2) . "<br>";
infinito echo is_infinite(log(0)) . "<br>";
 is_finite() echo is_infinite(2000);
?>
 is_infinite() <?php
$x = 1.9e411;
 Sin embargo, var_dump() también var_dump($x);
puede indicarlo. ?>
Números en PHP
NaN
 NaN, significa Not a Number (No es un <?php
Número). echo is_nan(200) . "<br>";
echo is_nan(acos(1.01));
 Se usa para indicar operaciones
?>
matemáticas imposibles.
 PHP posee la siguiente función para <?php
verificar si un valor no es un número. $x = acos(8);
 is_nan()
var_dump($x);
?>
 Sin embargo, var_dump() también puede
cumplir esa función.
Números en PHP
Strings numericos
 PHP posee la función is_numeric() <?php
$x = 5985;
para verificar si uan variable es var_dump(is_numeric($x));
númerica.
$x = "5985";
 La función retorna verdadero si la var_dump(is_numeric($x));
variable es un número o un string
$x = "59.85" + 100;
numérico y falso si no. var_dump(is_numeric($x));

$x = "Hello";
var_dump(is_numeric($x));
?>
Números en PHP
<?php
Parsear tipos de datos // Parsear de float a int
$x = 23465.768;
$int_cast = (int)$x;
 Para parsear tipos de datos se utilizan echo $int_cast;

las siguientes funciones: echo "<br>";

 (int), (integer), intval() = para parsear a // Parsear de string a int


integer $x = "23465.768";
$int_cast = (int)$x;
echo $int_cast;
 (float) = para parsear a float
echo "<br>";

// Parsear de string a float


$x = "23465.768";
$float_cast = (float)$x;
echo $float_cast;

?>
Matemáticas en PHP
 Al igual que en cualquier otro lenguaje, PHP tiene un set de
funciones que permiten realizar tareas matemáticas en números de
cualquier tipo.
Matemáticas en PHP
Función pi()
 Esta función retorna el valor de PI, <?php
3.1415926535898 echo(pi()); // retorna 3.1415926535898
?>
Matemáticas en PHP
Función min() y max()
 Para encontrar el valor mínimo y máximo  <?php
de una lista de argumentos se pueden echo(min(0, 150, 30, 20, -8, -200)); //
utilizar las siguientes funciones: retorna -200
 min() = retorna el menor valor de una lista de echo(max(0, 150, 30, 20, -8, -200)); //
argumentos. retorna 150
 max() = retorna el mayor valor de una lista de ?>
argumentos
Matemáticas en PHP
Función abs()
 Esta función retorna el valor absoluto  <?php
(positivo) de un número. echo(abs(-6.7)); // retorna 6.7
?>
Matemáticas en PHP
Función sqrt()
 Esta función retorna la raíz cuadrada de un  <?php
número. echo(sqrt(64)); // retorna 8
?>
Matemáticas en PHP
Función round()
 Esta función redondea un número tipo float  <?php
aplicando la regla de redondeo echo(round(0.60)); // retorna 1
convencional devolviendo un integer. echo(round(0.49)); // retorna 0
?>
Matemáticas en PHP
Números aleatorios
 La función rand() genera un número <?php
aleatorio entre el rango de números enteros. echo(rand());
 Para obtener más control se pueden agregar ?>
2 parámetros indicando el rango mínimo y <?php
máximo del número a generar. echo(rand(10, 100));
?>
Matemáticas en PHP
Función pow()
 Esta función el cálculo de la potencia de un <?php
número recibiendo como parámetro la base echo(pow(2,4) . "<br>"); // retorna 16
y el exponente. echo(pow(-2,4) . "<br>"); // retorna 16
echo(pow(-2,-4) . "<br>"); // retorna 0.0625
echo(pow(-2,-3.2)); // retorna NaN
?>
Matemáticas en PHP
Tarea #3, segundo periodo
 Busque las siguientes funciones matemáticas según aparecen en la siguiente tabla.
 Debe de presentar una diapositiva por método.
 La diapositiva debe de ser de tipo de diseño “2 contenidos | Two Content”
 En el contenido de la izquierda debe de venir la explicación del método y la sintaxis del método.
 En el contenido de la derecha debe de venir un ejemplo completo del código.
 Debe de subirlo en el portafolio de evidencias en la carpeta de Evidencias de conocimiento con el
nombre “Matemáticas en PHP # de la lista.pptx”.
 Fecha de entrega: 21 de julio 2023.
Constantes en PHP
 Las constantes son una estructura de datos que, como las variables reserven un espacio en
memoria para almacenar un único valor.
 A diferencia de las variables, las constantes una vez definidas su valor no puede ser modificado.
 Se declaran de manera diferente que las variables.
 Un nombre valido para una constante inicia con una letra o por convención un guion bajo (_).
No se usa el signo de dólar ($) delante del nombre de una constante.
Constantes en PHP
 Para crear una constante en PHP se utiliza la <?php
función define() // Con el case-insensitive en false
define(“SALUDO", “Esto es PHP!!!");
 define(nombre, valor, case-insensitive),
echo SALUDO;
donde: ?>
 nombre = al nombre de la constante.
<?php
 valor = el valor que tomara la constante
// Con el case-insensitive en true
 case-insensitive = opcional, indicar si la define(“SALUDO", “Esto es PHP!!!", true);
constante no será case sensitive, por defecto echo saludo;
está en false. ?>
Constantes en PHP
 En PHP7 o superior se pueden crear <?php
constantes que almacenen arreglos. define("carros", [
"Alfa Romeo",
 Se utiliza igual la función define()
"BMW",
"Toyota"
]);
echo carros[0];
?>
Constantes en PHP
 Las constantes son por defecto globales. <?php
define(“SALUDO", "Welcome to
 Se pueden utilizar en todo el script.
W3Schools.com!");

function prueba() {
echo SALUDO;
}

prueba();
?>
Operadores en PHP
 Los operadores se utilizan para realizar operaciones entre variables y valores.
 En PHP se dividen los operadores en los siguientes grupos:
 Aritméticos
 Asignación
 Comparación
 Incremento/Decremento
 Lógicos
 De String
 Arreglos
 Asignación condicional
Operadores en PHP
Aritméticos Asignación
Operador Nombre Ejemplo Operador Igual a Descripción

+ Suma $x + $y
x=y x=y x obtiene el valor de y
- Resta $x - $y
x obtiene el valor de x sumado con
* Multiplicación $x * $y x += y x=x+y
y
/ División $x / $y x -= y x=x-y x obtiene el valor de x restado con y
% Modulo $x % $y x obtiene el valor de x multiplicado
x *= y x=x*y
** Potencia $x ** $y con y
x obtiene el valor de x dividido con
x /= y x=x/y
y
x obtiene el valor del residuo entre x
x %= y x=x%y
divido con y
Operadores en PHP
Comparación
Operador Nombre Ejemplo Resultado
== Igual $x == $y Retorna verdadero si ambos son iguales
=== Idéntico $x === $y Retorna verdadero si ambos son iguales en valor y en tipo
!= No igual $x != $y Retorna verdadero si ambos no son iguales
<> No igual $x <> $y Retorna verdadero si ambos no son iguales
!== No idéntico $x !== $y Retorna verdadero si ambos no son iguales en valor o en tipo
> Mayor que $x > $y Retorna verdadero si x es mayor que y
< Menor que $x < $y Retorna verdadero si x es menor que y
>= Mayor o igual $x >= $y Retorna verdadero si x es mayor o igual que y
<= Menor o igual $x <= $y Retorna verdadero si x es menor o igual que y
<=> Spaceship $x <=> $y Retorna un número entre -1, 0 o 1. Si x es menor, igual o mayor que y, respectivamente
Operadores en PHP
Incremento / Decremento Lógicos
Operador Nombre Descripción Operador Nombre Ejemplo Resultado
Incrementa x en uno y Retorna verdadero si ambos
++$x Pre incremento and | && And $x and $y
luego retorna x son verdaderos
Retorna x y luego Retorna verdadero si alguno
$x++ Incremento or | || Or $x || $y
de los 2 es verdadero
incrementa en uno
Retorna si y solo si alguno
Decrementa en uno x y xor Xor $x xor $y
de los 2 es verdadero
--$x Pre decremento
luego retorna x
Retorna verdadero si no es
Retorna x y luego ! Not !$x
$x-- Decremento verdadero
decrementa x en uno
Operadores en PHP
De String
Operador Nombre Ejemplo Resultado
. Concatenación $txt1 . $txt2 Concatenación del valor de la variable $txt1 con $txt2
$txt1 .= $txt2 Adjunta $txt2 a $txt1
.= Concatenación y asignación
Operadores en PHP
Arreglos
Operador Nombre Ejemplo Resultado
+ Unión $x +$y Unión entre el arreglo x y el y
Retorna verdadero si ambos arreglos tienen los mismos pares
== Igualdad $x == $y
de llave/valor
Retorna verdadero si ambos arreglos tienen los mismos pares
=== Identidad $x === $y
de llave/valor en el mismo orden y en el mismo tipo
!= | <> Desigualdad $x != $y | $x <> $y Retorna verdadero si x no es igual a y
!== No idéntico $x !== $y Retorna verdadero si x no es idéntico a y
Operadores en PHP
Asignación condicional
Operador Nombre Ejemplo Resultado
Retorna el valor de $x. Si expr1 es verdadero x
?: Ternario $x = expr1 ? expr2 : expr3
será expr2, sino será expr3
Retorna el valor de $x. Si expr1 existe y no es
?? Coalescencia nula $x = expr1 ?? expr2 nula x será expr1, sino existe o si es nula x será
expr2.
If … Else … Elseif en PHP
if
 Ejecuta un bloque de código si una <?php
condición es verdadera. $t = date("H");
if (condición) {
Código que se ejecuta si la condición es if ($t < "20") {
echo “Tenga un buen día!";
verdadera;
} }
?>
If … Else … Elseif en PHP
if … else
 Ejecuta el bloque de código del if si una <?php
condición es verdadera y si no lo es ejecuta $t = date("H");
el bloque de código en el else.
if (condición) { if ($t < "20") {
Código que se ejecuta si la consición es echo “Tenga un buen día!";
verdadera; } else {
} else { echo “Tenga una buena noche!";
cófigo que se ejecuta si la condición es falsa; }
} ?>
If … Else … Elseif en PHP
if … elseif … else
 Sentencias que ejecutan diferentes códigos si se  <?php
cumplen alguna de diferentes condiciones. $t = date("H");
if (condición) {
Código que se ejecuta si la condición es if ($t < "10") {
verdadera; echo “Tenga Buena mañana!";
} elseif (condición) { } elseif ($t < "20") {
Código que se ejecuta si la primera condición es echo “Tenga buen día!";
falsa pero esta es verdadera;
} else {
} else {
echo “Tenga buena noche!";
Código que se ejecuta si todas las condiciones son
falsas; }
} ?>
Switch en PHP
 Es usado en sustitución al if … elseif … else. Permite <?php
realizar diferentes acciones basado en diferentes $favcolor = “rojo";
condiciones.
switch (n) { switch ($favcolor) {
case label1: case “rojo":
Código que se ejecuta si n=labe1; echo “Su color favorito es rojo!";
break; break;
case label2: case “azul":
Código que se ejecuta si n=label2; echo "Su color favorito es azul!";
break; break;
case label3: case “verde":
Códgo que se ejecuta si n=label3; echo "Su color favorito es verde!";
break; break;
... default:
default: echo "Su color favorito no es ni rojo, ni azul, ni verde!";
Código que se ejecuta si n no coincide con ningún case; }
?>
Ciclos en PHP
 Un ciclo es una instrucción que permite repetir un bloque de código un
número determinado de veces siempre que una condición sea cierta.
 En PHP se tienen los siguientes:
 while
 do … while
 for
 foreach
Ciclos en PHP
while
 Ejecuta un bloque de código mientras que <?php
una determinada condición sea cierta. $x = 1;
while (condición) {
Código que se ejecuta; while($x <= 5) {
} echo “El número es: $x<br>";
$x++;
}
?>
Ciclos en PHP
do … while
 Ejecuta un bloque de código al menos una <?php
vez y repite lo repite mientras que una $x = 1;
determinada condición sea cierta.
do { do {
Código que se ejecuta; echo “El número es: $x <br>";
} while (condición); $x++;
} while ($x <= 5);
?>
Ciclos en PHP
for
 Ejecuta el bloque de código un número <?php
determinado de veces. for ($x = 0; $x <= 10; $x++) {
echo “El número es: $x <br>";
for (init contedor; prueba de contador;
incrementar contador) { }
Código que se ejecuta por cada iteración; ?>
}
Ciclos en PHP
foreach
 Se utiliza para hacer recorridos en un <?php
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
arreglo utilizando para ello el juego de
llave/valor del mismo. foreach($age as $x => $val) {
echo "$x = $val<br>";
foreach ($array as $valor) {
}
Código a ejecutar; ?>
} <?php
$colores = array(“rojo", “verde", “azul", “amarillo");

foreach ($colores as $color) {


echo "$color <br>";
}
?>
Ciclos en PHP
break continue
 Se puede utilizar la sentencia break para salir  Se puede utilizar la sentencia continue para
de un ciclo si se cumple una condición terminar una iteración del ciclo si se cumple una
interna. condición interna y continuar en el ciclo
ejecutando otra iteración.
<?php
<?php
for ($x = 0; $x < 10; $x++) {
for ($x = 0; $x < 10; $x++) {
if ($x == 4) {
if ($x == 4) {
break; continue;
} }
echo “El número es: $x <br>"; echo “El número es: $x <br>";
} }
?> ?>
Arreglos en PHP
 Un arreglo almacena múltiples valores de un <?php
mismo tipo de dato. $carros = array("Volvo", "BMW", "Toyota");
echo “Me gusta " . $ carros[0] . ", " . $
 Puede tener más de un valor al mismo tiempo.
carros[1] . " y " . $ carros[2] . ".";
 Bajo el mismo nombre. ?>
 Para crear un arreglo se utiliza la función
array()
 Hay 3 tipos de arreglos en PHP:
 Indexados – arreglos con índices numéricos.
 Asociativos – arreglos con llaves
 Multidimensionales – arreglos que contienen 2 o
más arreglos.
Arreglos en PHP
 Para obtener el tamaño de un arreglo se <?php
usa la función count() $carros = array("Volvo", "BMW", "Toyota");
echo count($carros);
?>
Arreglos en PHP
Indexados
 Arreglos que poseen índice numérico. <?php
$carros = array("Volvo", "BMW", "Toyota");
 Se pueden crear de 2 formas:
echo “Me gusta " . $ carros[0] . ", " . $
 $carros = array("Volvo", "BMW", "Toyota");
carros[1] . " y " . $ carros[2] . ".";
 $cars[0] = "Volvo";
?>
$cars[1] = "BMW";
$cars[2] = "Toyota";
Arreglos en PHP
Indexados

 Para  <?php
recorrer e imprimir un $carros = array("Volvo", "BMW",
arreglo indexado se utiliza "Toyota");
$tamano = count($carros);
el ciclo for.
for($x = 0; $x < $tamano; $x++) {
echo $carros[$x];
echo "<br>";
}
?>
Arreglos en PHP
Asociativos
 Son arreglos que usan llaves de <?php
nombres que pueden ser asignadas. $edad = array("Peter"=>"35", "Ben"=>"37",
"Joe"=>"43");
 Hay 2 maneras de crear arreglos echo "Peter tiene " . $edad['Peter'] . " años.";
asociativos: ?>
 $edad = array("Peter"=>"35",
"Ben"=>"37", "Joe"=>"43");
 $age['Peter'] = "35";
$age['Ben'] = "37";
$age['Joe'] = "43";
Arreglos en PHP
Asociativos

 Para <?php
recorrer e imprimir un $edad = array("Peter"=>"35", "Ben"=>"37",
arreglo indexado se utiliza "Joe"=>"43");

el ciclo foreach. foreach($edad as $x => $x_valor) {


echo “Llave=" . $x . ", Valor=" . $x_valor;
echo "<br>";
}
?>
Arreglos en PHP
Multidimensionales
 Arreglos que pueden contener 2 o más Nombre Stock Vendidos
arreglos. Volvo 22 18
 Se utilizan cuando se quiere almacenar BMW 15 13
valores con más de una llave. Saab 5 2
 PHP soporta arreglos con varios niveles pero, Land Rover 17 15
entre más niveles más difícil de manejar. Los
más comunes son los de 2 dimensiones.
 La dimensión del arreglo indica el número de
índices que se necesitan para seleccionar un
elemento.
Arreglos en PHP
Multidimensionales
 Arreglos que pueden contener 2 o más <?php
$carros = array(
arreglos. array( "Volvo", 22, 18),
 Se utilizan cuando se quiere almacenar array( “BMW", 15, 13),
array( “Saab", 5, 2),
valores con más de una llave. array( “Land Rover", 17, 15)
 PHP soporta arreglos con varios niveles, pero );
entre más niveles más difícil de manejar. Los
echo $carros [0][0].": En stock: “ . $carros[0][1] . ",
más comunes son los de 2 dimensiones. vendidos: “ . $carros[0][2] . "<br>";
 La dimensión del arreglo indica el número de echo $carros [1][0].": En stock: “ . $carros[1][1] . ",
vendidos: “ . $carros[1][2] . "<br>";
índices que se necesitan para seleccionar un
echo $carros [3][0].": En stock: “ . $carros[3][1] . ",
elemento. vendidos: “ . $carros[3][2] . "<br>";
?>
Arreglos en PHP
Multidimensionales
<?php
 También se puede usar un $carros = array(
array( "Volvo", 22, 18),
ciclo for dentro de otro ciclo array( “BMW", 15, 13),
array( “Saab", 5, 2),
for para obtener los elementos );
array( “Land Rover", 17, 15)

de los índices del arreglo for ($fil = 0; $fil < 4; $fil++) {

multidimensional (si se echo "<p><b>Fila número $fil</b></p>";


echo "<ul>";
for ($col = 0; $col < 3; $col++) {
mantiene el uso de 2 niveles). echo "<li>".$carros[$fil][$col]."</li>";
}
echo "</ul>";
}
?>
Arreglos en PHP
Ordenando arreglos
 Los elementos de un arreglo pueden ser ordenados alfabética o numéricamente, de forma
ascendente o descendente.
 Para eso se pueden utilizar algunas de estas funciones:
 sort() – ordena de forma ascendente
 rsort() – ordena de forma descendente
 asort() – ordena de forma ascendente, de acuerdo al valor.
 ksort() – ordena de forma ascendente, de acuerdo a la llave.
 arsort() – ordena de forma descendente, de acuerdo al valor.
 krsort() – ordena de forma descendente, de acuerdo a la llave.
Arreglos en PHP
sort() rsort()
 Se utiliza para ordenar los elementos de un  Se utiliza para ordenar los elementos de un
arreglo de forma ascendente. arreglo de forma descendente.
 A a z, 0 a 9  9 a 0, z a A
<?php <?php
$carros = array("Volvo", "BMW", "Toyota"); $carros = array("Volvo", "BMW", "Toyota");
sort($carros); rsort($carros);
?> ?>
<?php <?php
$numeros = array(4, 6, 2, 22, 11); $numeros = array(4, 6, 2, 22, 11);
sort($numeros); rsort($numeros);
?> ?>
Arreglos en PHP
asort() ksort()
 Se utiliza para ordenar los elementos de un arreglo de  Se utiliza para ordenar los elementos de un
forma ascendente. arreglo de forma descendente.
 Utilizando los valores.
 9 a 0, z a A
 A a z, 0 a 9
<?php
<?php
$edades = array("Peter"=>"35", "Ben"=>"37", $carros = array("Volvo", "BMW", "Toyota");
"Joe"=>"43"); rsort($carros);
asort($edades); ?>
?>
<?php
<?php
$numeros = array(4, 6, 2, 22, 11);
$numeros = array(4, 6, 2, 22, 11);
sort($numeros);
rsort($numeros);
?> ?>
Arreglos en PHP
sort() rsort()
 Se utiliza para ordenar los elementos de un  Se utiliza para ordenar los elementos de un
arreglo de forma ascendente. arreglo de forma descendente.
 A a z, 0 a 9  9 a 0, z a A
<?php <?php
$carros = array("Volvo", "BMW", "Toyota"); $carros = array("Volvo", "BMW", "Toyota");
sort($carros); rsort($carros);
?> ?>
<?php <?php
$numeros = array(4, 6, 2, 22, 11); $numeros = array(4, 6, 2, 22, 11);
sort($numeros); rsort($numeros);
?> ?>
Funciones en PHP
 Una función es un bloque de código que puede ser usado en
múltiples ocasiones en diferentes partes del código.
 No se ejecuta automáticamente cuando la página se carga.
 Una función puede ser llamada desde otra función.
 Al igual que con otros lenguajes de programación. La
verdadera funcionabilidad de PHP viene de sus funciones.
Funciones en PHP
Preconstruidas Definidas por el usuario
 Preconstruidas: PHP cuenta con más de  Para crear una función se debe utilizar la palabra
reservada function.
1000 funciones preconstruidas en adición
de las que puede crear el programador.  Seguido por el nombre de la función.
 Entre paréntesis, de manera opcional se pueden
 En este documento se cubrirán algunas.
indicar los argumentos de entrada.
Para más referencia se pueden visitar sitios
 Y seguidamente el bloque de código que se ejecutará
como www.w3school.com o www.php.net.
cuando se llame a la función entre corchetes.
function nombreFuncion()
{
código que será ejecutado;
}
Funciones en PHP
<?php
function nombreFuncion() {
código a ser ejecutado;
}
?>

<?php
function writeMsg() {
echo “Hola mundo!";
}

writeMsg(); // llamada de la función


?>
Funciones en PHP
 Se puede ingresar información a las  <?php
funciones a través de sus argumentos. Un function familyName($fname, $year) {
argumento es como una variable. echo "$fname Refsnes. Nació en $year
<br>";
 Los argumentos son especificados después
}
del nombre de la función, entre paréntesis.
Se pueden agregar la cantidad de
familyName("Hege", "1975");
argumentos que hagan falta separados por
familyName("Stale", "1978");
coma.
familyName("Kai Jim", "1983");
?>
Funciones en PHP
Enunciado Ejemplo
Se trata de escribir un script que diga si un Si el número es 17, el programa debe decir
número es par o es impar. que es impar.
Recordemos que un número es par si al
dividirlo por 2 da como resto 0.
Un programa que pida un número y diga si Si num1 es 2 debe decir que num1 es
es positivo o negativo. El cero se considera Positivo
positivo
Funciones en PHP
 Al igual que con las variables en PHP no se necesita declarar el tipo de valor para los
argumentos.
 Esto permite cambiar el tipo de valor que se le ingresa a un argumento.
 En PHP 7 se agrega la declaración strict lo que permite dar un tipo de valor a un argumento de
función en su creación.
 Esto hará que el programa produzca un “fatal error” si el valor dado no coincide con el del tipo
de variable.
Funciones en PHP
Función sin el strict Función con el strict
<?php <?php declare(strict_types=1); //
function addNumbers(int $a, int $b) { requerimiento de strict
return $a + $b;
} function addNumbers(int $a, int $b) {
echo addNumbers(5, "5 dias"); return $a + $b;
// como strict no esta habilitado "5 dias" es }
cambiado por int(5), y retornara 10 echo addNumbers(5, "5 dias");
?> // como strict esta habilitado y "5 dias" no es
un integer, se retornara un error
?>
Funciones en PHP
Parámetros por defecto <?php declare(strict_types=1); // requerimiento strict
function setHeight(int $minheight = 50) {
 Se puede asignar un valor por defecto a un echo “La altura es: $minheight <br>";
argumento en PHP. }
 Si cuando se llama a una función no se le da
un valor, la función asignara el valor dado setHeight(350);
por defecto a la misma. setHeight(); // usara el valor por defecto de 50
setHeight(135);
setHeight(80);
?>
Funciones en PHP
<?php declare(strict_types=1); // requerimiento strict
Retornar valores
 Como en otros lenguajes de programación, las function sum(int $x, int $y) {
$z = $x + $y;
funciones de PHP permiten también retornar valores.
return $z;
 Para esto se debe de usar la sentencia return. }
 PHP 7 se soporta la declaración del tipo de dato a
echo "5 + 10 = " . sum(5, 10) . "<br>";
retornar.
echo "7 + 13 = " . sum(7, 13) . "<br>";
 Como en la declaración del tipo de argumento se echo "2 + 4 = " . sum(2, 4);
necesita del strict para poder declararlo y de no ?>
coincidir el tipo de dato dará un "Fatal Error". <?php declare(strict_types=1); // strict requirement
 Para declarar el tipo de dato a retornar, se utilizan los 2 function addNumbers(float $a, float $b) : float {
return $a + $b;
puntos ( : ) y escribir el tipo de dato después del cierre
}
del paréntesis y antes de la apertura de los corchetes a
echo addNumbers(1.2, 5.2);
la hora de declarar la función. ?>
Funciones en PHP
Pasando argumentos por referencia
 En PHP los argumentos normalmente se <?php
pasan por valor, lo que significa que se hace function add_five(&$value) {
una copia del valor del mismo haciendo que $value += 5;
el valor original de dicho parámetro no }
puede ser modificado.
 Al pasar un argumento por referencia al $num = 2;
cambiar el valor dentro de la función add_five($num);
también se cambia el valor original. echo $num;
?>
 Para esto se utiliza el operador & antes de la
declaración del argumento.
Super globales de PHP
 Las variables super globales fueron introducidas en PHP 4.1.0.
 Son variables pre construidas que siempre están disponibles en todos los niveles del programa.
 Algunas variables predefinidas en PHP son Super globales, lo que significa que siempre están habilitadas sin importar
el nivel en donde están. Pueden ser accedidas desde cualquier función, clase o archivo.
 Las variables super globales de PHP son:
• $GLOBALS
• $_SERVER
• $_REQUEST
• $_POST
• $_GET
• $_FILES
• $_ENV
• $_COOKIE
• $_SESSION
Super globales de PHP
$GLOBALS <?php
$x = 75;
 Es usada para que cualquier variable global $y = 25;
pueda ser accedida desde cualquier parte en
un script de PHP. function suma() {
 PHP almacena todas las variables globales $GLOBALS['z'] = $GLOBALS['x'] +
en un arreglo llamado $GLOBALS['y'];
$GLOBALS[nombreVariable]. }

suma();
echo $z;
?>
Super globales de PHP
$_SERVER <?php
echo $_SERVER['PHP_SELF'];
 Almacena información sobre cabeceras, echo "<br>";
rutas y locaciones de los scripts. echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo $_SERVER['HTTP_HOST'];
echo "<br>";
echo $_SERVER['HTTP_REFERER'];
echo "<br>";
echo $_SERVER['HTTP_USER_AGENT'];
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];
?>
Super globales de PHP
Elemento/Código Descripción
$_SERVER['PHP_SELF'] Returns the filename of the currently executing script
Returns the version of the Common Gateway
$_SERVER['GATEWAY_INTERFACE']
Interface (CGI) the server is using
$_SERVER['SERVER_ADDR'] Returns the IP address of the host server
Returns the name of the host server (such as
$_SERVER['SERVER_NAME']
www.w3schools.com)
Returns the server identification string (such as
$_SERVER['SERVER_SOFTWARE']
Apache/2.2.24)
Returns the name and revision of the information
$_SERVER['SERVER_PROTOCOL']
protocol (such as HTTP/1.1)
Super globales de PHP
Elemento/Código Descripción
Returns the request method used to access the page
$_SERVER['REQUEST_METHOD']
(such as POST)
Returns the timestamp of the start of the request (such
$_SERVER['REQUEST_TIME']
as 1377687496)
Returns the query string if the page is accessed via a
$_SERVER['QUERY_STRING']
query string
$_SERVER['HTTP_ACCEPT'] Returns the Accept header from the current request
Returns the Accept_Charset header from the current
$_SERVER['HTTP_ACCEPT_CHARSET']
request (such as utf-8,ISO-8859-1)
$_SERVER['HTTP_HOST'] Returns the Host header from the current request
Super globales de PHP
Elemento/Código Descripción
Returns the complete URL of the current page (not
$_SERVER['HTTP_REFERER']
reliable because not all user-agents support it)
$_SERVER['HTTPS'] Is the script queried through a secure HTTP protocol
Returns the IP address from where the user is viewing
$_SERVER['REMOTE_ADDR']
the current page
Returns the Host name from where the user is
$_SERVER['REMOTE_HOST']
viewing the current page
Returns the port being used on the user's machine to
$_SERVER['REMOTE_PORT']
communicate with the web server
Super globales de PHP
Elemento/Código Descripción
Returns the absolute pathname of the currently
$_SERVER['SCRIPT_FILENAME']
executing script
Returns the value given to the SERVER_ADMIN
directive in the web server configuration file (if your
$_SERVER['SERVER_ADMIN'] script runs on a virtual host, it will be the value
defined for that virtual host) (such as
[email protected])
Returns the port on the server machine being used by
$_SERVER['SERVER_PORT']
the web server for communication (such as 80)
Returns the server version and virtual host name
$_SERVER['SERVER_SIGNATURE']
which are added to server-generated pages
Super globales de PHP
Elemento/Código Descripción
Returns the file system based path to the current
$_SERVER['PATH_TRANSLATED']
script
$_SERVER['SCRIPT_NAME'] Returns the path of the current script
$_SERVER['SCRIPT_URI'] Returns the URI of the current page
Super globales de PHP
<form method="post" action="<?php echo
$_REQUEST $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
 Se utiliza para recoger datos de un <input type="submit">
formulario HTML por cualquiera de los 2 </form>
métodos GET o POST.
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// recolecta los datos del campo fname
$name = $_REQUEST['fname'];
if (empty($name)) {
echo "Name is empty";
} else {
echo $name;
}
}
?>
Super globales de PHP
<form method="post" action="<?php echo
$_POST $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
 Se utiliza para recoger datos de un <input type="submit">
formulario HTML por medio del método </form>
POST del formulario.
<?php
 Este método es ampliamente utilizado para if ($_SERVER["REQUEST_METHOD"] == "POST") {
pasar variables por ser el “más seguro” pero // recolectar data del valor del input
$name = $_POST['fname'];
es más lento que GET. if (empty($name)) {
echo "Name is empty";
} else {
echo $name;
}
}
?>
Super globales de PHP
$_GET <body>
<a href="test_get.php?
 Se utiliza para recoger datos de un subject=PHP&web=W3schools.com">Test
formulario HTML por medio del método $GET</a>
GET del formulario. </body>
 También se utiliza para recolectar datos
desde el URL. <?php
echo "Study " . $_GET['subject'] . " at " .
 Este método es menos utilizado que POST
$_GET['web'];
por ser menos seguro que el anterior, pero
?>
es más rápido.
Expresiones regulares PHP
 Una expresión es una secuencia de caracteres que forman un patrón de búsqueda.
 Cuando se busca data en un texto, se puede utilizar un patrón de búsqueda para encontrar lo que
se está buscando.
 Una expresión regular puede ser un carácter único, o un patrón más complicado.
 Son usados para realizar todo tipo de búsqueda de textos y reemplazo de texto.
Expresiones regulares PHP
 Sintaxis
 En PHP las expresiones regulares son Strings compuesto por delimitadores, un
patrón y modificadores adicionales.
 $exp = "/w3schools/i"; - en este caso / es el delimitador, w3schools es el patrón y
i es el modificador que indica que indica que la búsqueda será no será sensitiva.
 El delimitador puede ser cualquier carácter que no sea una letra, numero,
backslash (\) o espacio. Lo más común es usar el slash (/), pero nada impide usar
otros caracteres como # o |.
Expresiones regulares PHP
 PHP provee una variedad de funciones que permiten
utilizar expresiones regulares.
 preg_match()
 preg_match_all()
 preg_replace()
Expresiones regulares PHP
preg_match() <?php
$str = "Visit W3Schools";
 Retorna 1 si el patrón fue encontrado en un $pattern = "/w3schools/i";
String y 0 si no lo fue. echo preg_match($pattern, $str); // Salida 1
?>
Expresiones regulares PHP
preg_match_all() <?php
$str = "The rain in SPAIN falls mainly on the
 Retorna el número de veces que un patrón plains.";
fue encontrado en un String, el cual también $pattern = "/ain/i";
puede ser 0 echo preg_match_all($pattern, $str); // Salida
4
?>
Expresiones regulares PHP
preg_replace() <?php
$str = "Visita Microsoft!";
 Retorna un String con reemplazando todas $pattern = "/microsoft/i";
las coincidencias que hubo en el String echo preg_replace($pattern, "W3Schools",
$str); // Salida "Visita W3Schools!"
?>
Expresiones regulares PHP
Modificadores de expresiones regulares Modificador Descripción
i Hace una búsqueda no case sensitive
 Pueden cambiar como la búsqueda es
realizada. m Realiza una búsqueda de varias líneas (los patrones
que buscan el principio o el final de una cadena
coincidirán con el principio o el final de cada
línea)
u Permite la coincidencia correcta de patrones
codificados en UTF-8
Expresiones regulares PHP
Patrones de expresiones regulares Expresión Descripción
 Los paréntesis cuadrados son utilizados para [abc] Encuentra un carácter entre los que están en los
paréntesis cuadrados.
encontrar rangos de caracteres.
[^abc] Encuentra un carácter que no esté entre los
paréntesis cuadrados.
[0-9] Encuentra un carácter entre los que están en el
paréntesis.
Expresiones regulares PHP Meta carácter Descripción
Pipeline (|) Encuentra coincidencia con cualquiera de los patrones
Meta caracteres separados por | como en: gato|perro|pez
Punto (.) Encuentra solo una instancia de cualquier carácter
 Estos son caracteres con un significado
Hat (^) Encuentra coincidencia al principio de un String como
especial. en: ^Hola
$ Encuentra coincidencia al final de un String como en:
mundo$
\d Encuentra un digito
\s Encuentra un espacio vacío
\b Encuentra coincidencia al principio o al final de un
String como: \bHola o Hola\b
\uxxxx Encuentra el carácter Unicode especificado por el
número hexadecimal en xxxx
Expresiones regulares PHP
Cuantificador Descripción
Cuantificadores n+ Coindice con cualquiera Strings que contenga al
menos una n
 Definen cantidades n* Coincide con cualquier cadena que contenga cero o
más ocurrencias de n
n? Coincide con cualquier cadena que contenga cero o
una ocurrencia de n
n{x} Coincide con cualquier cadena que contenga una
secuencia de X n’s
n{x,y} Coincide con cualquier cadena que contenga una
secuencia de X a Y n’s
n{x,} Coincide con cualquier cadena que contenga una
secuencia de al menos X n’s
Expresiones regulares PHP
Grupos
 Se pueden usar paréntesis ( ) para aplicar <?php
cuantificadores a un grupo de patrones. $str = "Apples and bananas.";
 También pueden ser usados como parte del $pattern = "/ba(na){2}/i";
patrón a ser usado para la coincidencia. echo preg_match($pattern, $str); // Salida 1
?>
Manejo de formularios con PHP
 Las variables Super globales $_GET y $_POST son utilizadas para recolectar datos de
formularios.
 GET y POST crean un arreglo asociativo. En donde las llaves son los names de los formularios y
los valores son los datos que ingresa el usuario.
 Al ser super globales, se pueden accesar desde cualquier parte del script PHP.
 $_GET, es un arreglo de variables pasados via parámetros de URL.
 $_POST, es un arreglo de variables pasados de forma encapsulada vía HTTP POST
¿Cuándo usar?
GET POST
 Los datos enviados por el método GET son visibles por  Los datos enviados por el método POST son
cualquiera. invisibles por otros.
 También tiene un límite de 2000 caracteres a pasar.  No tiene límite en la cantidad de caracteres a
 Es posible guardar la consulta en un bookmark ya que pasar.
es pasado por el URL. Lo que puede ser útil en algunos
casos.
 POST soporta funcionalidades avanzadas como
el poder subir archivos a un servidor.
 Puede ser usado para pasar datos no sensibles.
 Sin embargo, como las variables no se muestran
 Nunca se debe usar GET para pasar información
sensible. en la URL no pueden ser guardas en bookmarks.
Validación de formularios con PHP
 Es importante pensar en la seguridad cuando se procesan formularios.
 Se debe tratar de evitar usar el método GET para enviar información a PHP. Esto porque la data
puede ser manipulada de forma malintencionada.
 Usar la función htmlspecialchars() puede ayudar a evitar Cross Site Scripting (XSS) cuando se
usa la variable super global $_SERVER[“PHP_SELF”].
 Veamos un ejemplo:
Validación de formularios con PHP
 Asumamos que tenemos el siguiente formulario en una página llamada formulario.php.
<form action="<?php echo $_SERVER["PHP_SELF"];?>“ method=“METHOD" >
 Si un usuario ingresa la siguiente url: “http://www.paginaejemplo.com/formulario.php”, el
código del formulario lo traducirá como:
<form method="post" action=“formulario.php”>
 Hasta ahí, todo bien.
Validación de formularios con PHP
 Ahora asumamos que el usuario ingresa el siguiente url:
http://www.paginaejemplo.com/test_form.php/%22%3E%3Cscript%3Ealert(‘haz sido hackeado')
%3C/script%3E
 Esto será traducido en el código como:
<form method="post" action="formulario.php/”><script>alert(‘haz sido hackeado')</script>
 La URL inserta un script JS en el código que abrirá una ventana emergente con el mensaje entre
comillado.
 Se debe tener cuidado con la posibilidad que se inserten script por medio de URL ya que estos
podrían redireccionar a los usuarios a sitios maliciosos.
Validación de formularios con PHP
 ¿Como se puede evitar?
 De tener que usar el super global $_SERVER[“PHP_SELF”] se recomienda usar la función:
htmlspecialchars(); y como parámetro ingresar el super global, obteniendo el siguiente código:
<form method="post“ action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>”>
 La función convertirá cualquier carácter especial en simple texto plano HTML por lo que si
se intenta usar el exploit anterior se obtendrá esta salida:
<form method="post" action=“formulario.php/&quot;&gt;&lt;script&gt;alert('hacked')&lt;/
script&gt;">
 Esto ahora que se produzca un error en la página pero el intento de exploit fallará.
Validación de formularios con PHP
 Retomando: <?php
1. Lo primero que se debe de hacer para la validación con // inicialización de variables
$nom = $email = $genero = $mensaje = $url = "";
PHP es pasar todas las variables por la función
htmlspecialchars() para evitar XSS.
if ($_SERVER["REQUEST_METHOD"] == "POST") {
2. Lo siguiente es eliminar todos los espacios en blanco $nom = probar_entradas($_POST["nom"]);
adicionales de las entradas de los usuarios, usando la $email = test_input($_POST["email"]);
función trim(). $website = test_input($_POST[“url"]);
$comment = test_input($_POST[“mensaje"]);
3. Eliminar los backslash de las entrdas de los usuarios,
$gender = test_input($_POST["genero"]);
usando la función stripslashes().
}
4. Lo siguiente es verificar que las entradas estén en el
formato correcto deseado. function probarEntradas($data) {
5. Lo último es verificar que todos los campos requeridos $data = trim($data);
hayan sido llenados. $data = stripslashes($data);
$data = htmlspecialchars($data);
 Para esto se puede crear una función que realice todas o al return $data;
menos la mayoría de esas verificaciones. Por ejemplos }
probarEntradas(); ?>
Campos requeridos en formularios con
PHP <?php
// define variables and set to empty values
$nameErr = $emailErr = $genderErr = $websiteErr = "";

 Si se necesita corroborar si un campo


$name = $email = $gender = $comment = $website = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {

este vacío o no, se puede utilizar la $nameErr = "Name is required";


} else {
$name = test_input($_POST["name"]);

función PHP de empty(). }

if (empty($_POST["email"])) {
$emailErr = "Email is required";
} else {
 Igual manera se puede agregar la }
$email = test_input($_POST["email"]);

función probarEntradas() creada if (empty($_POST["website"])) {


$website = "";
} else {

anteriormente junto con un if … else


$website = test_input($_POST["website"]);
}

if (empty($_POST["comment"])) {

para parsear las entradas del usuario. $comment = "";


} else {
$comment = test_input($_POST["comment"]);
}

if (empty($_POST["gender"])) {
$genderErr = "Gender is required";
} else {
$gender = test_input($_POST["gender"]);
}
}
?>
Campos requeridos en formularios con
PHP
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">

 Luego en el formulario HTML se Name: <input type="text" name="name">


<span class="error">* <?php echo $nameErr;?></span>
<br><br>
puede agregar un pequeño script PHP E-mail:
<input type="text" name="email">

para imprimir las variables con los <span class="error">* <?php echo $emailErr;?></span>
<br><br>
Website:
mensajes de error. <input type="text" name="website">
<span class="error"><?php echo $websiteErr;?></span>
<br><br>
Comment: <textarea name="comment" rows="5" cols="40"></textarea>
<br><br>
Gender:
<input type="radio" name="gender" value="female">Female
<input type="radio" name="gender" value="male">Male
<input type="radio" name="gender" value="other">Other
<span class="error">* <?php echo $genderErr;?></span>
<br><br>
<input type="submit" name="submit" value="Submit">

</form>
Validar los campos de nombre y
correo en formularios con PHP
 Se puede hacer uso de las expresiones regulares para hacer este tipo de
validaciones:
$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z-' ]*$/",$name)) {
$nameErr = "Only letters and white space allowed";
}
$website = test_input($_POST["website"]);
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",
$website)) {
$websiteErr = "Invalid URL";
}
Validar los campos de nombre y
correo en formularios con PHP
 Enel caso de los correos electrónicos se puede utilizar la
función filter_var()
$email = test_input($_POST["email"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Invalid email format";
}
PHP & MySQL
PHP & MySQL
 Con PHP se puede conectar y manipular bases de datos.
 MySQL es el gestor de base de datos más popular para usar con PHP.
PHP & MySQL
¿Qué es MySQL?
 Sistema de base de datos usado para la web
 Sistema de base de datos que corre en un servidor
 Ideal para pequeñas y grandes aplicaciones
 Rápido, confiable y fácil de usar
 Usa el lenguaje estándar SQL
 Se ejecuta en múltiples plataformas
 Gratis de descargar y usar
 Desarrollado, distribuido y soportado por Oracle Corporation
PHP & MySQL
 Los datos en MySQL se almacenan en tablas.
 Una tabla es una colección de datos relacionados y consiste en columnas y filas.
 Se utilizan las queries SQL para que PHP puedan consultar o manipular los datos en las tablas.
PHP & MySQL – Conectarse a la BD
 Antes de acceder a la data en una base de datos, se necesita primero conectar con el servidor que
hospeda dicha base de datos.
 En PHP hay 2 maneras de utilizar MySQL:
 MySQLi extension
 PDO (PHP Data Objects)
 Se puede utilizar cualquiera. La diferencia es que PDO puede ser usado para cualquier gestor de
base de datos y MySQLi solo puede ser usado para aquellos que sean parecidos a MySQL, como
MariaDB
PHP & MySQL – Conectarse a la BD
MySQLi PDO
<?php <?php
$servername = “servidor"; $servername = “servidor";
$username = “usuario"; $username = “usuario";
$password = “contraseña";
$password = “contraseña";
try {
// Crear la conexión $conn = new PDO("mysql:host=$servername;dbname=myDB",
$conn = new mysqli($servername, $username, $password); $username, $password);
// setear el modo de error PDO para excepciones
// Verificar la conexión $conn->setAttribute(PDO::ATTR_ERRMODE,
if ($conn->connect_error) { PDO::ERRMODE_EXCEPTION);
die(“Conexión fallida: " . $conn->connect_error); echo "Conexión exitosa";
} catch(PDOException $e) {
}
echo "Conexión fallida: " . $e->getMessage();
echo "Conexión exitosa"; }
?> ?>
PHP & MySQL – Conectarse a la BD
 Por temas de seguridad siempre se debe de cerrar la conexión a la base de datos.
 De ese modo se ayuda a evitar hackeos mediante inyección de códigos SQL.
 MySQLi
 $conn->close();
 PDO
 $conn = null;
PHP & MySQL – Crear una base de datos
 Una base de datos consiste en una o varias tablas.
 Es necesario que el usuario con el que se haya hecho la conexión cuente con los privilegios
correspondientes para crear o borrar bases de datos.
 Se recomienda no utilizar el usuario root del servidor de bases de datos.
 Se utiliza la sentencia SQL, CREATE DATABASE
PHP & MySQL – Crear una base de datos
MySQLi PDO
<?php <?php
// Conexión a la base de datos // Conexión a la base de datos
$include(“conexion.php”); $include(“conexion.php”);

// Creación de la base de datos //Creación de la base de datos


$sql = "CREATE DATABASE myDB"; $sql = "CREATE DATABASE myDBPDO";
if ($conn->query($sql) === TRUE) { $conn->exec($sql);
echo “Base de datos creada"; echo “Base de datos creada<br>";
} else { } catch(PDOException $e) {
echo "Error creando la base de datos: " . $conn->error; echo $sql . "<br>" . $e->getMessage();
} }

$conn->close(); $conn = null;


?> ?>
PHP & MySQL – Crear tablas
 La tabla de una base de datos tiene su propio nombre único y consiste en filas y columnas.
 Se utiliza la sentencia SQL, CREATE TABLE.
 Es importante saber que en el archivo en donde se tiene la conexión al servidor de base de datos
se tiene que incluir un parámetro para la conexión a la base de datos.
PHP & MySQL – Crear tablas
<?php <?php
// Conexión a la base de datos // Conexión a la base de datos
include(conexión.php);
$include(“conexion.php”);
// Check connection
//Creación de la tabla
// sql to create table $sql = "CREATE TABLE Visitas (
$sql = "CREATE TABLE Visitas( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, firstname VARCHAR(30) NOT NULL,
nombre VARCHAR(30) NOT NULL, lastname VARCHAR(30) NOT NULL,
apellido VARCHAR(30) NOT NULL,
email VARCHAR(50),
correo VARCHAR(50),
registro TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON
CURRENT_TIMESTAMP UPDATE CURRENT_TIMESTAMP
)"; )";
$conn->exec($sql);
if ($conn->query($sql) === TRUE) { echo “Tabla creada<br>";
echo "Tabla creada exitosamente"; } catch(PDOException $e) {
} else {
echo $sql . "<br>" . $e->getMessage();
echo "Error al crear la tabla: " . $conn->error;
} }

$conn->close(); $conn = null;


?> ?>
PHP & MySQL – Insertar data
 Por lo general la creación de base de datos y tablas no se hará con PHP sino desde la misma base de datos.
 Es la inserción de datos que se suele hacer a través de PHP haciendo uso de los datos que el usuario pasa a
través de formularios en HTML.
 Sin embargo, para esta operación se necesita que exista una base de datos operacional y una tabla en donde
insertar dichos datos.
 Hay unas reglas a seguir:
 La consulta SQL debe ir entre comillas.
 Los Strings de SQL deben ir entre comillas para el SQL (utilizar 2 sistemas de comillas)
 Los valores numéricos no necesitan ir entre comillas
 La palabra Null no debe ir entre comillas
PHP & MySQL – Insertar data
<?php <?php
// Conexión a la base de datos // Conexión a la base de datos
include(conexión.php);
$include(“conexion.php”);
// Check connection
//Inserción de los datos
// sql to create table $sql = "INSERT INTO Visitas (nombre, apellido,
$sql = "INSERT INTO Visitas (nombre, apellido, correo) correo) VALUES ('John', 'Doe', '[email protected]')";
VALUES ('John', 'Doe', '[email protected]')"; $conn->exec($sql);
echo “Nuevo registro<br>";
if ($conn->query($sql) === TRUE) { } catch(PDOException $e) {
echo “Nuevo registro";
echo $sql . "<br>" . $e->getMessage();
} else {
echo “Error en el registro: “.$sql.”<br>”.$conn->error; }
}
$conn = null;
$conn->close(); ?>
?>
PHP & MySQL – Obtener el ultimo ID
 Se puede sacar información de las tablas una vez hecho el ingreso.
 Por ejemplo. Normalmente los IDs se registran de forma automática utilizando la función
Auto_Increment de SQL.
 Se puede obtener ese último ID generado utilizando el método insert_.
PHP & MySQL – Obtener el ultimo ID
<?php <?php
// Conexión a la base de datos
// Conexión a la base de datos
include(conexión.php);
// Check connection
$include(“conexion.php”);
//Inserción de los datos
// sql to create table $sql = "INSERT INTO MyGuests (nombre, apellido,
$sql = "INSERT INTO Visitas (nombre, apellido, correo) correo) VALUES ('John', 'Doe', '[email protected]')";
VALUES ('John', 'Doe', '[email protected]')";
$conn->exec($sql);
if ($conn->query($sql) === TRUE) { $last_id = $conn->lastInsertId();
$last_id = $conn->insert_id; echo “Nuevo registro. El último ID es: " . $last_id;
echo “Nuevo registro. El último ID es “.$last_id; } catch(PDOException $e) {
} else {
echo $sql . "<br>" . $e->getMessage();
echo “Error en el registro: “.$sql.”<br>”.$conn->error;
}
}

$conn->close(); $conn = null;


?> ?>
PHP & MySQL – Insertar registros multiples
 Se puede hacer una inserción de registros múltiples utilizando la función multi_query() en el
caso de MySQLi.
 En el caso de PDO se debe hacer la función exec() múltiples veces junto con las funciones
beginTrasaction() y commit().
PHP & MySQL – Insertar registros
múltiples
<?php
<?php
// Conexión a la base de datos
// Conexión a la base de datos $include(“conexion.php”);
include(conexión.php); //Creación de la base de datos
// Iniciar la transacción
// Check connection $conn->beginTransaction();
// Sentencias SQL
$conn->exec("INSERT INTO Visitas (nombre, apellido, correo)
// sql to create table VALUES ('John', 'Doe', '[email protected]')");
$sql = "INSERT INTO Visitas (nombre, apellido, correo) $conn->exec("INSERT INTO Visitas (nombre, apellido, correo)
VALUES ('Mary', 'Moe', '[email protected]')");
VALUES ('John', 'Doe', '[email protected]')"; $conn->exec("INSERT INTO Visitas (nombre, apellido, correo)
VALUES ('Julie', 'Dooley', '[email protected]')");

if ($conn->multi_query($sql) === TRUE) { // Realizar la transacción


echo “Nuevos registros"; $conn->commit();
echo “Nuevos registros <br>";
} else { } catch(PDOException $e) {
echo “Error en el registro: “.$sql.”<br>”.$conn->error; // hace un vuelta atras si algo pasa
$conn->rollback();
} echo "Error: " . $e->getMessage();
}

$conn->close(); $conn = null;


?> ?>
PHP & MySQL - Select
 La sentencia Select se utiliza para consultar información en una o varias tablas en la base de
datos.
 Se puede usar el wildcard asteristo (*) para seleccionar todas las columnas o indicar que
columnas y en que orden se quiere mostrar la data.
PHP & MySQL - Select
MySQLi PDO
<?php <?php
// Conectar con la base de datos // Conectar con la base de datos
includo(“conexion.php”); include(“conexion.php”);
// Consulta SQL
// Consulta SQL
$sql = "SELECT id, nombre, apellido FROM Visitas";
$sql = "SELECT id, nombre, apellido FROM Visitas";
$result = $conn->query($sql);
$result = $conn->query($sql);
if ($result->num_rows > 0) {
if ($result->num_rows > 0) { echo "<table><tr><th>ID</th><th>Nombre</th><th>Apellido</th></tr>";
// Salida de los datos por fila //Salida de los datos por fila
while($row = $result->fetch_assoc()) { while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Nombre: " . $row[“nombre"]. " " . echo "<tr><td>".$row["id"]."</td><td>".$row[“nombre"]." ".
$row[“apellido"]. "<br>"; $row[“apellido"]."</td></tr>";
} }
echo "</table>";
} else {
} else {
echo "0 resultados"; echo "0 resultados";
} }
$conn->close(); $conn->close();
?> ?>
PHP & MySQL – Filtrar registros
 Se pueden filtrar registros utilizando la cláusula WHERE.
 Se utiliza para extraer solo los registros que cumplen específicamente una determinada
condición.
PHP & MySQL – Filtrar registros
MySQLi PDO
<?php <?php
// Conectar con la base de datos // Conectar con la base de datos
includo(“conexion.php”); include(“conexion.php”);
// Consulta SQL // Consulta SQL
$sql = "SELECT id, nombre, apellido FROM Visitas WHERE apellido = $sql = "SELECT id, nombre, apellido FROM Visitas WHERE apellido = Doe";
Doe"; $result = $conn->query($sql);
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo "<table><tr><th>ID</th><th>Nombre</th><th>Apellido</th></tr>";
if ($result->num_rows > 0) {
//Salida de los datos por fila
// Salida de los datos por fila
while($row = $result->fetch_assoc()) {
while($row = $result->fetch_assoc()) {
echo "<tr><td>".$row["id"]."</td><td>".$row[“nombre"]." ".
echo "id: " . $row["id"]. " - Nombre: " . $row[“nombre"]. " " . $row[“apellido"]."</td></tr>";
$row[“apellido"]. "<br>"; }
} echo "</table>";
} else { } else {
echo "0 resultados"; echo "0 resultados";
} }
$conn->close(); $conn->close();
?> ?>
PHP & MySQL – Ordenar registros
 Se pueden ordenar los registros obtenidos de una consulta de forma ascendente (menor a mayor)
o descendente (mayor a menor) utilizando la cláusula ORDER BY.
 Por defecto MySQL ordena los registros de forma ascendente.
 Para eso se le indica a ORDER BY como quiere que se orden los registros:
 ASC, para ascendente
 DESC, para descendente
PHP & MySQL – Ordenar registros
MySQLi PDO
<?php <?php
// Conectar con la base de datos // Conectar con la base de datos
includo(“conexion.php”); include(“conexion.php”);
// Consulta SQL // Consulta SQL
$sql = "SELECT id, nombre, apellido FROM Visitas ORDER BY DESC";
$sql = "SELECT id, nombre, apellido FROM Visitas ORDER BY DESC";
$result = $conn->query($sql);
$result = $conn->query($sql);
if ($result->num_rows > 0) {
if ($result->num_rows > 0) { echo "<table><tr><th>ID</th><th>Nombre</th><th>Apellido</th></tr>";
// Salida de los datos por fila //Salida de los datos por fila
while($row = $result->fetch_assoc()) { while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Nombre: " . $row[“nombre"]. " " . echo "<tr><td>".$row["id"]."</td><td>".$row[“nombre"]." ".
$row[“apellido"]. "<br>"; $row[“apellido"]."</td></tr>";
} }
} else { echo "</table>";
echo "0 resultados"; } else {
} echo "0 resultados";
}
$conn->close();
$conn->close();
?>
?>
PHP & MySQL – Borrar data
 La sentencia DELETE se utiliza para borrar registros de una tabla.
 Recuerde que un DELETE debe ir con una cláusula WHERE.
 Si omite el uso de la cláusula WHERE todos los datos de la tabla se borrarán y no se podrán
recuperar.
 Dependiendo de los datos que contenga la tabla, puede que sea mejor desactivar registros que
borrarlos.
PHP & MySQL – Borrar data
 Asumamos que tenemos estos datos en la tabla Visitas

ID Nombre Apellido Correo Fecha_registro


1 Jonh Doe [email protected] 2014-10-22 14:26:15
2 Maria Moe [email protected] 2014-10-23 10:22:30
3 Jane Dooley [email protected] 2014-10-26 10:48:23

 Se quiere borrar el último registro de la tabla.


PHP & MySQL – Borrar data
MySQLi PDO
<?php <?php
// Conectar a la base de datos // Conectar a la base de datos
include(“conexion.php”); include(“conexion.php”);
// Consulta sql
// Consulta sql
$sql = "DELETE FROM Visitas WHERE id=3";
$sql = "DELETE FROM Visitas WHERE id=3";

if ($conn->query($sql) === TRUE) {


$conn->exec($sql);
echo “Registro borrado"; echo “Registro borrado";
} else { } catch(PDOException $e) {
echo "Error al borrar: " . $conn->error; echo $sql . "<br>" . $e->getMessage();
} }

$conn->close(); $conn = null;


?> ?>
PHP & MySQL – Actualizar data
 La sentencia UPDATE se utiliza para actualizar registros de una tabla.
 Recuerde que un UPDATE debe ir con una cláusula WHERE.
 Si omite el uso de la cláusula WHERE todos los datos de la tabla se actualizarán.
PHP & MySQL – Actualizar data
 Asumamos que tenemos estos datos en la tabla Visitas luego de hacer la ultima operación de
borrar.
ID Nombre Apellido Correo Fecha_registro
1 Jonh Doe [email protected] 2014-10-22 14:26:15
2 Maria Moe [email protected] 2014-10-23 10:22:30

 Se quiere actualizar el registro con el ID 2 de la tabla.


PHP & MySQL – Actualizar data
MySQLi PDO
<?php <?php
// Conectar a la base de datos // Conectar a la base de datos
include(“conexion.php”); include(“conexion.php”);
// Consulta sql
// Consulta sql
$sql = “UPDATE Visitas SET apellido = ‘Doe’ WHERE
$sql = “UPDATE Visitas SET apellido = ‘Doe’ WHERE id=2";
id=2";
$conn->exec($sql);
if ($conn->query($sql) === TRUE) { echo “Registro actualizado";
echo “Registro actualizado"; } catch(PDOException $e) {
} else { echo $sql . "<br>" . $e->getMessage();
echo "Error al actualizar: " . $conn->error; }
}
$conn = null;
$conn->close(); ?>
?>
PHP & MySQL – Limitar data
 MySQL provee el uso de la cláusula LIMIT para especificar el número de registros que se
quieren mostrar.
 El uso de esta cláusula ayuda a la visualización de datos ya que no se llena de información toda
la página, sino que se ven de una forma más controlada.
 Ejemplo: Supongamos que se quieren mostrar los primeros 30 registros de un SELECT:
 $sql = "SELECT * FROM Orders LIMIT 30";
PHP & MySQL – Limitar data
 En el caso que, por ejemplo, se quiera mostrar los registros de un determinado rango, por
ejemplo 16 a 25. Se utiliza OFFSET junto con la cláusula LIMIT.
 OFFSET, indica desde que registro se quiere comenzar y LIMIT cuantos registros se quieren
mostrar
 $sql = "SELECT * FROM Orders LIMIT 10 OFFSET 16";
 También se puede hacer de forma acortada de la siguiente forma:
 $sql = "SELECT * FROM Orders LIMIT 16, 10";
PHP & MySQL

También podría gustarte