SlideShare una empresa de Scribd logo
1 de 55
Descargar para leer sin conexión
PHP
Ramiro Estigarribia Canese
¿Qué es PHP?
PHP es un lenguaje de programación
diseñado para el desarrollo web de contenido
dinámico.
¿Cómo funciona?
➔ Cuando el cliente hace una petición, el servidor ejecuta
el intérprete PHP.
➔ Este compila el código fuente, que genera el sitio web.
➔ El resultado es enviado al navegador del cliente.
Características.
1. Es un multiplataforma y gratis. (Windows, Linux, Mac.)
2. El código PHP es invisible al navegador.
3. Capacidad de conexión con bases de datos.
4. Capacidad de expandir su potencial con plugins.
5. Posee una amplia penetración en internet.
Market Share:
Sitios en Internet
http://w3techs.com/technologies/overview/programming_language/all
Market Share en Internet
Lenguajes para cliente
http://w3techs.com/technologies/overview/client_side_language/all
Evolución
La última versión es 5.7, que presenta
mejoras en el entorno orientado a objetos.
Compite en aplicaciones empresariales con las
plataformas J2EE y .NET.
➔ Mejor soporte para MySQL.
➔ Mejor soporte a XML.
➔ Soporte nativo para SQLite.
➔ Iteradores de datos.
➔ Manejo de excepciones.
➔ Mejoras con la implementación con Oracle.
Instalación en Windows
La forma más común es utilizar “combos”:
Apache (servidor web), MySQL (base de datos) y PHP.
Facilitan el trabajo para instalar un servidor de desarrollo.
http://www.wampserver.com
http://wtriple.com/wtnmp/
http://www.easyphp.org/
Instalación en Linux
En Centos/RedHat/Fedora :
● yum install httpd mysql-server php-mysql php-
common
En Ubuntu/Debian/Mint :
● sudo apt-get install tasksel
(el combo completo)
apt-get install phpmyadmin
● sudo apt-get install php
(solo el compilador)
¿Cómo se prueba la
instalación?
➔ Después que tengamos instalado nuestro
servidor local tenemos que probarlo, para hacer
esto ingresamos http://localhost en nuestro
navegador.
➔ Si todo esta instalado debidamente entonces
debemos ver un mensaje diciendo que funciona.
➔ La carpeta /var/www/html, es por defecto la carpeta
principal.
Todo lo que esté en esta carpeta es accesible
desde el navegador web a través del servidor web.
Activar modo debug
display_errors = on
1. Ingresar a la terminal: LXTerminal
2. Ejecutar: sudo subl /etc/php5/apache2/php.ini
3. Cambiar la opción display_erros = off, y reemplazar
por display_errors=on.
(Control G, y escribir 469, para llegar al lugar exacto.)
3. Reiniciar el servicio: apachectl restart
Estructura Básica
<!DOCTYPE html>
<head>
<meta charset="UTF-8" />
<title>Ejemplo PHP</title>
</head>
<body>
<?php
print 'Hola mundo';
?>
</body>
</html>
➔ Todo código va entre:
<?php y ?>
➔ La líneas que
empiezan con // son
comentarios.
➔ La función print
imprime texto en la
pantalla.
➔ Al igual que Java, toda
instrucción debe
terminar con ;
Variables
➔ Comienzan con el signo $.
➔ No hace falta declarar, o especificar el tipo de dato.
<?php
$dia = 24; //variable de tipo integer.
$sueldo = 758.43; //variable de tipo double.
$nombre = ‘juan’; //variable de tipo string.
print "variable entera $dia";
print "<br>";
print "Variable double: $sueldo";
print "<br>";
print "Variable string: $nombre";
?>
Estructura condicional (if)
Cuando se pretende que el programa tome un camino
concreto, se utiliza: if y else.
La estructura es la siguiente:
if (Condición)
{
Instrucción 1;
}
else
{
Instrucción 2;
}
Estructura condicional (if)
Ejemplo: Valor Aleatorio.
<?php
$valor=rand(1,10);
//rand permite sortear un número
print "El valor sorteado es $valor<br>";
if ($valor<5)
{
echo "Es menor o igual a 5";
}
else
{
echo "Es mayor a 5";
}
?>
Estructura while
➔ Es similar a otros lenguajes (Java, C++, etc.)
➔ Ejecuta un bloque de programa mientras se cumpla
una cierta condición.
➔ Cuando deja de cumplirse, sale del ciclo y continúa
ejecutándose el resto del programa.
while(condición)
{
instrucciones;
}
Mostrar Números
<?php
$valor=rand(1,100);
//rand permite sortear un número
$inicio=1;
while($inicio<=$valor)
{
print $inicio;
print "<br>";
$inicio++;
}
?>
Titulos y tamaños
<?PHP
$numero=1;
while ($numero<=6)
{
print "<h$numero>
Titulo $numero
</h$numero>";
$numero++;
}
?>
Tabla: 6 filas y 2 columnas
<?PHP
$numero=1;
print "<table border=1>";
while ($numero<=6)
{
print "<tr><td>A</td><td>B</td></tr>";
$numero++;
}
print "</table>";
?>
Ciclo For (Desde)
Se diferencia de while, en que se debe incluir, una
variable, la cual se incrementa o decrementa en forma
automática.
for ($variable=Inicio; Condición; Incremento)
{
Intrucción_1;
:
Intrucción_N;
}
Mostrar números del 1 al 12
<?php
for($numero=1;$numero<=12;$numero++)
{
print $numero;
print "<br>";
}
?>
Números al cuadrado
<?PHP
print "<table Border=1><tr>
<th>Numero</th>
<th>Cuadrado</th></tr>";
for ($i=1; $i<=10; $i++)
{
$cuadrado= $i * $i;
print"<tr>";
print"<td>$i</td>";
print"<td>$cuadrado</td>";
print"</tr>";
}
print "</table>";
?>
Formularios
➔ Permite cargar datos al servidor.
➔ Es el medio ideal para registrar datos, solicitar
productos, sacar turnos etc.
➔ HTML solo tiene el objetivo de crear el formulario.
Se requiere de dos páginas, una que implementa el
formulario HTML y otra que procesa los datos.
Para acceder al dato se cuenta con $_REQUEST,
indicando el nombre de la variable.
Variable nombre
Archivo uno.html:
Archivo dos.php:
<form action=dos.php>
Ingrese su nombre:
<input type=text name=nombre><br>
<input type=submit value=confirmar>
</form>
<?php
print "El nombre ingresado es:";
print $_REQUEST['nombre'];
?>
Tabla de Multiplicar
<form action=result.php>
<label>Inserte un numero</label>
<input type=number name=num>
<input type=submit>
</form>
<?php
$num = $_REQUEST["num"];
$x = 1; //inicializador
do {
$resultado = $x * $num;
print "$resultado <br>";
$x++; //incrementación
} while ($x <= 10);
?>
Mayor de edad
<form action=edad.php>
Ingrese el nombre:
<input type=text name=nombre><br>
Ingrese la edad:
<input type=number name=edad>
<br><input type=submit>
</form>
<?php
print $_REQUEST['nombre'];
if ($_REQUEST['edad']>=18)
{ print " Es mayor de edad"; }
else
{ print " No es mayor de edad"; }
?>
<form action=calcular.php>
Ingrese valor uno:
<input type=number name=valor1><br>
Ingrese valor dos:
<input type=number name=valor2><br>
<input type=radio name=operador
value=suma>sumar<br>
<input type=radio name=operador
value=resta>restar<br>
<input type=submit value=Calcular>
</form>
Control Radio (parte 1)
Control Radio (parte 2)
<?php
if ($_REQUEST['operador']=='suma')
{
$suma=$_REQUEST['valor1'] + $_REQUEST['valor2'];
print "La suma es: $suma";
}
if ($_REQUEST['operador']=='resta')
{
$resta=$_REQUEST['valor1'] - $_REQUEST['valor2'];
print "La resta es: $resta";
}
?>
<Select> (parte 1)
<form action=dos.php>
Ingrese su nombre:
<input type=text name=nombre><br>
Seleccione en que rango se ubica su salario:
<select name=salario>
<option value=1>1-1000</option>
<option value=2>1001-3000</option>
<option value=3>3000</option>
</select><br>
<input type=submit>
</form>
<Select> (parte 2)
<?php
print $_REQUEST['nombre'];
if ($_REQUEST['salario']==3)
{
print " Debe pagar impuestos.";
}
else
{
print " No debe pagar impuestos.";
}
?>
Vectores
Se utilizan directamente, sin declarar:
$nombre[0]=’Juan’;
$nombre[1]=’Pedro’;
Si ahora hacemos: $nombre[2]=Luis;
El vector tendrá 3 datos.
También podemos obviar el subíndice:
$nombre[]=’Juan’;
$nombre[]=’Pedro’;
$nombre[]=Luis;
Automáticamente se numera: 0,1,2....
Ejemplo con un Vector
<?php
$nombre[0]=’Juan’;
$nombre[1]=’Pedro’;
$nombre[2]=’Luis’;
for($i=0;$i<count($nombres);$i++)
{
print $nombres[$i];
print "<br>";
}
?>
Arreglo Asociativo
➔ Asigna nombres a cada posición o dato del arreglo.
➔ Es una manera más humana de acceder a los elementos.
➔ Esta vez los datos tendrán la forma de $llave => $valor.
<?php
$persona = array('nombre'=>'Juan', 'apellido'=>'valdez');
?>
Para acceder a un dato:
print $persona['apellido'];
Recorrer Arreglos
Existen varias maneras.
La mejor y más sencilla es utilizar el bucle foreach().
<?php
$colores = array('rojo', 'verde', 'azul');
foreach( $colores as $color) {
print 'Color actual '. $color ;
}
?>
Funciones para Arreglos
➔ sort(): Sirve para ordenar un arreglo
Recibe dos parámetros: el arreglo y el tipo de algoritmo.
(SORT_NUMERIC, SORT_STRING, SORT_REGULAR,
estos son los mas utilizados).
➔ print_r(): Imprime todos los elementos del arreglo.
➔ in_array(): Busca un valor(primer parámetro) en un arreglo
(segundo parámetro) y devuelve True si lo consigue o
False si no.
➔ array_search(): Busca un valor (primer parámetro) en un
arreglo (segundo parámetro) y devuelve la posición si lo
consigue.
Subir 1 Archivo.
<form enctype=multipart/form-
data action=subir.php>
Archivo:
<input name=archivo type=file>
<input type=submit>
</form >
<?php
print "Nombre:";
print $_FILES['archivo']['name'];
print "<br>Tipo:";
print $_FILES['archivo']['type'];
print "<br>Tamano:";
print $_FILES['archivo']['size'];
print "<br>Ruta:";
print $_FILES['archivo']['tmp_name'];
?>
Sessions
➔ Permiten que las páginas sean tratadas como un grupo,
ya que podemos compartir variables en diferentes páginas.
➔ Para crear una Session se utiliza la función session_start().
➔ Se almacenan en el disco duro del usuario.
<?php
session_start();
$_SESSION['nombre'] = 'Juan';
$_SESSION['apellido'] = 'Perez';
?>
<?php
session_start();
if (isset($_SESSION['nombre'])) {
print $_SESSION['nombre'];
} else {
print 'No existe la variable';
}
?>
Cookies
➔ Permiten guardar configuración del usuario.
➔ Se almacenan en el disco duro del usuario.
➔ Pueden permanecer un gran tiempo almacenadas,
incluso hasta después que dejas el sitio.
➔ Tienen un tamaño limitado de espacio, por lo cual solo
sirven para datos específicos.
Crear una cookie:
setcookie('nombreUsuario', 'Pedro', time() + 4800);
Leer una cookie:
if (isset($_COOKIE['nombreUsuario']))
print 'Valor de la Cookie '. $_COOKIE
['nombreUsuario'];
else
print 'No hay Cookies';
Redireccionar a otra página
<?php
header("Location: http://[direccion]");
?>
Para probar implementaremos un formulario que
solicite el ingreso por teclado de una dirección de
internet.
La segunda página redireccionará al sitio
web cargado en el formulario.
Funciones de Fecha.
Las funciones de PHP en general están pensadas
para ser usadas rápidamente, sin muchas
complicaciones.
print date("d-m-Y H:i");
Resultado: 27-05-2014 19:30
print date("d-m-Y");
Resultado: 27-05-2014
print date("H:i:s");
Resultado: 19:30:15
Más funciones: http://php.net/manual/es/ref.datetime.
php
Funciones de Fecha.
<?php
$dias = array("domingo","lunes","martes","miercoles","jueves","
viernes",
"sabado");
print "Hoy es ".$dias[date("w")]."<br>";
print "Today is " . date("Y.m.d") . "<br>";
print "Today is " . date("Y-m-d") . "<br>";
print "Today is " . date("l");
?>
Base de datos
Uno de los empleos principales de PHP
es el acceso a una base de datos.
Las operaciones se hacen empleando el lenguaje SQL.
PHP implementa distintas funciones según
la base de datos a emplear.
Existen funciones para trabajar con:
➢ MySQL
➢ Microsoft SQL Server
➢ Oracle
➢ PostgreSQL
➢ SYBASE, etc.
¿Qué es PhpMyAdmin?
Es una herramienta escrita en PHP con la intención de
manejar la administración de MySQL a través de
páginas web, utilizando Internet.
Puede crear y eliminar Bases de Datos, crear, eliminar
y alterar tablas; borrar, editar y añadir campos,
ejecutar cualquier sentencia SQL, administrar claves
en campos, administrar privilegios, exportar datos en
varios formatos.
Se encuentra disponible bajo la licencia GPL.
Inicio de PhpMyAdmin
Creación de Base de Datos
1. Ingresar en la opción Bases de Datos.
2. Escribir el nombre, y presionar el botón Crear.
Creación de Tablas
1. Ingresar en la Base de Datos creada. (Columbia)
2. Escribir el nombre, el número de columnas y
presionar el botón Continuar.
Insertar datos
Ingresar en la tabla Alumnos y presionar el botón Insertar.
5320290
Juan Lopez
1994-01-04
2333555
Ana Gaona
1994-01-06
2100555
Carol Perez
1992-01-06
Insertar los siguientes Alumnos:
Listado
(selección de registros)
<?php
$db = new mysqli('localhost', 'root', '1', 'Columbia');
$sql = "select * from Alumnos";
$resultado = $db->query($sql);
while($fila = $resultado->fetch_assoc())
{
// $fila es un arreglo asociativo con los campos del select
print $fila['Documento'];
print "<hr>";
}
?>
Insert
Alta de registros. (parte 1)
<form action=insertar.php>
<label>Documento:</label>
<input type=number
name=Documento><br>
<label>Nombre:</label>
<input type=text name=Nombre><br>
<label>Nacimiento:</label>
<input type=date name=Nacimiento><br>
<input type=submit>
</form>
Es necesario un formulario para cargar datos, y otro para procesar.
Insert
Alta de registros. (parte 2)
<?php
$db = new mysqli('localhost', 'root', '1', 'Columbia');
$sql = "insert into Alumnos values('$_REQUEST
[Documento]','$_REQUEST[Nombre]', '$_REQUEST
[Nacimiento]')";
if(! $db->query($sql)){
die("Ocurrio un error ejecutando: $db->error");
}
print "Filas Insertadas: $db->affected_rows";
?>
Update
Modificar Registros.
<?php
$db = new mysqli('localhost', 'root', '1', 'Columbia');
$sql = "update Alumnos set Nombre = 'Pedro'";
if(! $db->query($sql) ){
die("Ocurrio un error ejecutando: $db->error");
}
print 'Filas Modificadas: '.$db->affected_rows;
?>
En este ejemplo, vamos modificar los nombres,
sin usar un formulario.
Delete
Eliminar Registros.
<?php
$db = new mysqli('localhost', 'root', '1', 'Columbia');
$sql = "delete from Alumnos";
if(! $db->query($sql) ){
die("Ocurrio un error ejecutando: $db->error");
}
print 'Filas Eliminadas: '.$db->affected_rows;
?>
En este ejemplo, vamos eliminar todos los datos.
Include y Require.
➔ ¿Cómo haríamos para crear un sitio web que contenga
100 páginas con conexión a una base de datos?
➔ Sería tedioso repetir un código 100 veces.
➔ Para esto tenemos las funciones include y require.
require "conexion.php";
$sql = "UPDATE Alumnos SET Nombre = 'Pedro'";
if(! $db->query($sql) )
die("Ocurrio un error ejecutando: $db->error");
print 'Filas Modificadas: '.$db->affected_rows;
➔ Include intenta cargar el archivo pero si no logra, continua la
ejecución.
➔ En cambio Require corta el programa y muestra el error.
Automatizar creación de ABM
http://www.phpscaffold.com/
➔ Permite crear los formularios y listados para trabajar
con bases de datos.
➔ Evita el trabajo de escribir muchas líneas de código.
➔ Es necesario Exportar la tabla con PhpMyAdmin, y
copiar el resultado.
➔ Finalmente se pueden personalizar los resultados.
Clases y Objetos
<?php class Carro {
var $color;
var $numero_puertas;
var $marca;
var $gasolina = 0;
function llenarTanque($gasolina_nueva){
$this->gasolina = $this->gasolina +
$gasolina_nueva;
}
function acelerar(){
if ($this->gasolina > 0){
$this->gasolina = $this->gasolina - 1;
return 'Gasolina restante: '.$this->gasolina;
} } }
Se utilizan de manera
similar a otros lenguajes.
Facilitan la comprensión
y el mantenimiento.
Instanciar una clase.
$carro = new Carro();
// Instanciamos la clase Carro
$carro->color = 'Rojo';
// Llenamos las propiedades
$carro->marca = 'Honda';
$carro->numero_puertas = 4;
$carro->llenarTanque(10);
// utilizamos los metodos
$carro->acelerar();
$carro->acelerar();
$carro->acelerar();
?>
➔ Asignamos el color rojo y la
marca Honda.
➔ Definimos el número de
puertas, y cargamos 10 litros.
➔ Finalmente aceleramos.

