View
126
Download
0
Category
Preview:
Citation preview
Bases de Datos Cliente Servidor
Arquitectura Cliente Servidor
Esta arquitectura consiste básicamente en un cliente que realiza peticiones a otro programa (el servidor) que le da respuesta. Aunque esta idea se puede aplicar a programas que se ejecutan sobre una sola computadora es más ventajosa en un sistema operativo multiusuario distribuido a través de una red de computadoras.
En esta arquitectura la capacidad de proceso está repartida entre los clientes y los servidores, aunque son más importantes las ventajas de tipo organizativo debidas a la centralización de la gestión de la información y la separación de responsabilidades, lo que facilita y clarifica el diseño del sistema.
La separación entre cliente y servidor es una separación de tipo lógico, donde el servidor no se ejecuta necesariamente sobre una sola máquina ni es necesariamente un sólo programa. Los tipos específicos de servidores incluyen los servidores web, los servidores de archivo, los servidores del correo, etc. Mientras que sus propósitos varían de unos servicios a otros, la arquitectura básica seguirá siendo la misma.
Una disposición muy común son los sistemas multicapa en los que el servidor se descompone en diferentes programas que pueden ser ejecutados por diferentes computadoras aumentando así el grado de distribución del sistema.
La arquitectura cliente-servidor sustituye a la arquitectura monolítica en la que no hay distribución, tanto a nivel físico como a nivel lógico.
Arquitecturas Cliente Servidor
PHP: Hypertext Pre-Procesor(1998)
Herramienta para el desarrollo de aplicaciones
Web
Propósitos de PHP Lenguaje de scripts de propósito
general Lenguaje interpretado de alto nivel
embebido en páginas HTML y ejecutado en el servidor
Diseñar páginas dinámicas de servidor Generar páginas bajo petición del cliente
Otros lenguajes para Internet ASP, Cold Fusion, Perl
Características de PHP
Lenguaje de programación de estilo clásico: variables, sentencias condicionales, ciclos, funciones.
No es un lenguaje de marcas como HTML, ó XML. Está mas cercano a JavaScript o a C.
Java o JavaScript que se ejecutan en el navegador, PHP se ejecuta en el servidor, permite acceder a los recursos que tenga el servidor: BD
Ejecución de PHP
El programa PHP es ejecutado en el servidor y el resultado enviado al navegador. El resultado es normalmente una página HTML.
Características de PHP
Software libre Multiplataforma (Unix, Windows, Mac:
Open Source)
Aplicaciones sencillas Aplicaciones avanzadas (BD,
gráficos)
Capacidades de PHP Soporte para múltiples sistemas
operativos Soporte para múltiples servidores
(Apache, Netscape) Soporte para múltiples BD
(Ingres, Oracle, MySQL, DB2, Sybase) Generación de resultados en múltiples
formatos (XML, imágenes, .PDF)
ASP vs. PHP ASP (Active Server Pages) Derivado de Visual Basic Básicamente para Windows (Microsoft) Comunicación y corrección de errores más
lenta Gestión de M más lenta (en PHP los objetos
se ejecutan en el mismo espacio de M) Compilación más lenta (VBScript o Jscript)
Instalación
Configuración más habitual: LAMP
Apache : Servidor de Web
MySQL: Gestor de BD
Nuestro primer PHP
<!-- Manual de PHP de WebEstilo.com --> <html> <head> <title>Ejemplo de PHP</title> </head>
<body>
Parte de HTML normal. <BR><BR>
<?php echo "Parte de PHP<br>"; for($i=0;$i<10;$i++) { echo "Linea ".$i."<br>"; } ?>
</body> </html>
sentencias PHP en las páginas HTMLAzul: HTML Rojo: PHP
Parte de HTML normal.
Parte de PHPLinea 0Linea 1Linea 2Linea 3Linea 4Linea 5Linea 6Linea 7Linea 8Linea 9
Variables Comienzan con el símbolo del dólar $ y no se defiinen No tienen tipos (misma variable: número y caract.)
<!-- Manual de PHP de WebEstilo.com --> <html> <head> <title>Ejemplo de PHP</title> </head>
<body> <?php $a = 1; $b = 3.34; $c = "Hola Mundo"; echo $a,"<br>",$b,"<br>",$c; ?> </body> </html>
13.34Hola Mundo
Operadores Aritméticos
Parecidos a los de C y Java
Aplicables
a variables y const. numéricas.
Operador
Nombre Ejemplo
+ Suma 5+6
- Resta 7-9
* Multiplicacación
6*3
/ División 4/8
% Módulo 7%2
++ Suma 1 $a++
-- Resta 1 $a--
Operadores Aritméticos <!-- Manual de PHP de
WebEstilo.com --> <html> <head> <title>Ejemplo de PHP</title> </head> <body> <?php $a = 8; $b = 3; echo $a + $b,"<br>"; echo $a - $b,"<br>"; echo $a * $b,"<br>"; echo $a / $b,"<br>"; $a++; echo $a,"<br>"; $b--; echo $b,"<br>"; ?> </body> </html>
115242.666666666666792
Operadores de Comparación
Comparar y tomar decisiones.
Operador Nombre Ejemplo
= Igual $a == $b
!= Distinto $a != $b
< Menor que $a < $b
> Mayor que $a > $b
<= Menor o igual $a <= $b
>= Mayor o igual $a >= $b
Operadores de Comparación
<!-- Manual de PHP de WebEstilo.com --> <html> <head> <title>Ejemplo de PHP</title> </head> <body> <?php $a = 8; $b = 3; $c = 3; echo $a == $b,"<br>"; echo $a != $b,"<br>"; echo $a < $b,"<br>"; echo $a > $b,"<br>"; echo $a >= $c,"<br>"; echo $b <= $c,"<br>"; ?> </body> </html>
1
111
Devuelve cierto cuando se cumple la condición
Operadores Lógicos
Operador Nombre Ejemplo
&& Y (7>2) && (2<4)
and Y (7>2) and (2<4)
|| O (7>2) || (2<4)
or O (7>2) or (2<4)
! NO !(7>2)
Operadores Lógicos
<!-- Manual de PHP de WebEstilo.com --> <html> <head> <title>Ejemplo de PHP</title> </head> <body> <?php $a = 8; $b = 3; $c = 3; echo ($a == $b) && ($c > $b),"<br>"; echo ($a == $b) || ($b == $c),"<br>"; echo !($b <= $c),"<br>"; ?> </body> </html>
1
Sentencias Condicionales
<!-- Manual de PHP de WebEstilo.com --> <html> <head> <title>Ejemplo de PHP</title> </head> <body> <?php $a = 8; $b = 3; if ($a < $b) { echo "a es menor que b"; } else { echo "a no es menor que b"; } ?> </body> </html>
a no es menor que b
Sentencia switch ... case<!-- Manual de PHP de WebEstilo.com -->
<html> <head> <title>Ejemplo de PHP</title> </head> <body> <?php $posicion = "arriba"; switch($posicion) { case "arriba": // Bloque 1 echo "La variable contiene"; echo " el valor arriba"; break; case "abajo": // Bloque 2 echo "La variable contiene"; echo " el valor abajo"; break; default: // Bloque 3 echo "La variable contiene otro valor"; echo " distinto de arriba y abajo"; } ?> </body> </html>
La variablecontiene el valorarriba
Sentencia While <!-- Manual de PHP de
WebEstilo.com --> <html> <head> <title>Ejemplo de PHP</title> </head> <body> Inicio<BR> <?php $i=0; while ($i<10) { echo "El valor de i es ", $i,"<br>"; $i++; } ?> Final<BR> </body> </html>
InicioEl valor de i es 0El valor de i es 1El valor de i es 2El valor de i es 3El valor de i es 4El valor de i es 5El valor de i es 6El valor de i es 7El valor de i es 8El valor de i es 9Final
Sentencia For <!-- Manual de PHP de WebEstilo.com
--> <html> <head> <title>Ejemplo de PHP</title> </head> <body> Inicio<BR> <?php for($i=0 ; $i<10 ; $i++) { echo "El valor de i es ", $i,"<br>"; } ?> Final<BR> </body> </html>
InicioEl valor de i es 0El valor de i es 1El valor de i es 2El valor de i es 3El valor de i es 4El valor de i es 5El valor de i es 6El valor de i es 7El valor de i es 8El valor de i es 9Final
Salida Sentencia printf <!-- Manual de PHP de
WebEstilo.com --> <html> <head> <title>Ejemplo de PHP</title> </head> <body> <?php printf("El numero dos con diferentes formatos: %d %f %.2f",2,2,2); ?> </body> </html>
%s cadenas
%d enteros
%f reales
%c caracteres
El numero dos con diferentes formatos: 2 2.000000 2.00
Printf <!-- Manual de PHP de WebEstilo.com -->
<html> <head> <title>Ejemplo de PHP</title> </head> <body> <?php $var="texto"; $num=3; printf("Puede fácimente intercalar <b>%s</b> con números <b>%d</b> <br>",$var,$num); printf("<TABLE BORDER=1 CELLPADDING=20>"); for ($i=0;$i<10;$i++) { printf("<tr><td>%10.d</td></tr>",$i); } printf("</table>"); ?> </body> </html>
Puede fácimente intercalar texto con números 3 0
1
2
3
4
5
6
7
8 9
Manejo de cadenas Strlen (cadena). Nos devuelve el número de
carácteres de una cadena. split(separador,cadena). Divide una cadena
en varias usando un carácter separador. sprintf(cadena de formato, var1, var2...).
Formatea una cadena de texto al igual que printf pero el resultado es devuelto como una cadena.
substr(cadena, inicio, longitud). Devuelve una subcadena de otra, empezando por inicio y de longitud longitud.
chop(cadena). Elimina los saltos de línea y los espacios finales de una cadena.
strpos(cadena1, cadena2). Busca la cadena2 dentro de cadena1 indicándonos la posición en la que se encuentra.
str_replace(cadena1, cadena2, texto). Reemplaza la cadena1 por la cadena2 en el texto.
<?php echo strlen("12345"),"<br>"; $palabras=split(" ","Esto es una prueba"); for($i=0;$palabras[$i];$i++) echo $palabras[$i],"<br>"; $resultado=sprintf("8x5 = %d <br>",8*5); echo $resultado,"<br>"; echo substr("Devuelve una subcadena de otra",9,3),"<br><br>";
if (chop("Cadena \n\n ") == "Cadena") echo "Iguales<br><br>";
echo strpos("Busca la palabra dentro de la frase", "palabra"),"<br><br>"; echo str_replace("verde","rojo","Un pez de color verde, como verde es la hierba."),"<br>"; ?>
5Estoesunaprueba8x5 = 40
una
Iguales
9
Un pez de color rojo, como rojo es la hierba.
Funciones <!-- Manual de PHP -->
<html> <head> <title>Ejemplo de PHP</title> </head> <body> <?php function media_aritmetica($a, $b) { $media=($a+$b)/2; return $media; } echo media_aritmetica(4,6),"<br>"; echo media_aritmetica(3242,524543),"<br>"; ?> </body> </html>
<?php function Nombre(param1, param2...) { instrucción1; instrucción2; instrucción3; instrucción4;
return valor_de_retorno; } ?>
5263892.5
LibreríaPermiten agrupar varias funciones y variables en un mismo archivo Luego podemos incluir esta librería en distintas páginas y disponer de esas funciones fácilmente.
<!-- Manual de PHP de WebEstilo.com --> <?php function CabeceraPagina() { ?> <FONT SIZE="+1">Esta cabecera estará
en todas sus páginas.</FONT><BR> <hr> <? } function PiePagina() { ?> <hr> <FONT SIZE="-1">Este es el pie de página.</FONT><BR> Autor: Joaquin Gracia <? } ?>
Ahora vamos a crear 2 páginasque usan la librería
Página con la misma cabecera y pie de página definida en la librería "libreria01.phtml"
<!-- Manual de PHP --> <html> <head> <title>Ejemplo de PHP</title> </head> <body> <?php include("libreria01.phtml") ?> <?php CabeceraPagina(); ?>
Página 1 <BR><BR><BR><BR><BR>
Contenido blalbl blalb alb<BR><BR> más cosas...<BR><BR>
fin<BR><BR>
<?php PiePagina(); ?> </body> </html>
Esta cabecera estará en todas sus páginas.Página 1
Contenido blalbl blalb alb
más cosas...
fin
Este es el pie de página.Autor: Joaquin Gracia
Página con la misma cabecera y pie de página definida en la librería "libreria01.phtml"
<!-- Manual de PHP--> <html> <head> <title>Ejemplo de PHP</title>
</head> <body> <?php include("libreria01.phtml") ?> <?php CabeceraPagina(); ?>
Esta es otra página<BR> <BR> completamente
distinta<BR><BR> pero comparte el pie y la cabecera con la otra.<BR><BR>
<?php PiePagina(); ?> </body> </html>
Esta cabecera estará en todas sus páginas.Esta es otra página
completamente distinta
pero comparte el pie y la cabecera con la otra.
Este es el pie de página.Autor: Joaquin Gracia
Formateo de página Definir librerías para conseguir que todas nuestras páginas tengan el mismo formato de página, incluyendo las partes comunes en librerías. Modificando la librería modificamos todas las páginas muy rápido.
<!-- Manual de PHP de WebEstilo.com -->
<?php function CabeceraPagina() { ?> <FONT SIZE="+1">Esta cabecera estará en todas sus páginas.</FONT><BR> <hr> <? } function PiePagina() { ?> <hr> <FONT SIZE="-1">Este es el pie de página.</FONT><BR> Autor: Joaquin Gracia <? } function Indice() { ?> <A HREF="ejem06a.phtml">Pagina 1</A><BR> <A HREF="ejem06a2.phtml">Pagina 2</A><BR> <? } ?>
libpagina.phtml
ejem06a.phtm
<!-- Manual de PHP --> <html> <head> <title>Ejemplo de PHP</title> </head> <body> <?php include("libpagina.phtml") ?> <?php CabeceraPagina(); ?> <TABLE> <TR> <TD><?php Indice() ?></TD> <TD> Esta es otra página<BR><BR> completamente distinta<BR><BR> pero comparte el pie y la cabecera
con la otra.<BR><BR> </TD> </TR> </TABLE> <?php PiePagina(); ?> </body> </html>
Esta cabecera estará en todas sus páginas.Esta es otra página
Pagina 1 completamente distintaPagina 2
pero comparte el pie y la cabecera con la otra.
Este es el pie de página.Autor: Joaquin Gracia
ejem06a2.phtml
<!-- Manual de PHP --> <html> <head> <title>Ejemplo de PHP</title> </head> <body> <?php include("libpagina.phtml") ?>
<?php CabeceraPagina(); ?> <TABLE> <TR> <TD><?php Indice() ?></TD> <TD> Página 1 <BR><BR><BR><BR><BR> Contenido blalbl blalb alb<BR><BR> más cosas...<BR><BR> fin<BR><BR> </TD> </TR> </TABLE> <?php PiePagina(); ?> </body> </html>
Esta cabecera estará en todas sus páginas.
Página 1
Pagina 1Contenido blalbl blalb alb
Pagina 2 más cosas...
fin
Este es el pie de página.Autor: Joaquin Gracia
Envío y recepción de datosAl diseñar un formulario debemos indicar la página PHP que procesará el formulario, así como el método por el que se le pasará la información a la página.
<!-- Manual de PHP > <html> <head> <title>Ejemplo de PHP</title> </head> <body> <H1>Ejemplo de procesado de formularios</H1> Introduzca su nombre: <FORM ACTION="procesa.phtml" METHOD="GET"> <INPUT TYPE="text" NAME="nombre"><BR> <INPUT TYPE="submit" VALUE="Enviar"> </FORM> </body> </html>
Ejemplo de procesado de formulariosIntroduzca su nombre:
Enviar
Ejemplo de procesado de formulariosEl nombre que ha introducido es: Maria
Maria
Como construir Como construir FormulariosFormularios
1. <FORM> y como se comunica con el servidor. 2. componentes del formulario y los que activan
los procesos de los datos </FORM>. Ejemplo: Formulario: <FORM METHOD="POST“ACTION="http://www.servidor.es/cgi-bin/cgi"> <INPUT NAME="campo1"> <INPUT TYPE="submit“
VALUE="Procesar"></FORM> Se vé:
Procesar
Atributo ACTION Que ejecutará el formulario en un servidor http o en local. En el ejemplo ACTION="http://www.servidor.es/cgi-bin/cgi"> se le está indicando que ejecute un programa llamado
"cgi" que está en el directorio" /cgi-bin" del servidor http "www.servidor.es".
Además de enviar datos a un servidor, ACTION también puede realizar una acción en local, como traer una página. (Ejemplo: Escribiendo <FORM METHOD="POST" ACTION="Algo.html"> ... </FORM>)
Podemos enviar un e-mail a un usuario o a una lista de ellos.
(Ejemplo: <FORM METHOD="POST" ACTION="mailto:usuario@servidor.es"> )
Atributo METHOD Atributo METHOD
Se refiere al método que emplearemos para enviar los datos al servidor: POST y GET.
Decisión basada en la máxima longitud de registro que puede enviarse; cada uno usa un canal de salida distinto. el método GET envía los datos usando la URL, el método POST los envía por la entrada
estándar STDIO. (soporta más longitud y es el más frecuente.
GET<!-- Manual de PHP -->
<html> <head> <title>Ejemplo</title> </head> <body> <H1>Ejemplo de procesado de formularios</H1>
<FORM ACTION="procesa2.phtml" METHOD="GET"> Introduzca su nombre:<INPUT TYPE="text" NAME="nombre"><BR> Introduzca sus apellidos:<INPUT TYPE="text" NAME="apellidos"><BR> <INPUT TYPE="submit" VALUE="Enviar"> </FORM> </body> </html>
Ejemplo de procesado de formulariosIntroduzca su nombre:Introduzca sus apellidos:
Ejemplo de procesado de formulariosEl nombre que ha introducido por GET es: Maria SomodevillaEl nombre que ha introducido por POST es:
MariaSomodevilla
Enviar
POST <!-- Manual -->
<html> <head> <title>Ejemplo</title> </head> <body> <H1>Ejemplo de procesado de formularios</H1> <FORM ACTION="procesa2.phtml" METHOD="POST"> Introduzca su nombre:<INPUT TYPE="text" NAME="nombre"><BR> Introduzca sus apellidos:<INPUT TYPE="text" NAME="apellidos"><BR> <INPUT TYPE="submit" VALUE="Enviar"> </FORM> </body> </html>
Ejemplo de procesado de formulariosIntroduzca su nombre:Introduzca sus apellidos:
Ejemplo de procesado de formulariosEl nombre que ha introducido por GET es: El nombre que ha introducido por POST es: Maria Somodevilla
MariaSomodevilla
Enviar
Atributo INPUT. El elemento INPUT sin ningún atributo define
por defecto una ventana de escritura de 20 caracteres de longitud por una línea de ancho. Se utiliza para:
Campos de entrada por teclado. Botones de selección. Casillas de marca. Botones de proceso. Botones de inicialización (reset). Imágenes sensibles al ratón.
INPUT admite varios atributos
SIZE define la longitud de la ventana de texto.
MAXLENGTH define la máxima longitud de la cadena que se puede escribir dentro de la ventana.
NAME define el nombre de la ventana (que en realidad es un campo dentro del registro que conforma el formulario).
VALUE define un valor predeterminado (vacía por defecto).
Atributo TYPE de INPUT TYPE define como se muestra el texto. TYPE=TEXT TYPE=PASSWORD, que presenta el texto como una clave. TYPE=HIDDEN no se mostará en el navegador (aunque se pueda
ver en las fuentes). TYPE=SUBMIT generar un botón que al ser pulsado cierra la
captura de datos del formulario y procede a ejecutar lo definido en el atributo ACTION.
TYPE=RESET, para delar los valores como estaban al incio TYPE=RADIO genera botones circulares que permiten seleccionar un valor predeterminado o activar una opción Estableciendo un valor VALUE="B" y usando CHECKED queda predeterminado.
TYPE=CHECKBOX genera casillas de marca que permiten seleccionar un valor predeterminado o activar una opción. Aquí pueden seleccionarse más de una a la vez. También puede usarse CHECKED.
Ejemplo: Formulario con diversos atributos del INPUT
<FORM> <INPUT VALUE="Prueba" SIZE=30 MAXLENGTH=10 NAME="Campo01"> <INPUT VALUE="Prueba" TYPE=PASSWORD NAME="Campo02">
<INPUT VALUE="Prueba" TYPE=HIDDEN NAME="Campo03"> <BR> Tipo: 1 <INPUT NAME="tipo" TYPE=RADIO VALUE="1" CHECKED> 2 <INPUT NAME="tipo" TYPE=RADIO VALUE="2"> 3 <INPUT NAME="tipo" TYPE=RADIO VALUE="3"> Clase: A <INPUT TYPE="CHECKBOX" NAME="clase" VALUE="A">
B <INPUT TYPE="CHECKBOX" NAME="clase" VALUE="B"> <INPUT VALUE="Reset" TYPE=RESET NAME="Reset"> <INPUT VALUE="Go" TYPE=SUBMIT NAME="Go"> </FORM>
Se vé:
Prueba
Tipo. 1 2 3 Clase: A B Reset Go
Ejemplo: Formulario para enviar un archivo:
<FORM enctype="../" ACTION="ftp://usario@servidor/" METHOD="POST"> Enviar el fichero: <INPUT NAME="fichero" TYPE="FILE"> <INPUT TYPE="SUBMIT" VALUE="Enviar"> </FORM>
Se vé: Enviar el fichero:
Prueba Examinar Enviar
Envio de emails
PHP nos posibilita enviar emails usando la instrucción mail( ) <?php
mail(destinatario, tema, texto del mensaje); ?>
destinatario: dirección de email a donde se enviará el mensaje,
tema: subject del mensaje texto: cuerpo del mensaje en formato texto plano. Sintaxis extendida de la instrucción mail( ) <?php
mail(destinatario, tema, texto del mensaje, información adicional de cabecera); ?>
información adicional de cabecera: Reply-To:, From:, Content-type:... que nos permiten tener un mayor control sobre el mensaje.
<!-- Manual de PHP de WebEstilo.com --> <html> <head> <title>Ejemplo de PHP</title> </head> <body> <H1>Ejemplo de envio de email</H1> Introduzca su direccion de email: <FORM ACTION="email.phtml" METHOD="GET"> <INPUT TYPE="text" NAME="direccion"><BR><BR> Formato: <BR> <INPUT TYPE="radio" NAME="tipo" VALUE="plano" CHECKED> Texto plano<BR> <INPUT TYPE="radio" NAME="tipo" VALUE="html"> HTML<BR><BR> <INPUT TYPE="submit" VALUE="Enviar"> </FORM> </body> </html>
em
ail.phtm
l
<!-- Manual de PHP de WebEstilo.com --> <html> <head> <title>Ejemplo de PHP</title> </head> <body> <H1>Ejemplo de envio de email</H1> <? $direccion=$_GET['direccion']; $tipo=$_GET['tipo']; if ($direccion!=""){ if ($tipo=="plano"){ // Envio en formato texto plano mail($direccion,"Ejemplo de envio de email","Ejemplo de envio de email de texto plano\n\nWebEstilo.\nhttp://www.webestilo.com/\n Manuales para desarrolladores web.\n","FROM: Pruebas <webmaster@hotmail.com>\n"); } else { // Envio en formato HTML mail($direccion,"Ejemplo de envio de email","<html><head><title>WebEstilo. Manual de PHP</title></head><body>Ejemplo de envio de email de HTML<br><br>WebEstilo.<br>http://www.webestilo.com/<br> <u>Manuales</u> para <b>desarrolladores</b> web.</body></html>","Content-type: text/html\n", "FROM: Pruebas <webmaster@hotmail.com>\n"); } echo "Se ha enviado un email a la direccion: ",$direccion," en formato <b>",$tipo,"</b>."; } ?> <br> </body> </html>
MySQL: Servidor de BD PHP con acceso a base de datos hemos
elegido la base de datos MySQL: gratuita mas empleada en entornos UNIX, el servidor donde tenemos alojadas las
páginas (Apache) nos tiene que proporcionar herramientas para crearla o acceso al Telnet para que la creemos por nosotros mismos.
Crear la base de datos
Comando para crear una base de datos MySQL :
mysqladmin -u root create base_datos Con este comando conseguimos crear
la una base de datos en el servidor de bases de datos de nuestro servidor.
Crear las tablas en la base de datos
Contienen la estructura de la información a almacenar
Lenguaje de consultas SQL Ejemplo: tabla ¨prueba¨ con 3 campos:
identificador, nombre y apellido de la persona.
Para crear la tabla puede usar la herramienta de administración de
MySQL de su servidor web escribir un archivo de texto con el contenido
de la sentencia SQL equivalente y luego decirle al motor de base de datos que la ejecute con:
mysql -u root base_datos <prueba.sql
prueba.sql
CREATE TABLE prueba ( ID_Prueba int(11) DEFAULT '0' NOT NULL auto_increment, Nombre varchar(100), Apellidos varchar(100), PRIMARY KEY (ID_Prueba), UNIQUE ID_Prueba (ID_Prueba) );
Conexión a la base de datos
Creada la base de datos en nuestro servidor, el siguiente paso es conectarnos a la misma desde una página PHP.
PHP nos proporciona una serie de instrucciones para acceder a bases de datos MySQL.
Al ejecutar la instrucción mysql_connect creamos un vínculo entre la base de datos y la pagina PHP, este vínculo será usado posteriormente en las consultas que hagamos a la base de datos.
Terminado de usar el vínculo con la base de datos, lo liberaremos con la instrucción mysql_close para que la conexión no quede ocupada.
Conexión a base_datos <!-- -->
<html> <head> <title>Ejemplo de PHP</title> </head> <body> <?php function Conectarse() { if (!($link=mysql_connect("localhost","usuario","Password")))
{ echo "Error conectando a la base de datos."; exit(); } if (!mysql_select_db("base_datos",$link)) { echo "Error seleccionando la base de datos."; exit(); } return $link; }
$link=Conectarse(); echo "Conexión con la base de datos conseguida.<br>";
mysql_close($link); //cierra la conexion ?> </body> </html> Conexión con la base de datos conseguida.
Consultas a la base de datos
Usamos el vínculo establecido en la conección.
Para facilitar la programación hemos separado la función de conexión en una librería a parte, de tal manera que la incluiremos en todas las páginas que accedan a la base de datos.
Librería para conección"conex.phtml“<!-- Manual de PHP -->
<?php function Conectarse() { if (!($link=mysql_connect("localhost","usuario","Password"))) { echo "Error conectando a la base de datos."; exit(); } if (!mysql_select_db("base_datos",$link)) { echo "Error seleccionando la base de datos."; exit(); } return $link; } ?>
Instrucciones nuevas
mysql_query consultar a la base de datos en el lenguaje
de consultas SQL mysql_fetch_array
extraer los datos de la consulta a un arreglo mysql_free_result
liberamos la memoria usada en la consulta.
<!-- Manual de PHP --> <html> <head> <title>Ejemplo de PHP</title> </head> <body> <H1>Ejemplo de uso de bases de datos con PHP y MySQL</H1> <?php include("conex.phtml"); $link=Conectarse(); $result=mysql_query("select * from prueba",$link); ?> <TABLE BORDER=1 CELLSPACING=1 CELLPADDING=1> <TR><TD> Nombre</TD><TD> Apellidos </TD></TR> <?php
while($row = mysql_fetch_array($result)) { printf("<tr><td> %s</td><td> %s </td></tr>", $row["Nombre"],$row["Apellidos"]); } mysql_free_result($result); mysql_close($link); ?> </table> </body> </html>
Ejemplo de uso de bases de datos con PHP y MySQL
mysql_query("select * from prueba",$link);
Nombre Apellidos
Maria Gomez
Marcos Martinez
Antonio Ferrera
Roman Zamora
Daniel Pineda
Martha Mendez
Inserción de registros Conección a una base de datos Consultas a la base de datos, Introducir nuevos registros en la base de datos Usar un formulario <FORM ACTION="programaPHP"> Indicamos que debe ser procesado una pagina
PHP, esta página lo que hará será introducir los datos del formulario en la base de datos.
<!-- ejem07ed.phtml--> <html> <head> <title>Ejemplo de PHP</title> </head> <body> <H1>Ejemplo de uso de bases de datos con PHP y MySQL</H1> <FORM ACTION="procesar.phtml"> <TABLE> <TR> <TD>Nombre:</TD> <TD><INPUT TYPE="text" NAME="nombre" SIZE="20" MAXLENGTH="30"></TD> </TR> <TR> <TD>Apellidos:</TD> <TD><INPUT TYPE="text" NAME="apellidos" SIZE="20" MAXLENGTH="30"></TD> </TR> </TABLE> <INPUT TYPE="submit" NAME="accion" VALUE="Grabar"> </FORM> <hr> <? PARTE DE PHP ?></table> </body> </html>
<?php include("conex.phtml"); $link=Conectarse(); $result=mysql_query("select * from prueba",$link); ?> <TABLE BORDER=1 CELLSPACING=1 CELLPADDING=1> <TR><TD> <B>Nombre</B></TD> <TD> <B>Apellidos</B> </TD></TR> <?php
while($row = mysql_fetch_array($result)) { printf("<tr><td> %s</td> <td> %s </td></tr>", $row["Nombre"], $row["Apellidos"]); } mysql_free_result($result); mysql_close($link); ?>
ejem07d.phtml
Ejemplo de uso de bases de datos con PHP y MySQL
Nombre:
Apellidos:
Grabar Nombre Apellidos
Maria Gomez
Marcos Martinez
Antonio Ferrera
Roman Zamora
Daniel Pineda
Martha Mendez
Borrado de registros
Uno de los procesos más sencillos. Para indicar que elemento vamos a
borrar hemos usado un enlace a la página borra.phtml pasándole el ID_Prueba de cada registro, de esta manera la página borra.phtml sabe que elemento de la tabla ha de borrar.
<!-- ejem07e.phtml--> <html> <head> <title>Ejemplo de PHP</title> </head> <body> <H1>Ejemplo de uso de bases de datos con PHP y MySQL</H1>
<?php include("conex.phtml"); $link=Conectarse(); $result=mysql_query("select * from prueba",$link); ?> <TABLE BORDER=1 CELLSPACING=1 CELLPADDING=1> <TR><TD> <B>Nombre</B></TD> <TD> <B>Apellidos</B> </TD> <TD> <B>Borrar</B> </TD></TR> <?php
while($row = mysql_fetch_array($result)) { printf("<tr><td> %s</td><td> %s </td><td><a href=\"borra.phtml?id=%d\">Borra</a></td></tr>", $row["Nombre"],$row["Apellidos"],$row["ID_Prueba"]); } mysql_free_result($result); mysql_close($link); ?> </table> </body> </html>
 : non-breaking space ,Da una nueva linea, si text too long
borra.phtml
<?php include("conex.phtml"); $link=Conectarse(); $id=$_GET['id']; mysql_query("delete from prueba where ID_Prueba = $id",$link); header("Location: ejem07e.phtml"); ?>
La página borra.phtml se conecta a la base de datos y borra el registro indicado en la variable $id que ha sido pasado desde la página ejem07e.phtml. Una vez el registro se ha borrado se vuelve a cargar la página ejem07e.phtml
Ejemplo de uso de bases de datos con PHP y MySQL Nombre Apellidos Borrar
Maria Gomez Borra
Marcos Martinez Borra
Antonio Ferrere Borra
Roman Zamora Borra
Daniel Pineda Borra
Martha Mendez Borra
Recommended