• No se han encontrado resultados

Seminario 1: PHP. Índice. Objetivo HTML PHP Acceso a BD. Objetivo HTML PHP Acceso a BD MAQUINA2 MAQUINA1. Objetivo HTML PHP Acceso a BD

N/A
N/A
Protected

Academic year: 2021

Share "Seminario 1: PHP. Índice. Objetivo HTML PHP Acceso a BD. Objetivo HTML PHP Acceso a BD MAQUINA2 MAQUINA1. Objetivo HTML PHP Acceso a BD"

Copied!
5
0
0

Texto completo

(1)

Bases de Datos (Segundo Curso) Enxeñeria Técnica en Informática de Sistemas Escola Técnica Superior de Enxeñería Universidade de Santiago de Compostela

Seminario 1: PHP

Curso 2006-2007

José Ramón Ríos Viqueira

Curso 2006/2007 J.R.R.V. - BD – Seminario 1: PHP 2

Š

Objetivo

Š

HyperText Markup Language (HTML)

Š

PHP: Hypertext Preprocessor (PHP)

Š

Acceso a bases de datos desde PHP

Curso 2006/2007 J.R.R.V. - BD – Seminario 1: PHP 3

Š

Programación del acceso a bases de datos desde una

aplicación web

PRODUCTO

ref

nombre

tipo precio

1142 1135 1199 1187

. . .

K7 ABIT KW7 K7 ABIT NF7-S2 K7 AOPEN KM400 AM-S K7 ASROCK K7S41

. . .

Placa Placa Placa Placa

. . .

71,37 76,42 63,10 38,85

. . .

Objetivo

HTML

PHP

Acceso a BD

Curso 2006/2007 J.R.R.V. - BD – Seminario 1: PHP 4

Objetivo

HTML

PHP

Acceso a BD

SERVIDOR

WEB

Pagina1

HTML

Pagina2

HTML

Pagina3

HTML

NAVEGADOR

Petición HTTP:

http://maquina2/Pagina1.html

Página1

HTML

Š

Navegadores

ƒ Netscape, Firefox, Internet explorer

Š

Servidores Web

ƒ Apache, Internet Information Server (IIS)

MAQUINA1

MAQUINA2

Š

Páginas Web Estáticas (HTML)

Curso 2006/2007 J.R.R.V. - BD – Seminario 1: PHP 5

Š

Hypertext Markup Language (HTML)

Š