Más contenido relacionado

La actualidad más candente (20)

Introducción a PHP
Introducción a PHPIntroducción a PHP
Introducción a PHP
 
Manual basico de PHP
Manual basico de PHPManual basico de PHP
Manual basico de PHP
 
Php basico y avanzado
Php basico y avanzadoPhp basico y avanzado
Php basico y avanzado
 
3 curso php
3 curso php3 curso php
3 curso php
 
Iniciacion a PHP (I)
Iniciacion a PHP (I)Iniciacion a PHP (I)
Iniciacion a PHP (I)
 
Exposicion de php
Exposicion de phpExposicion de php
Exposicion de php
 
Introducción a PHP
Introducción a PHPIntroducción a PHP
Introducción a PHP
 
Manual de php con ejercicios
Manual de php con ejerciciosManual de php con ejercicios
Manual de php con ejercicios
 
php
phpphp
php
 
Curso php-my sql-clase-2
Curso php-my sql-clase-2Curso php-my sql-clase-2
Curso php-my sql-clase-2
 
Introducción a recaptcha 3.0
Introducción a recaptcha 3.0Introducción a recaptcha 3.0
Introducción a recaptcha 3.0
 
Manual De Php
Manual De PhpManual De Php
Manual De Php
 
Curso Avanzado PHP para EHU/UPV
Curso Avanzado PHP para EHU/UPVCurso Avanzado PHP para EHU/UPV
Curso Avanzado PHP para EHU/UPV
 
Manual+php+básico
Manual+php+básicoManual+php+básico
Manual+php+básico
 
Variables y Bucles
Variables y BuclesVariables y Bucles
Variables y Bucles
 
Sesion 1
Sesion 1Sesion 1
Sesion 1
 
Php Basico
Php BasicoPhp Basico
Php Basico
 
Mini manual php
Mini manual phpMini manual php
Mini manual php
 
Php basico
Php basicoPhp basico
Php basico
 
Curso Php
Curso PhpCurso Php
Curso Php
 

Destacado

Funciones php sesion virtual-evidencia
Funciones php sesion virtual-evidenciaFunciones php sesion virtual-evidencia
Funciones php sesion virtual-evidenciamilcl0319
 
Prueba4.pdf
Prueba4.pdfPrueba4.pdf
Prueba4.pdfjcarrey
 
tutorial de slide.com
tutorial de slide.comtutorial de slide.com
tutorial de slide.comoctabio
 
Curso TIC de PHP y MSQL Parte 3
Curso TIC de PHP y MSQL Parte 3Curso TIC de PHP y MSQL Parte 3
Curso TIC de PHP y MSQL Parte 3Wilian
 
Php y MySQL
Php y MySQLPhp y MySQL
Php y MySQLKaris
 
Class 6 - PHP Web Programming
Class 6 - PHP Web ProgrammingClass 6 - PHP Web Programming
Class 6 - PHP Web ProgrammingAhmed Swilam
 