Estándar del W3C (http://www.w3.org/MarkUp/)

Š

Referencia HTML 4.0 (

http://www.htmlhelp.com/reference/html40/

)

Š

Estructura y conceptos básicos

<HTML> <HEAD> <TITLE> Mi primera página </TITLE> </HEAD> <BODY>

<p align = center>Este es el texto de un párrafo </p> El espacio entre palabras se ignora Incluso los saltos de l&iacute;nea Para saltar de l&iacute;nea<br> se inserta un &ltbr&gt<br><br>

Para insertar espacio se usa el &nbsp; &nbsp; &ampnbsp; <!-- Esto es un comentario --> </BODY> </HTML>

Š

TAGS

ƒ

HTML, HEAD, BODY

Š

Atributos

Š

Caracteres especiales

Š

Comentarios

Objetivo

HTML

PHP

Acceso a BD

Curso 2006/2007 J.R.R.V. - BD – Seminario 1: PHP 6

Objetivo

HTML

PHP

Acceso a BD

Š

Listas, Imágenes y Enlaces

<!-- LISTAS --> <UL>

<LI>Primer elemento</LI> <LI>Segundo elemento</LI> <LI>Tercer elemento</LI> </UL>

<OL>

<LI>Primer elemento</LI> <LI>Segundo elemento</LI> <LI>Tercer elemento</LI> </OL>

<!--Imágenes--> <IMG SRC='date.jpg'

ALT='An Introduction to Database Systems'>

<!-- Enlaces --> Comprelo en

<A HREF='http://www.amazon.com'>Amazon</A> <br>

(2)

Curso 2006/2007 J.R.R.V. - BD – Seminario 1: PHP 7

Objetivo

HTML

PHP

Acceso a BD

Š

Tablas

<TABLE border = 2> <TR> <TD border = 2>

Primera columna de la primera fila

</TD> <TD border = 2>

Segunda columna de la primera fila

</TD> <TD border = 2>

Tercera columna de la primera fila

</TD> </TR>

<TR>

<TD colspan = 2 border = 2>

Una columna que se expande por dos

</TD> <TD border = 2>

Segunda columna de la segunda fila

</TD> </TR> </TABLE> Curso 2006/2007 J.R.R.V. - BD – Seminario 1: PHP 8

Objetivo

HTML

PHP

Acceso a BD

Š

Formularios

<FORM ACTION='pagina.php' METHOD='POST'>

Texto:

<INPUT TYPE = text NAME = 'nombre1' size = 15 Value='Valor1'><br> <b>Opciones</b><br>

Opción 1:

<INPUT TYPE = radio NAME = 'nombre2' value='opcion1' CHECKED><br>

Opción 2:

<INPUT TYPE = radio NAME = 'nombre2' value='opcion2'><br>

Marcador:

<INPUT TYPE = checkbox NAME = 'nombre3' Value = 'SI' CHECKED><br>

Selector:

<SELECT NAME = 'nombre4'>

<OPTION value = 'opcion1'> opcion 1</OPTION> <OPTION SELECTED value = 'opcion2'>opcion 2</OPTION> <OPTION value = 'opcion3'> opcion 3</OPTION> </SELECT><br>

<INPUT TYPE = hidden NAME = 'nombre5' Value='Valor2'> <INPUT TYPE = submit Value='Enviar'>

</FORM>

Curso 2006/2007 J.R.R.V. - BD – Seminario 1: PHP 9

Š

Hojas de estilos CSS (

http://www.htmlhelp.com/reference/css/

)

<HTML>

<HEAD>

<TITLE>Mi primera página</TITLE> <LINK rel="stylesheet"

type="text/css" href="estilos.css"> </HEAD>

<BODY>

<TABLE class='relacion' cellspacing = 0> <TR>

<TD class='tittab'>ATTR1</TD> <TD class='tittab'>ATTR2</TD> <TD class='tittab'>ATTR3</TD> <TD class='tittab'>ATTR4</TD> </TR> <TR> <TD class='tuplac'>V11</TD> <TD class='tuplai'> Este es el valor12 </TD> <TD class='tuplac'>Valor13</TD> <TD class='tuplai'> Este es el valor14 </TD> </TR> <TR> <TD class='tuplac'>V21 </TD> <TD class='tuplai'>Valor 22</TD> <TD class='tuplac'>Valor23</TD> <TD class='tuplai'>Valor24</TD> </TR> </TABLE> </BODY> </HTML> .relacion {border:

thin solid black;}

.tittab

{background-color:blue;

border:thin solid black;

padding:3pt;

color: white;

font-family:

Times New Roman;

font-size: 16pt;

font-weight:bold;

text-align: center}

.tuplac

{background-color:white;

border:thin solid black;

padding:3;

color: black;

font-family:

Times New Roman;

font-size:12pt;

text-align: center}

.tuplai

{background-color: white;

border: thin solid black;

padding: 3pt;

color: black; font-family:

Times New Roman;

font-size: 12pt;

text-align: left}

Objetivo

HTML

PHP

Acceso a BD

Curso 2006/2007 J.R.R.V. - BD – Seminario 1: PHP 10

Objetivo

HTML

PHP

Acceso a BD

Š

Páginas Web Dinámicas (DHTML)

ƒ Lenguajes Script de cliente: JavaScript, VBScript

ƒ Se ejecutan en el navegador:

Responder a eventos de usuario

Modificar el HTML dinámicamente en el cliente

SERVIDOR

WEB

Página1

HTML

+

Script

Página2

HTML

+

Script

Página3

HTML

+

Script

NAVEGADOR

Petición HTTP:

http://maquina2/Pagina1.html

Página1

DHTML

MAQUINA1

MAQUINA2

Curso 2006/2007 J.R.R.V. - BD – Seminario 1: PHP 11

Objetivo

HTML

PHP

Acceso a BD

Š

Generación dinámica de páginas

ƒ Lenguajes Script de servidor: php, jsp, asp

ƒ Se ejecutan en el servidor: Generan HTML y DHTML

SERVIDOR

WEB

Página1

DHTML

+

PHP

Página2

DHTML

+

PHP

Página3

DHTML

+

PHP

MAQUINA 2

NAVEGADOR

MAQUINA 1

Petición HTTP

Página1

DHTML

MAQUINA 3

SERVIDOR

APLICACIONES

DHTML

+

PHP

DHTML

Š

Las peticiones pueden incluir parámetros

ƒ Peticiones GET: Parámetros en la propia dirección

Http://maquina2/pagina1.php?nombre1=valor1&nombre2=valor2

ƒ Peticiones POST: Parámetros ocultos en la cabecera de la petición

Peticiones hechas desde botones de formularios

Curso 2006/2007 J.R.R.V. - BD – Seminario 1: PHP 12

Objetivo

HTML

PHP

Acceso a BD

Š

PHP: HyperText Preprocessor (PHP)

ƒ WEB:

http://www.php.net/

ƒ Referencia:

http://www.php.net/download-docs.php

Š

Sintaxis básica

ƒ

Similar al lenguaje C

ƒ

Código PHP insertado entre

<? … ?>

ƒ

Líneas

de código finalizadas con punto y coma “;”

ƒ

Comentarios:

// toda la línea, /*texto comentado*/

ƒ

Variables

precedidas de símbolo $. Mayúsculas importan.

ƒ

Constantes

: define(“NombreConstante”, valor)

(3)

Curso 2006/2007 J.R.R.V. - BD – Seminario 1: PHP 13

Š

Sintaxis básica: Ejemplo

<HTML> <HEAD>

<TITLE>

<?echo"Mi primera página";?> </TITLE>

</HEAD> <BODY>

<?

//Esto es un comentario /*esto tambien es un comentario*/

$a= "Hola";

$b= " Mundo!";

echo"<p align = 'center'>".$a.$b."</p>"; define("CONSTANTE", 25);

$c= 'd'; $d= CONSTANTE + $c;

echo"Este es el valor: $d<br>"; echo'Este es el valor: '.$d."<br>"; ?>

</BODY> </HTML>

Curso 2006/2007 J.R.R.V. - BD – Seminario 1: PHP 14

Š

Arrays

ƒ

Numéricos, Asociativos, Recorrido:

Key, Value

ƒ

Parámetros:

GET, POST

<?//Numéricos

$Productos= array("ruedas", "aceite"); echo$Productos[0]."<br>"; echo$Productos[1]."<br>"; $Numeros= range(4, 25); echo$Numeros[6]; //Asociativos

$Precios = array("ruedas"=>300, "aceite"=>600); echo$Precios["ruedas"]."<br>"; //HTTP_GET_VARS, HTTP_POST_VARS echo$HTTP_GET_VARS["n1"]."<br>"; //bucles while

reset($HTTP_GET_VARS);

while($Parametro= each($HTTP_GET_VARS)) {

echo$Parametro["key"]."-".$Parametro["value"]."<br>"; }?> Curso 2006/2007 J.R.R.V. - BD – Seminario 1: PHP 15

Objetivo

HTML

PHP

Acceso a BD

if(condicion) sentencia; elsesentencia; if(condicion) {bloque;} else{bloque;} switch(expresion) { caseexpresion: {bloque; break;} caseexpresion: {bloque; break;} default: {bloque;} } while(condicion) {bloque;} do bloque; while(condicion);

for($i=0; $i<3; $i++) {bloque;}

Š

Estructuras de control

Curso 2006/2007 J.R.R.V. - BD – Seminario 1: PHP 16

Š

Definición de funciones y reutilización de código

functioncalculo($a, &$b, $c=4) { global$e; $b+= $e $f= intval(($a+ $b)/$c); return($f); } $a= 3; $b= 2; $e= 5; $a= calculo($a, $b); echo$a."-".$b

Resultado: 2-7

require("a1.php"); If($a==3) require("a2.php"); else include("a3.php");

ƒ Funciones

ƒ Reutilización de código

Inclusión de archivos

require

(

"archivo.php"

);

9

En compilación

include

(

"archivo.php"

);

9

En ejecución

a1 y a2 se incluyen siempre

a3 se incluye sólo cuando $a es

igual a 3.

Objetivo

HTML

PHP

Acceso a BD

Curso 2006/2007 J.R.R.V. - BD – Seminario 1: PHP 17

Š

Operadores y funciones

ƒ Operadores

ƒ Funciones

Aritméticos +, -, *, /, % Asignación $b = 3 + ($a=4); Concatenación "Hola "."mundo!" Combinaciones +=, -=, *=, /=, %=, .=

Pre y Post Incrementos

$a++, ++$a, --$a,

$a--Comparaciones ==, ===, <>, !=, <, >, <=, >= Lógicos !, &&, ||, and, or De bits &, |, -, ^, >>, << Operador ? (condicion?expresion1:expresion2) De variables

gettype($a); settype($a, 'double'); is_array($a); is_double($a), etc. isset($a); unset($a); empty($a); is_null($a) strval($a); intval($a); doubleval($a);

Manipulación de arrays

$elem = each($a);

list($clave, $valor) = each($a); current; reset; end; next; pos; prev; sort($a);

Strings

trim($s); ltrim; chop; nl2br($s);

print(); printf(); sprintf(); addslashes($s); stripslashes($s); htmlspecialchars($s);

$a = explode("separador", $s); $s = implode("separador", $a); strtok(); substr(); strcmp(); strlen; etc.

Objetivo

HTML

PHP

Acceso a BD

Curso 2006/2007 J.R.R.V. - BD – Seminario 1: PHP 18

Objetivo

HTML

PHP

Acceso a BD

APLICACION

SGBD

DATOS

Librerías de acceso

procedimiento miProcedimiento (

. . .

)

{

. . .

conexion = bd_conecta

(UnServidor, UnaBD, UnUsuario, unPass);

resultado = bd_consulta

(conexion, “SELECT * FROM UnaTabla”);

Para cada tupla en resultado

{

valor = tupla[atributo];

print(valor);

}

bd_desconecta(conexion);

. . .

}

Cliente

Servidor

Š

SQL Dinámico en lenguajes convencionales (No Web)

Las sentencias SQL

se construyen

dinámicamente en

tiempo de ejecución

(4)

Curso 2006/2007 J.R.R.V. - BD – Seminario 1: PHP 19

APLICACION

Librería

MySQL

Librería

PostgreSQL

Librería

Oracle

Librería

Informix

Librería

SQL Server

Librería

ODBC

MySQL

PostgreSQL

Oracle

ODBC

Informix

SQL Server

OTROS

Š

Librerías de acceso para cada gestor

Objetivo

HTML

PHP

Acceso a BD

Curso 2006/2007 J.R.R.V. - BD – Seminario 1: PHP 20

Š

El caso del lenguaje JAVA

APLICACION

Driver

MySQL

PostgreSQL

Driver

Oracle

Driver

Informix

Driver

SQL Server

Driver

Driver

ODBC

MySQL

PostgreSQL

Oracle

ODBC

Informix

SQL Server

OTROS

JDBC

Objetivo

HTML

PHP

Acceso a BD

Curso 2006/2007 J.R.R.V. - BD – Seminario 1: PHP 21

Š

Entorno Microsoft (Visual Basic, Visual C++)

APLICACION

Driver

Access

SQL Server

Driver

Oracle

Driver

Informix

Driver

PostgreSQL

Driver

Driver

ODBC

Access

Oracle

PostgreSQL

ODBC

Informix

SQL Server

OTROS

OLEDB

ADO

Objetivo

HTML

PHP

Acceso a BD

Curso 2006/2007 J.R.R.V. - BD – Seminario 1: PHP 22

Š

Aplicaciones Web. Caso de PHP

SERVIDOR

WEB

Página1

DHTML

+

PHP

Página2

DHTML

+

PHP

Página3

DHTML

+

PHP

MAQUINA 2

NAVEGADOR

MAQUINA 1

Petición HTTP

Página1

DHTML

MAQUINA 3

SERVIDOR

APLICACIONES

DHTML

SGBD DATOS Librería de acceso

MAQUINA 4

DHTML

+

PHP

Objetivo

HTML

PHP

Acceso a BD

Curso 2006/2007 J.R.R.V. - BD – Seminario 1: PHP 23

Š

Configuración para las prácticas (2 máquinas)

APACHE

Página1

HTML

+

PHP

Página2

HTML

+

PHP

Página3

HTML

+

PHP

ETSEBD

NAVEGADOR

PC GSTIC

Petición HTTP

Página1

HTML

SERVIDOR

PHP

HTML

MySQL DATOS Librería

MySQL PostgreSQLLibrería

PostgreSQL DATOS

DHTML

+

PHP

Objetivo

HTML

PHP

Acceso a BD

Curso 2006/2007 J.R.R.V. - BD – Seminario 1: PHP 24

Š

Funciones de acceso para MySQL

ƒ Conexión

$conexion

=

mysqli_connect

(maquina, usuario, contraseña);

mysqli_select_db

(

$conexion,

baseDatos);

ƒ Consulta

$resultado

=

mysqli_query

(

$conexion,

"consultaSQL");

ƒ Procesamiento del resultado

$nfilas

=

mysqli_num_rows

(

$resultado

);

mysqli_data_seek

(

$resultado,

posicion);

for

(

$i

=0; $i<

$nfilas

;

$i

++)

{

$fila

=

mysqli_fetch_array

(

$resultado

);

//devuelve un array asociativo

echo htmlspecialchars

(

stripslashes

(

$fila

["atributo"]));

}

$fila

=

mysqli_fetch_row

(

$resultado

);

//devuelve un array enumerado

$valor

=

mysqli_result

(

$resultado, $i,

"atributo");

//devuelve un valor

(5)

Curso 2006/2007 J.R.R.V. - BD – Seminario 1: PHP 25

Š

Funciones de acceso para PostgreSQL

ƒ Conexion

Cadena de conexión:

"host=maquina port=puerto dbname=baseDatos user=usuario password=

contraseña"

$conexion

=

pg_connect

("cadenaConexion");

ƒ Consulta

$resultado

=

pg_query

([

$conexion

], "consultaSQL");

ƒ Procesamiento del resultado

$nfilas

=

pg_num_rows

(

$resultado

);

pg_result_seek

(

$resultado,

posicion);

for

(

$i

=0; $i<

$nfilas

;

$i

++)

{

$fila

=

pg_fetch_array

(

$resultado, [$i]

);

//devuelve un array asociativo

echo htmlspecialchars

(

stripslashes

(

$fila

["atributo"]));

}

$fila

=

pg_fetch_row

(

$resultado, [$i]

);

//devuelve un array enumerado

Referencias

Documento similar

“La ciencia es la estética de la inteligencia...” Página 20 Por las características anteriormente planteadas puede apreciarse que Java es un lenguaje más robusto que

Como lenguaje de programación para el lado del servidor se escogió PHP, al garantizar con sus características, obtener un producto que se pueda montar en un

Unos de los objetivos principales en este trabajo es realizar el diseño de la arquitectura del sistema ERP cubano completamente en software libre, ya que esto facilita más

Como parte de la misma se desarrolló una arquitectura como línea de referencia del desarrollo de software, se trabajó con un framework, que responde a los requerimientos

Tomando como base las herramientas de software libre se creará un sistema programado en PHP en este caso con el CMS Drupal, utilizando HTML y Javascript como lenguajes del lado

• en el servidor i client mòbil les entitats (elements de la web col·laborativa) s’abstreuen en classes. • PHP no és una plataforma orientada a objectes, però té suport

Por lo que se escoge PHP 5 como lenguaje de programación unido al framework Symfony, como entorno compilado para realizar aplicaciones Web y como gestor de bases de

[r]