Destacado (13)

Marysabel morillo
Marysabel morilloMarysabel morillo
Marysabel morillo
 
Curso php desde_cero
Curso php desde_ceroCurso php desde_cero
Curso php desde_cero
 
Funciones php sesion virtual-evidencia
Funciones php sesion virtual-evidenciaFunciones php sesion virtual-evidencia
Funciones php sesion virtual-evidencia
 
Prueba4.pdf
Prueba4.pdfPrueba4.pdf
Prueba4.pdf
 
Clases de Programación Android
Clases de Programación AndroidClases de Programación Android
Clases de Programación Android
 
PHP. Bases de Datos
PHP. Bases de DatosPHP. Bases de Datos
PHP. Bases de Datos
 
tutorial de slide.com
tutorial de slide.comtutorial de slide.com
tutorial de slide.com
 
Curso TIC de PHP y MSQL Parte 3
Curso TIC de PHP y MSQL Parte 3Curso TIC de PHP y MSQL Parte 3
Curso TIC de PHP y MSQL Parte 3
 
Tema4[php]
Tema4[php]Tema4[php]
Tema4[php]
 
Php y MySQL
Php y MySQLPhp y MySQL
Php y MySQL
 
Estructura Básica de PHP
Estructura Básica de PHPEstructura Básica de PHP
Estructura Básica de PHP
 
PHP Web Programming
PHP Web ProgrammingPHP Web Programming
PHP Web Programming
 
Class 6 - PHP Web Programming
Class 6 - PHP Web ProgrammingClass 6 - PHP Web Programming
Class 6 - PHP Web Programming
 

Similar a 4.Programación con PHP y MySQL (20)

Php!
Php!Php!
Php!
 
Php1 sesión 6
Php1 sesión 6Php1 sesión 6
Php1 sesión 6
 
Clases de php
Clases de phpClases de php
Clases de php
 
Guia programacionwebbasicophp
Guia programacionwebbasicophpGuia programacionwebbasicophp
Guia programacionwebbasicophp
 
Programacion php
Programacion phpProgramacion php
Programacion php
 
Php
PhpPhp
Php
 
Introducción a php
Introducción a phpIntroducción a php
Introducción a php
 
Php
PhpPhp
Php
 
Php 6 y Mysql
Php 6 y MysqlPhp 6 y Mysql
Php 6 y Mysql
 
Php1
Php1Php1
Php1
 
Php
PhpPhp
Php
 
DESARROLLO-CON-PHP-pptx.pptx
DESARROLLO-CON-PHP-pptx.pptxDESARROLLO-CON-PHP-pptx.pptx
DESARROLLO-CON-PHP-pptx.pptx
 
Curso php dia2
Curso php dia2Curso php dia2
Curso php dia2
 
32773 php-basico
32773 php-basico32773 php-basico
32773 php-basico
 
9.laravel
9.laravel9.laravel
9.laravel
 
Php
PhpPhp
Php
 
Java script
Java script Java script
Java script
 
Mini manual php
Mini manual phpMini manual php
Mini manual php
 
Especialista Web J9 Php
Especialista Web J9  PhpEspecialista Web J9  Php
Especialista Web J9 Php
 
Informe grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuencaInforme grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuenca
 

Más de Ramiro Estigarribia Canese

8.Flujo, Comportamiento, Patrones y WebApps.pdf
8.Flujo, Comportamiento, Patrones y WebApps.pdf8.Flujo, Comportamiento, Patrones y WebApps.pdf
8.Flujo, Comportamiento, Patrones y WebApps.pdfRamiro Estigarribia Canese
 

Más de Ramiro Estigarribia Canese (20)

8.Flujo, Comportamiento, Patrones y WebApps.pdf
8.Flujo, Comportamiento, Patrones y WebApps.pdf8.Flujo, Comportamiento, Patrones y WebApps.pdf
8.Flujo, Comportamiento, Patrones y WebApps.pdf
 
Principios que Guían la Práctica
Principios que Guían la PrácticaPrincipios que Guían la Práctica
Principios que Guían la Práctica
 
CSS - Hojas de Estilo en Cascada.pdf
CSS -  Hojas de Estilo en Cascada.pdfCSS -  Hojas de Estilo en Cascada.pdf
CSS - Hojas de Estilo en Cascada.pdf
 
Python conceptos básicos
Python   conceptos básicosPython   conceptos básicos
Python conceptos básicos
 
Diseño de WebApps
Diseño de WebAppsDiseño de WebApps
Diseño de WebApps
 
Diseño basado en patrones
Diseño basado en patronesDiseño basado en patrones
Diseño basado en patrones
 
Servicios web
Servicios webServicios web
Servicios web
 
Especificaciones de los procesadores
Especificaciones de los procesadoresEspecificaciones de los procesadores
Especificaciones de los procesadores
 
Lenguaje de programación awk
Lenguaje de programación awkLenguaje de programación awk
Lenguaje de programación awk
 
Bases de datos con PHP y PDO
Bases de datos con PHP y PDOBases de datos con PHP y PDO
Bases de datos con PHP y PDO
 
Bases de datos con PHP y Mysqli
Bases de datos con PHP y MysqliBases de datos con PHP y Mysqli
Bases de datos con PHP y Mysqli
 
Interfaz de usuario
Interfaz de usuarioInterfaz de usuario
Interfaz de usuario
 
Variables del sistema en php
Variables del sistema en phpVariables del sistema en php
Variables del sistema en php
 
Funciones en php
Funciones en phpFunciones en php
Funciones en php
 
Bootstrap menues, contenedores y formularios
Bootstrap   menues, contenedores y formulariosBootstrap   menues, contenedores y formularios
Bootstrap menues, contenedores y formularios
 
Estructuras de control en bash
Estructuras de control en bashEstructuras de control en bash
Estructuras de control en bash
 
Visual studio code
Visual studio codeVisual studio code
Visual studio code
 
Diseño de software
Diseño de softwareDiseño de software
Diseño de software
 
Herramienta cacti
Herramienta cactiHerramienta cacti
Herramienta cacti
 
Monitoreo de datacenter
Monitoreo de datacenterMonitoreo de datacenter
Monitoreo de datacenter
 

Último

Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 

Último (10)

Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 

4.Programación con PHP y MySQL

  • 2. ¿Qué es PHP? PHP es un lenguaje de programación diseñado para el desarrollo web de contenido dinámico.
  • 3. ¿Cómo funciona? ➔ Cuando el cliente hace una petición, el servidor ejecuta el intérprete PHP. ➔ Este compila el código fuente, que genera el sitio web. ➔ El resultado es enviado al navegador del cliente. Características. 1. Es un multiplataforma y gratis. (Windows, Linux, Mac.) 2. El código PHP es invisible al navegador. 3. Capacidad de conexión con bases de datos. 4. Capacidad de expandir su potencial con plugins. 5. Posee una amplia penetración en internet.
  • 4. Market Share: Sitios en Internet http://w3techs.com/technologies/overview/programming_language/all
  • 5. Market Share en Internet Lenguajes para cliente http://w3techs.com/technologies/overview/client_side_language/all
  • 6. Evolución La última versión es 5.7, que presenta mejoras en el entorno orientado a objetos. Compite en aplicaciones empresariales con las plataformas J2EE y .NET. ➔ Mejor soporte para MySQL. ➔ Mejor soporte a XML. ➔ Soporte nativo para SQLite. ➔ Iteradores de datos. ➔ Manejo de excepciones. ➔ Mejoras con la implementación con Oracle.
  • 7. Instalación en Windows La forma más común es utilizar “combos”: Apache (servidor web), MySQL (base de datos) y PHP. Facilitan el trabajo para instalar un servidor de desarrollo. http://www.wampserver.com http://wtriple.com/wtnmp/ http://www.easyphp.org/
  • 8. Instalación en Linux En Centos/RedHat/Fedora : ● yum install httpd mysql-server php-mysql php- common En Ubuntu/Debian/Mint : ● sudo apt-get install tasksel (el combo completo) apt-get install phpmyadmin ● sudo apt-get install php (solo el compilador)
  • 9. ¿Cómo se prueba la instalación? ➔ Después que tengamos instalado nuestro servidor local tenemos que probarlo, para hacer esto ingresamos http://localhost en nuestro navegador. ➔ Si todo esta instalado debidamente entonces debemos ver un mensaje diciendo que funciona. ➔ La carpeta /var/www/html, es por defecto la carpeta principal. Todo lo que esté en esta carpeta es accesible desde el navegador web a través del servidor web.
  • 10. Activar modo debug display_errors = on 1. Ingresar a la terminal: LXTerminal 2. Ejecutar: sudo subl /etc/php5/apache2/php.ini 3. Cambiar la opción display_erros = off, y reemplazar por display_errors=on. (Control G, y escribir 469, para llegar al lugar exacto.) 3. Reiniciar el servicio: apachectl restart
  • 11. Estructura Básica <!DOCTYPE html> <head> <meta charset="UTF-8" /> <title>Ejemplo PHP</title> </head> <body> <?php print 'Hola mundo'; ?> </body> </html> ➔ Todo código va entre: <?php y ?> ➔ La líneas que empiezan con // son comentarios. ➔ La función print imprime texto en la pantalla. ➔ Al igual que Java, toda instrucción debe terminar con ;
  • 12. Variables ➔ Comienzan con el signo $. ➔ No hace falta declarar, o especificar el tipo de dato. <?php $dia = 24; //variable de tipo integer. $sueldo = 758.43; //variable de tipo double. $nombre = ‘juan’; //variable de tipo string. print "variable entera $dia"; print "<br>"; print "Variable double: $sueldo"; print "<br>"; print "Variable string: $nombre"; ?>
  • 13. Estructura condicional (if) Cuando se pretende que el programa tome un camino concreto, se utiliza: if y else. La estructura es la siguiente: if (Condición) { Instrucción 1; } else { Instrucción 2; }
  • 14. Estructura condicional (if) Ejemplo: Valor Aleatorio. <?php $valor=rand(1,10); //rand permite sortear un número print "El valor sorteado es $valor<br>"; if ($valor<5) { echo "Es menor o igual a 5"; } else { echo "Es mayor a 5"; } ?>
  • 15. Estructura while ➔ Es similar a otros lenguajes (Java, C++, etc.) ➔ Ejecuta un bloque de programa mientras se cumpla una cierta condición. ➔ Cuando deja de cumplirse, sale del ciclo y continúa ejecutándose el resto del programa. while(condición) { instrucciones; }
  • 16. Mostrar Números <?php $valor=rand(1,100); //rand permite sortear un número $inicio=1; while($inicio<=$valor) { print $inicio; print "<br>"; $inicio++; } ?>
  • 17. Titulos y tamaños <?PHP $numero=1; while ($numero<=6) { print "<h$numero> Titulo $numero </h$numero>"; $numero++; } ?>
  • 18. Tabla: 6 filas y 2 columnas <?PHP $numero=1; print "<table border=1>"; while ($numero<=6) { print "<tr><td>A</td><td>B</td></tr>"; $numero++; } print "</table>"; ?>
  • 19. Ciclo For (Desde) Se diferencia de while, en que se debe incluir, una variable, la cual se incrementa o decrementa en forma automática. for ($variable=Inicio; Condición; Incremento) { Intrucción_1; : Intrucción_N; }
  • 20. Mostrar números del 1 al 12 <?php for($numero=1;$numero<=12;$numero++) { print $numero; print "<br>"; } ?>
  • 21. Números al cuadrado <?PHP print "<table Border=1><tr> <th>Numero</th> <th>Cuadrado</th></tr>"; for ($i=1; $i<=10; $i++) { $cuadrado= $i * $i; print"<tr>"; print"<td>$i</td>"; print"<td>$cuadrado</td>"; print"</tr>"; } print "</table>"; ?>
  • 22. Formularios ➔ Permite cargar datos al servidor. ➔ Es el medio ideal para registrar datos, solicitar productos, sacar turnos etc. ➔ HTML solo tiene el objetivo de crear el formulario. Se requiere de dos páginas, una que implementa el formulario HTML y otra que procesa los datos. Para acceder al dato se cuenta con $_REQUEST, indicando el nombre de la variable.
  • 23. Variable nombre Archivo uno.html: Archivo dos.php: <form action=dos.php> Ingrese su nombre: <input type=text name=nombre><br> <input type=submit value=confirmar> </form> <?php print "El nombre ingresado es:"; print $_REQUEST['nombre']; ?>
  • 24. Tabla de Multiplicar <form action=result.php> <label>Inserte un numero</label> <input type=number name=num> <input type=submit> </form> <?php $num = $_REQUEST["num"]; $x = 1; //inicializador do { $resultado = $x * $num; print "$resultado <br>"; $x++; //incrementación } while ($x <= 10); ?>
  • 25. Mayor de edad <form action=edad.php> Ingrese el nombre: <input type=text name=nombre><br> Ingrese la edad: <input type=number name=edad> <br><input type=submit> </form> <?php print $_REQUEST['nombre']; if ($_REQUEST['edad']>=18) { print " Es mayor de edad"; } else { print " No es mayor de edad"; } ?>
  • 26. <form action=calcular.php> Ingrese valor uno: <input type=number name=valor1><br> Ingrese valor dos: <input type=number name=valor2><br> <input type=radio name=operador value=suma>sumar<br> <input type=radio name=operador value=resta>restar<br> <input type=submit value=Calcular> </form> Control Radio (parte 1)
  • 27. Control Radio (parte 2) <?php if ($_REQUEST['operador']=='suma') { $suma=$_REQUEST['valor1'] + $_REQUEST['valor2']; print "La suma es: $suma"; } if ($_REQUEST['operador']=='resta') { $resta=$_REQUEST['valor1'] - $_REQUEST['valor2']; print "La resta es: $resta"; } ?>
  • 28. <Select> (parte 1) <form action=dos.php> Ingrese su nombre: <input type=text name=nombre><br> Seleccione en que rango se ubica su salario: <select name=salario> <option value=1>1-1000</option> <option value=2>1001-3000</option> <option value=3>3000</option> </select><br> <input type=submit> </form>
  • 29. <Select> (parte 2) <?php print $_REQUEST['nombre']; if ($_REQUEST['salario']==3) { print " Debe pagar impuestos."; } else { print " No debe pagar impuestos."; } ?>
  • 30. Vectores Se utilizan directamente, sin declarar: $nombre[0]=’Juan’; $nombre[1]=’Pedro’; Si ahora hacemos: $nombre[2]=Luis; El vector tendrá 3 datos. También podemos obviar el subíndice: $nombre[]=’Juan’; $nombre[]=’Pedro’; $nombre[]=Luis; Automáticamente se numera: 0,1,2....
  • 31. Ejemplo con un Vector <?php $nombre[0]=’Juan’; $nombre[1]=’Pedro’; $nombre[2]=’Luis’; for($i=0;$i<count($nombres);$i++) { print $nombres[$i]; print "<br>"; } ?>
  • 32. Arreglo Asociativo ➔ Asigna nombres a cada posición o dato del arreglo. ➔ Es una manera más humana de acceder a los elementos. ➔ Esta vez los datos tendrán la forma de $llave => $valor. <?php $persona = array('nombre'=>'Juan', 'apellido'=>'valdez'); ?> Para acceder a un dato: print $persona['apellido'];
  • 33. Recorrer Arreglos Existen varias maneras. La mejor y más sencilla es utilizar el bucle foreach(). <?php $colores = array('rojo', 'verde', 'azul'); foreach( $colores as $color) { print 'Color actual '. $color ; } ?>
  • 34. Funciones para Arreglos ➔ sort(): Sirve para ordenar un arreglo Recibe dos parámetros: el arreglo y el tipo de algoritmo. (SORT_NUMERIC, SORT_STRING, SORT_REGULAR, estos son los mas utilizados). ➔ print_r(): Imprime todos los elementos del arreglo. ➔ in_array(): Busca un valor(primer parámetro) en un arreglo (segundo parámetro) y devuelve True si lo consigue o False si no. ➔ array_search(): Busca un valor (primer parámetro) en un arreglo (segundo parámetro) y devuelve la posición si lo consigue.
  • 35. Subir 1 Archivo. <form enctype=multipart/form- data action=subir.php> Archivo: <input name=archivo type=file> <input type=submit> </form > <?php print "Nombre:"; print $_FILES['archivo']['name']; print "<br>Tipo:"; print $_FILES['archivo']['type']; print "<br>Tamano:"; print $_FILES['archivo']['size']; print "<br>Ruta:"; print $_FILES['archivo']['tmp_name']; ?>
  • 36. Sessions ➔ Permiten que las páginas sean tratadas como un grupo, ya que podemos compartir variables en diferentes páginas. ➔ Para crear una Session se utiliza la función session_start(). ➔ Se almacenan en el disco duro del usuario. <?php session_start(); $_SESSION['nombre'] = 'Juan'; $_SESSION['apellido'] = 'Perez'; ?> <?php session_start(); if (isset($_SESSION['nombre'])) { print $_SESSION['nombre']; } else { print 'No existe la variable'; } ?>
  • 37. Cookies ➔ Permiten guardar configuración del usuario. ➔ Se almacenan en el disco duro del usuario. ➔ Pueden permanecer un gran tiempo almacenadas, incluso hasta después que dejas el sitio. ➔ Tienen un tamaño limitado de espacio, por lo cual solo sirven para datos específicos. Crear una cookie: setcookie('nombreUsuario', 'Pedro', time() + 4800); Leer una cookie: if (isset($_COOKIE['nombreUsuario'])) print 'Valor de la Cookie '. $_COOKIE ['nombreUsuario']; else print 'No hay Cookies';
  • 38. Redireccionar a otra página <?php header("Location: http://[direccion]"); ?> Para probar implementaremos un formulario que solicite el ingreso por teclado de una dirección de internet. La segunda página redireccionará al sitio web cargado en el formulario.
  • 39. Funciones de Fecha. Las funciones de PHP en general están pensadas para ser usadas rápidamente, sin muchas complicaciones. print date("d-m-Y H:i"); Resultado: 27-05-2014 19:30 print date("d-m-Y"); Resultado: 27-05-2014 print date("H:i:s"); Resultado: 19:30:15 Más funciones: http://php.net/manual/es/ref.datetime. php
  • 40. Funciones de Fecha. <?php $dias = array("domingo","lunes","martes","miercoles","jueves"," viernes", "sabado"); print "Hoy es ".$dias[date("w")]."<br>"; print "Today is " . date("Y.m.d") . "<br>"; print "Today is " . date("Y-m-d") . "<br>"; print "Today is " . date("l"); ?>
  • 41. Base de datos Uno de los empleos principales de PHP es el acceso a una base de datos. Las operaciones se hacen empleando el lenguaje SQL. PHP implementa distintas funciones según la base de datos a emplear. Existen funciones para trabajar con: ➢ MySQL ➢ Microsoft SQL Server ➢ Oracle ➢ PostgreSQL ➢ SYBASE, etc.
  • 42. ¿Qué es PhpMyAdmin? Es una herramienta escrita en PHP con la intención de manejar la administración de MySQL a través de páginas web, utilizando Internet. Puede crear y eliminar Bases de Datos, crear, eliminar y alterar tablas; borrar, editar y añadir campos, ejecutar cualquier sentencia SQL, administrar claves en campos, administrar privilegios, exportar datos en varios formatos. Se encuentra disponible bajo la licencia GPL.
  • 44. Creación de Base de Datos 1. Ingresar en la opción Bases de Datos. 2. Escribir el nombre, y presionar el botón Crear.
  • 45. Creación de Tablas 1. Ingresar en la Base de Datos creada. (Columbia) 2. Escribir el nombre, el número de columnas y presionar el botón Continuar.
  • 46. Insertar datos Ingresar en la tabla Alumnos y presionar el botón Insertar. 5320290 Juan Lopez 1994-01-04 2333555 Ana Gaona 1994-01-06 2100555 Carol Perez 1992-01-06 Insertar los siguientes Alumnos:
  • 47. Listado (selección de registros) <?php $db = new mysqli('localhost', 'root', '1', 'Columbia'); $sql = "select * from Alumnos"; $resultado = $db->query($sql); while($fila = $resultado->fetch_assoc()) { // $fila es un arreglo asociativo con los campos del select print $fila['Documento']; print "<hr>"; } ?>
  • 48. Insert Alta de registros. (parte 1) <form action=insertar.php> <label>Documento:</label> <input type=number name=Documento><br> <label>Nombre:</label> <input type=text name=Nombre><br> <label>Nacimiento:</label> <input type=date name=Nacimiento><br> <input type=submit> </form> Es necesario un formulario para cargar datos, y otro para procesar.
  • 49. Insert Alta de registros. (parte 2) <?php $db = new mysqli('localhost', 'root', '1', 'Columbia'); $sql = "insert into Alumnos values('$_REQUEST [Documento]','$_REQUEST[Nombre]', '$_REQUEST [Nacimiento]')"; if(! $db->query($sql)){ die("Ocurrio un error ejecutando: $db->error"); } print "Filas Insertadas: $db->affected_rows"; ?>
  • 50. Update Modificar Registros. <?php $db = new mysqli('localhost', 'root', '1', 'Columbia'); $sql = "update Alumnos set Nombre = 'Pedro'"; if(! $db->query($sql) ){ die("Ocurrio un error ejecutando: $db->error"); } print 'Filas Modificadas: '.$db->affected_rows; ?> En este ejemplo, vamos modificar los nombres, sin usar un formulario.
  • 51. Delete Eliminar Registros. <?php $db = new mysqli('localhost', 'root', '1', 'Columbia'); $sql = "delete from Alumnos"; if(! $db->query($sql) ){ die("Ocurrio un error ejecutando: $db->error"); } print 'Filas Eliminadas: '.$db->affected_rows; ?> En este ejemplo, vamos eliminar todos los datos.
  • 52. Include y Require. ➔ ¿Cómo haríamos para crear un sitio web que contenga 100 páginas con conexión a una base de datos? ➔ Sería tedioso repetir un código 100 veces. ➔ Para esto tenemos las funciones include y require. require "conexion.php"; $sql = "UPDATE Alumnos SET Nombre = 'Pedro'"; if(! $db->query($sql) ) die("Ocurrio un error ejecutando: $db->error"); print 'Filas Modificadas: '.$db->affected_rows; ➔ Include intenta cargar el archivo pero si no logra, continua la ejecución. ➔ En cambio Require corta el programa y muestra el error.
  • 53. Automatizar creación de ABM http://www.phpscaffold.com/ ➔ Permite crear los formularios y listados para trabajar con bases de datos. ➔ Evita el trabajo de escribir muchas líneas de código. ➔ Es necesario Exportar la tabla con PhpMyAdmin, y copiar el resultado. ➔ Finalmente se pueden personalizar los resultados.
  • 54. Clases y Objetos <?php class Carro { var $color; var $numero_puertas; var $marca; var $gasolina = 0; function llenarTanque($gasolina_nueva){ $this->gasolina = $this->gasolina + $gasolina_nueva; } function acelerar(){ if ($this->gasolina > 0){ $this->gasolina = $this->gasolina - 1; return 'Gasolina restante: '.$this->gasolina; } } } Se utilizan de manera similar a otros lenguajes. Facilitan la comprensión y el mantenimiento.
  • 55. Instanciar una clase. $carro = new Carro(); // Instanciamos la clase Carro $carro->color = 'Rojo'; // Llenamos las propiedades $carro->marca = 'Honda'; $carro->numero_puertas = 4; $carro->llenarTanque(10); // utilizamos los metodos $carro->acelerar(); $carro->acelerar(); $carro->acelerar(); ?> ➔ Asignamos el color rojo y la marca Honda. ➔ Definimos el número de puertas, y cargamos 10 litros. ➔ Finalmente aceleramos.