Php Mysql Nivel 1

  • Uploaded by: Trino Alejandro Reyes Casique
  • 0
  • 0
  • March 2021
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Php Mysql Nivel 1 as PDF for free.

More details

  • Words: 20,190
  • Pages: 87
Loading documents preview...
PHP MySQL Nivel 1

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial, por medios impresos o digitales, sin autorización del Autor.

CENEAC Producciones, C.A. Universidad Central de Venezuela, Facultad de Ciencias, Edif. III, Av. Los Ilustres, Los Chaguaramos, Caracas, Venezuela Tlf. (58 212) 605-13-14 693-47-38 (telfax) correo [email protected] www.ceneac.com.ve

CENEAC - PHP MySQL Nivel 1

ÍNDICE 1. INTRODUCCIÓN … 1 1.1 ¿Qué es PHP? … 1 1.2. Breve historia de PHP … 1 1.3. Requisitos para ejecutar aplicaciones PHP … 2 1.4. ¿Qué se puede hacer con PHP? … 2 1.5. Instalación de PHP … 2  Instalación del servidor Apache sobre Windows … 3  Instalación del PHP … 8  Instalación del MySQL … 12 2. PROGRAMACIÓN EN PHP … 14 2.1. Tipos de Datos … 15  Booleanos o Lógicos … 16  Enteros … 16  Números en Punto flotante … 16  Cadenas … 16 2.2 Variables … 17 2.3. Constantes … 17 2.4. Operadores … 18  Aritméticos … 18  De Cadenas … 19  De Comparación … 19  Lógicos … 19  De Asignación … 19 2.5. Estructuras de control … 21  If…else … 21  If….elseif…else … 21  Switch….case….default … 22  While … 23  Do while … 23  For … 24 2.6. Arreglos y matrices … 25 2.7. Funciones … 27  Instrucción Return … 28  Funciones con parámetros … 29 2.8. Como ahorrar líneas de código … 30 2.9. Funciones para la manipulación de cadenas … 32 2.10. Funciones para la manipulación de fecha y hora … 36

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor.

CENEAC - PHP MySQL Nivel 1 3. FORMULARIOS … 40 3.1. Etiqueta Formulario ( form) … 40 3.2. Cuadro de texto ( input text ) … 41 3.3. Cuadro de texto con desplazamiento ( textarea ) … 42 3.4. Casilla de verificación ( checkbox ) … 43 3.5. Botón de opción ( radio button) … 44 3.6. Menú desplegable ( select ) … 45 3.7. Campo oculto ( input hidden ) … 47 3.8. Campo archivo ( file ) … 47 3.9. Ejemplos de formularios… 47 4. MANEJO DE ARCHIVOS … 56 4.1. Envío de archivos a través de un formulario … 56 4.2. Funciones para el manejo de archivos … 58 5. MySQL, MANEJO DE BASES DE DATOS … 60 5.1. Introducción a MySQL y principales características … 60 5.2. Instalación de MySQL … 60 5.3. Conexión con MySQL … 61 5.4. Uso de la aplicación PhpMyAdmin … 61  Instalación y configuración del PhpMyAdmin… 61  Creación de la Base de Datos … 63  Creación de las Tablas … 63  Configuración de los Campos de la tabla … 64  Agregar Datos a la tabla … 65  Examinar los datos almacenados en la tabla … 65 5.5. Como usar la base de Datos desde PHP … 65 6. TALLERES DE EJERCICIOS … 74

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor.

CENEAC - PHP MySQL Nivel 1

TEMA 1. INTRODUCCIÓN A PHP Desde hace algunos años, ha surgido un conjunto de tecnologías para el desarrollo de aplicaciones para el Web, entre ellas ASP, JSP y PHP. Esta última está tomando mucha fuerza en este campo, por sus prestaciones, entre otras: es totalmente gratuito, puede ejecutarse tanto en servidor web Apache de Linux, como en Internet Information Server de Microsoft en sus distintas versiones para Windows 98, Me, 2000, XP y Vista. La sintaxis de sus instrucciones es muy parecida a la programación en C, siendo bastante simple la creación de aplicaciones en PHP, así como también el desarrollo por parte del programador de objetos específicos; otra de sus características es su natural integración con el manejador de Bases de Datos MySql (el cual es gratuito), la cual permite ejecutar procesos de automatización de datos eficientemente en tiempo, al no necesitar de controladores adicionales ODBC para la conexión con la base de datos del proyecto Web.

1.1 ¿Qué es PHP? Es un lenguaje interpretado de alto nivel, cuyo código es embebido o integrado a las páginas HTML. Es un lenguaje de programación con variables, sentencias condicionales, ciclos (bucles), funciones y con la capacidad de poder realizar la programación orientada a objetos. No es un lenguaje de marcado como podría ser HTML, XML o WML. Está más cercano a lenguajes de programación como JavaScript o C. Pero a diferencia del lenguaje JavaScript que se ejecuta en el navegador, PHP se ejecuta en el servidor, por eso permite acceder a los recursos que tenga el servidor, por ejemplo a bases de datos. El programa PHP es ejecutado en el servidor y el resultado enviado al navegador, el resultado es normalmente una página HTML. Al ser PHP un lenguaje que se ejecuta en el servidor no es necesario que su navegador lo soporte, es independiente del browser, pero sin embargo para que las páginas PHP funcionen, el servidor donde están alojadas debe soportarlo.

1.2. Breve historia de PHP PHP es un lenguaje creado por una gran comunidad de programadores. El sistema fue desarrollado originalmente en el año 1994 por Rasmus Lerdorf como un CGI escrito en C, que permitía la interpretación de un número limitado de comandos. El sistema fue denominado “Personal Home Page Tools” y adquirió relativo éxito gracias a que otras personas pidieron a Rasmus que les permitiese utilizar su programa en sus propias páginas. Dada la aceptación del primer PHP y de manera adicional, su creador diseñó un sistema para procesar formularios al que le atribuyó el nombre de FI (Form Interpreter) y el conjunto de estas dos herramientas, sería la primera versión compacta del lenguaje: PHP/FI. La siguiente gran contribución al lenguaje se realizó a mediados del 97 cuando se volvió a programar el analizador sintáctico, se incluyeron nuevas funcionalidades como el soporte a nuevos protocolos de Internet y el soporte a la gran mayoría de las bases de datos comerciales. Todas estas mejoras sentaron las bases de PHP versión 3. Actualmente PHP se encuentra en su versión 5.2.9, que utiliza el motor Zend, desarrollado para cubrir las necesidades actuales y solucionar algunos inconvenientes de la versión anterior. Algunas mejoras de esta nueva versión son su rapidez, gracias a que primero se compila y luego se ejecuta, mientras que antes se ejecutaba mientras se interpretaba el código, su mayor independencia del servidor Web creando versiones de PHP nativas para más plataformas y un API más elaborado y con más funciones. En el último año, el número de servidores que utilizan PHP se ha disparado, logrando situarse cerca de los 5 millones de sitios y 800.000 direcciones IP, lo que lo ha convertido a PHP en una tecnología popular.

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 1

CENEAC - PHP MySQL Nivel 1

1.3. Requisitos para ejecutar aplicaciones PHP 

Versión compilada de PHP, la cual se puede obtener desde el sitio oficial de PHP: http://www.php.net



Un servidor Web, entre otros, Apache, Personal Web Server -PWS, Internet Information Server-IIS.



Si se desea manejar base de datos se recomienda MySql Server, del cual se puede obtener una versión gratuita en el sitio oficial: http://www.mysql.com. También se dispone de controladores ODBC que permiten combinar PHP con los principales manejadores de bases. Una de las características más fuertes es el amplio soporte para una gran cantidad de base de datos como:  Adabas D  dBase  DB++  Ingres  InterBase  FrontBase  IMB DB2  Informix  mSQL  MySQL  ODBC  Oracle  PostgreSQL  Sybase  SQL Server  SQLite  Max DB  Firebird/InterBase

1.4. ¿Qué se puede hacer con PHP? Se puede realizar cualquier programa que tradicionalmente se haya podido desarrollar con un script CGI, como procesar la información de formularios, generar páginas con contenido dinámico, enviar o recibir cookies, manejar distintos protocolos, subir archivos al servidor, interactuar con distintos manejadores de bases de datos, creación de aplicaciones para el envío y recepción de correos electrónicos, entre otros.

1.5. Instalación de PHP Para realizar la instalación, primero debe descargarse el software completo desde la página oficial de PHP, el cual se puede encontrar en el siguiente enlace: http://www.php.net/downloads.php PHP como todo lenguaje de lado servidor requiere de la instalación de un servidor en nuestro computador para poder trabajar localmente. Este modo de trabajo es más práctico que enviar los archivos por FTP (File Transfer Protocol) al servidor y ejecutarlos desde Internet. Antes de comenzar a crear nuestros programas en PHP, es necesario:  Convertir nuestro computador en un servidor. Esto se hace instalando uno de los varios servidores disponibles para el sistema operativo que tengamos instalado.  Instalar en nuestro servidor los archivos que le permitirán la comprensión del PHP. Estos archivos pueden ser descargados, en su versión más actual, de la página oficial de PHP ( http://www.php.net)  Instalar una aplicación para creación y administración de bases de datos, por ejemplo MySQL. Para conocer cómo se instala PHP en los distrintos servidores disponibles según el sistema operativo se puede consultar el apartado de documentación en la página oficial. La elección del programa servidor tendrá mucho que ver con el sistema operativo que este corriendo en el computador. Estas serían algunas posibilidades de sistemas operativos y servidores disponibles:

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 2

CENEAC - PHP MySQL Nivel 1 Servidores Web sobre UNIX Apache thttpd fhttpd Zeus Roxen Pi3Web

Servidores Web sobre Windows Apache Microsoft IIS AOLServer WebSphere Netscape web server iPlanet

Usualmente se recomienda el uso del servidor Apache, ya que corre sobre ambos tipos de sistemas operativos, es gratuito y cuenta con un gran número de documentación y soporte en la red. Una vez seleccionado e instalado el servidor, se debe instalar el PHP. Bajo Windows, se puede instalar rápidamente a través de un Wizard o programa instalador. Para instalaciones bajo UNIX, se necesita la compilación del código fuente.

I. Instalación del servidor Apache sobre Windows 1. Para la instalación del Apache, se debe descargar el instalador del servidor HTTP Apache, en el url http://httpd.apache.org/download.cgi

A continuación, se ejecuta el instalador, y se verá una pantalla como la siguiente, se hace clic en el botón “Next” (Siguiente):

2. Se aceptan los términos y condiciones de la licencia y se hace clic en el botón “Next” (Siguiente):

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 3

CENEAC - PHP MySQL Nivel 1

3. Se presentará una ventana con información acerca del Apache, volviendo a hacer clic en el botón “Next” (Siguiente):

4. Se suministra la información para el servidor al instalador de Apache. Como sólo se desea ejecutar Apache en el computador de manera local (Apache también se puede hacer accesible desde Internet), se coloca localhost en Network Domain y en Server Name. Luego se introduce nuestra dirección de email, se selecciona for All Users… y se hace clic en el botón “Next” (Siguiente):

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 4

CENEAC - PHP MySQL Nivel 1 5. En la ventana de consulta tipo de instalación a usar, se selecciona Typical (Típica) y se hace clic en el botón “Next” (Siguiente):

6. Se pregunta por la carpeta de destino, se sugiere dejar el directorio sugerido y a continuación, se hace clic en el botón “Next” (Siguiente):

7. Se hace clic en el botón “Install” (Instalar) en la siguiente pantalla para empezar a instalar Apache:

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 5

CENEAC - PHP MySQL Nivel 1 8. Se observará una ventana que muestra el progreso de la instalación de Apache:

9. Por último, cuando la instalación ha terminado se hace clic en el botón “Finish” (Finalizar).

Para poner a funcionar el servidor se debe ir al escritorio de Windows, y luego buscar la ubicación del menú de inicio Inicio >> Todos los Programas >> Apache HTTP Server 2.2 >> Control Apache Server >> Start,

o por el contrario en la ubicación que se haya indicado durante la instalación. Al ejecutarlo quedará abierta una ventana MS-DOS en la cual estará corriendo el servidor. Con el servidor en funcionamiento, se comprueba si funciona correctamente, para ello se abre un explorador como puede ser Mozilla Firefox o Internet Explorer y en la barra de direcciones se teclea algunas de las siguientes opciones: http://127.0.0.1 http://localhost http://"nombre de nuestra PC”

Si el Apache está instalado correctamente, se debería ver la página que aparece en la siguiente imagen. Esta es la página de chequeo que por defecto incluye Apache. En caso de no verla es que no se ha realizado Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 6

CENEAC - PHP MySQL Nivel 1 correctamente algún paso anterior. Por defecto las páginas web estarán alojadas en el siguiente directorio: C:\Archivos de programa\Apache Software Foundation\Apache2.2\htdocs

También por defecto el Apache está configurado para que abra el archivo index.html que se encuentre en el directorio que se indicó. Por lo tanto cuando en el navegador se coloque la dirección http://127.0.0.1 el explorador cargará la página index.html del directorio C:\Archivos de programa\Apache Software Foundation\Apache2.2\htdocs.

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 7

CENEAC - PHP MySQL Nivel 1

2. Instalación del PHP Como próximo paso se instalará el PHP, para esto se debe descargar el instalador de la última versión del lenguaje, en el URL http://www.php.net/downloads.php 1. Al ejecutar el instalador, se verá una pantalla como la siguiente, se hace clic en el botón “Next” (Siguiente):

2. Se aceptan los términos y condiciones de la licencia y se hace clic en el botón “Next” (Siguiente):

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 8

CENEAC - PHP MySQL Nivel 1 3. Se selecciona el directorio donde se instalará el PHP, por defecto se toma el directorio “C:\Archivos de Programa\PHP”, en caso de querer cambiarlo, se hace clic en el botón de “Browse” (Examinar) y luego se selecciona el directorio deseado. Por último se hace clic en el botón “Next” (Siguiente):

4. Se selecciona el servidor que se va a utilizar, en este caso, se selecciona el servidor “Apache 2.2.x Module”. Luego, se hace clic en el botón “Next” (Siguiente):

5. Se selecciona el directorio donde se encuentran los archivos de configuración de apache: C:\Archivos de programa\Apache Software Foundation\Apache2.2\conf, luego se hace clic en el

botón “Next” (Siguiente):

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 9

CENEAC - PHP MySQL Nivel 1 6. Se indican las opciones a instalar. Por defecto no se encuentra seleccionado que se instalen las extensiones tales como mysql.dll, mysqli.dll entre otras. Por esta razón debemos seleccionar para instalar todas las extensiones disponibles. Posteriormente, se hace clic en el botón “Next” (Siguiente):

7. Se confirma las opciones seleccionadas en los pasos previos , haciendo clic en el botón “Install” (Instalar):

8. Se observará una ventana que muestra con el progreso de la instalación de PHP:

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 10

CENEAC - PHP MySQL Nivel 1 9. Finalmente se confirma la instalación del PHP haciendo clic en el botón “Finish” (Finalizar):

Para terminar la configuración de php sobre el servidor web apache, se debe editar el archivo “httpd.conf” que se encuentra en el directorio C:\Archivos de programa\Apache Software Foundation\Apache2.2\conf\ de la siguiente manera: Se debe buscar la línea: DirectoryIndex index.html Y la cambiamos por: DirectoryIndex index.html index.php Se reinicia el servidor Apache para que reconozca el soporte a PHP. Para probar que se ha instalado PHP correctamente se crea un script o archivo con el nombre “ prueba.php” y siempre se deben almacenar en el directorio “C:\Archivos de programa\Apache Software Foundation\Apache2.2\htdocs\”, a menos que se cambien los parámetros de configuración. El archivo “prueba.php” tendrá el siguiente contenido:

Luego se debe abrir el navegador y colocar como URL: http://localhost/prueba.php. Entonces se debe ver en pantalla el mensaje “El PHP está funcionando correctamente!”. En caso contrario, hubo un error u omisión de alguno de los pasos de la instalación. Si se desea visualizar los mensajes de error al momento de ejecutar el script php, se debe editar el archivo “php.ini”, el cual se encuentra bajo Windows en el directorio “C:\Archivos de programa\PHP”. Se debe ubicar la línea: display_errors = Off

Y cambiarla por: display_errors = On

Por último, se debe reiniciar el servidor Apache para que acepte los cambios.

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 11

CENEAC - PHP MySQL Nivel 1

3. Instalación del MySQL El MySql es un manejador de Bases de Datos muy utilizado junto a PHP ya que también pertenece a la categoría de Software Libre. Para instalarlo se debe descargar el archivo instalador de la última versión para Windows, de la dirección http://dev.mysql.com/downloads/

1. Una vez descargado el archivo, se ejecuta. Aparecerá entonces una pantalla de presentación de la instalación, se debe hacer clic en el botón “Next”:

2. Se selecciona la opción “Typical” como tipo de instalación, y se hace clic en el botón “Next” (Siguiente):

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 12

CENEAC - PHP MySQL Nivel 1 3. Se observará una ventana con un resumen de las opciones de configuración que se llevarán acabo. Por último se hace clic en el botón “Install” (Instalar):

4. Se observará una ventana con el progreso de la instalación de MySQL:

5. Se confirma la instalación del MySQL haciendo clic en el botón “Finish” (Finalizar):

Más adelante se explicará como se crea y utiliza una base de datos MySQL.

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 13

CENEAC - PHP MySQL Nivel 1

TEMA 2. PROGRAMACIÓN EN PHP Una vez instalado PHP, y configurado el servidor, podemos comenzar a escribir nuestro primer script en PHP. Para crear páginas PHP es suficiente con un editor de texto, como el Block de notas, no obstante se puede utilizar un editor de código HTML como EditPlus o HomeSite, los cuales permiten escribir código PHP de manera más fácil ya que identifican los bloque de código que son distinguidos con los delimitadores, una de las ventajas de estos editores es que funcionan muy bien en equipos de bajo rendimiento. Si requerimos un editor de páginas tipo WYSWYG (What you see, What you get), se pueden utilizar herramientas como Adobe Dreamweaver o Microsoft Frontpage. El mecanismo de solicitud y entrega de una página php al navegador web es la siguiente: el navegador solicita al servidor cierta página con extensión .php, luego el PHP en el servidor interpreta el contenido del archivo, dejando el código HTML intacto y ejecutando el código en lenguaje PHP, el cual da como resultado código HTML. Por lo tanto, el código PHP se encuentra embebido en el código HTML. El código resultante en HTML es enviado de vuelta al navegador. Es por esto que el PHP es independiente del navegador que se esté utilizando, siempre se va a poder ver el resultado, ya que el mismo está constituido sólo por código HTML, el cual el navegador puede interpretar sin problemas.

Ahora, hagamos nuestro primer script en PHP. Ejemplo 1: script en PHP Nombre del archivo: Prueba.php

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 14

CENEAC - PHP MySQL Nivel 1 Una vez escrito se almacena en un archivo con la extensión php, y lo colocamos en el directorio creado para la ejecución de las páginas PHP. Para ejecutar el script, cargamos el URL http://localhost/directorio/prueba.php en el navegador y veremos el texto siguiente en el cuerpo de la página: Hola. Este es mi primer script en PHP Lo primero que apreciamos en el script son sus delimitadores. En la primera línea del script se observa para indicar el final. Hay que destacar que todas las líneas que se encuentre entre estos delimitadores terminan en punto y coma, excepto las sentencias de control (if, switch, while, for, entre otras). Como en toda programación, es importante poner comentarios. Para indicar como comentario una sola línea se debe colocar al principio de la línea //, si lo que se quiere es comentar varias utilizaremos los delimitadores /* y */ al principio y al final. La instrucción echo, permite enviar texto al navegador que solicitó la página, aunque también podemos utilizar printf de uso similar al del C o Perl. Finalmente, se observa en el script que la palabra myvar comienza con el signo dólar ($) este símbolo le indica a PHP que es una variable. Nosotros le hemos asignado un texto a esta variable, pero también pueden contener números o arreglos. Es importante destacar que todas las variables comienzan con el signo dólar.

2.1. Tipos de datos PHP soporta ocho tipos primitivos.  Cuatro tipos escalares: boolean, integer, float (número de punto flotante, también conocido como “double”), string.  Dos tipos compuestos: array, object.  Dos tipos especiales: resource, NULL. Es importante destacar que usualmente las variables no se inicializan con un tipo de datos. Esto se determina en tiempo de compilación dependiendo del contexto en el que se utilizada la variable. Si se quiere determinar el tipo de datos para una variable, se puede utilizar la función settype() sobre ella. Ejemplo 2: Ejemplo de settype() Nombre del archivo: settype.php
?> Veamos entonces los cuatro tipos escalares:

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 15

CENEAC - PHP MySQL Nivel 1

2.1.1. Booleanos o Lógicos (boolean) Para definir una variable booleana, se debe colocar alguna de las palabras claves (constantes en PHP) TRUE o FALSE, dependiendo del caso. Se pueden escribir tanto en mayúsculas como en minúsculas, como se vio en el Ejemplo 2.

2.1.2. Enteros (integer) Los enteros se pueden especificar usando una de las siguientes sintaxis: Descripción Número decimal Un número negativo Número octal (equivalente al 83 decimal) Número hexadecimal (equivalente al 18 decimal)

Instrucción $a = 1234 $a = -123 $a = 0123 $a =0x12

2.1.3. Números en punto flotante (float) Los números en punto flotante ("double" ó también conocidos como números reales) se pueden especificar utilizando cualquiera de las siguientes sintaxis: $a = 1.234; $a = 1.2e3;

2.1.4. Cadenas (string) Una cadena o valor string está conformado por una serie de caracteres. El único operador de cadenas que existe, es el de concatenación, que representa con el carácter punto. Los datos del tipo cadena disponen de toda una gama de funciones para la manipulación de este tipo de objeto. Ejemplos de cadenas $a = "Hola";

Descripción Asigna la cadena “Hola” a la variable $a

$b = $a . " Mundo"; echo = 'Hola $a';

Concatena el contenido de la variable $a con la cadena “ Mundo” y el resultado se lo asigna a la variable $b Escribe en el cuerpo de la página el texto: Hola $a

echo = "$a \n Mundo";

Escribe en el cuerpo de la página el texto: Hola Mundo

Si la cadena está encerrada entre dobles comillas ( " ), las variables que estén dentro de la cadena serán expandidas (sujetas a ciertas limitaciones de interpretación). Como en C y en Perl, el carácter de barra invertida ( " \ " ) se puede usar para especificar caracteres especiales.

Carácter \n \r \t

Caracteres protegidos Descripción Carácter \\ Nueva línea \$ Retorno de carro \” Tabulación horizontal

Descripción Barra invertida Símbolo Dólar Comillas dobles

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 16

CENEAC - PHP MySQL Nivel 1

2.2. Variables Como se ha observado anteriormente todas la variables deben ser precedidas por el signo dólar ($), y le asignamos el contenido con el signo igual (=). PHP es un lenguaje “Case Sensitive”, distingue entre mayúsculas y minúsculas, por lo que no es lo mismo $myvar que $Myvar, éstas son dos variables totalmente distintas. Se debe comenzar el nombre de la variable con una letra o una raya (underscore), y luego puede ser seguido de cualquier cantidad de números, letras y rayas. Ejemplo 3: Nombre del archivo: varia.php "; $Myvar = "MADRID
"; echo $myvar; echo $MyVar; ?>

// imprime SEVILLA // esto es un error, POR QUE?

2.3. Constantes Las constantes son similares a las variables, con la salvedad, de que no llevan el signo dólar delante, y sólo la podemos asignar una vez. Para definir una constantes usaremos la función define como se muestra en el siguiente ejemplo: Ejemplo 4: Nombre del archivo: const.php

PHP define varias constantes y proporciona un mecanismo para definir aun más en tiempo de ejecución. Las constantes son como las variables, salvo por las dos circunstancias de que las constantes deben ser definidas usando la función define(), y que no pueden ser redefinidas más tarde con otro valor. La siguiente tabla describe algunas de las constantes predefinidas en PHP Constantes predefinidas (siempre disponibles) Constante

Descripción

__FILE__

El nombre del archivo de comandos que está siendo interpretado actualmente. Si se usa dentro de un archivo que ha sido incluido o requerido, entonces se da el nombre del archivo incluido, y no el del archivo padre.

__LINE__

El número de línea dentro del archivo que está siendo interpretado en la actualidad. Si se usa dentro de un archivo incluido o requerido, entonces se da la posición dentro del archivo incluido.

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 17

CENEAC - PHP MySQL Nivel 1 PHP_VERSION

La cadena que representa la versión del analizador de PHP en uso en la actualidad.

PHP_OS

El nombre del sistema operativo en el cuál se ejecuta el analizador PHP.

TRUE

Valor verdadero.

FALSE

Valor falso.

E_ERROR

Denota un error distinto de un error de interpretación del cual no es posible recuperarse.

E_WARNING

Denota una condición donde PHP reconoce que hay algo erróneo, pero continuará de todas formas; pueden ser capturados por el propio archivo de comandos.

E_PARSE

El intérprete encontró sintaxis inválida en el archivo de comandos. La recuperación no es posible.

E_NOTICE

Ocurrió algo que pudo ser o no un error. La ejecución continúa. Los ejemplos incluyen usar una cadena sin comillas como un índice "hash", o acceder a una variable que no ha sido inicializada.

E_*

Constantes se usan típicamente con la función error_reporting() para configurar el nivel de informes de error.

Ejemplo 5: Uso de constantes. Nombre del archivo: const2.php "; echo "Un error ha ocurrido en: \"".__FILE__."\" en la línea ".__LINE__."
"; echo "cuarta linea
"; ?>

2.4. Operadores 2.4.1. Operadores Aritméticos Operador

Descripción

Operador

Descripción

$a + $b

Suma

$a / $b

División

$a - $b

Resta

$a++

Suma 1 a $a

$a * $b

Multiplicación

$a--

Resta 1 a $a

2.4.2. Operadores de Cadenas Operador $a = 'Hola'; $b = "Mundo"; $c = $a . $b;

Descripción La variable $c contiene la concatenación del contenido de la variable $a con el de $b

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 18

CENEAC - PHP MySQL Nivel 1

2.4.3. Operadores de Comparación Operador $a < $b $a > $b $a <= $b $a >= $b $a == $b $a != $b $a === $b

Descripción $a menor que $b $a mayor que $b $a menor o igual que $b $a mayor o igual que $b $a igual que $b $a distinto que $b $a es idéntico a $b (coinciden en contenido y tipo de datos)

2.4.4. Operadores Lógicos Operador $a AND $b $a && $b $a OR $b $a || $b $a XOR $b !$a

Descripción Verdadero si ambos son verdadero Verdadero si ambos son verdadero Verdadero si alguno de los dos es verdadero Verdadero si alguno de los dos es verdadero Verdadero si sólo uno de los dos es verdadero Verdadero si $a es falso, y recíprocamente

2.4.5. Operadores de Asignación Operador Descripción $a = $b Asigna a $a el contenido de $b $a += $b Le suma a $b a $a $a -= $b Le resta a $b a $a $a = (condición) ? "verdadero" : "falso";

Operador Descripción $a *= $b Multiplica $a por $b y lo asigna a $a $a /= $b Divide $a por $b y lo asigna a $a $a .= $b Añade la cadena $b a la cadena $a Asignación condicional

Para demostrar el uso de algunos operadores, se mostrarán a continuación algunos ejemplos en PHP: Ejemplo 6: El siguiente programa calcula el salario de un trabajador con un impuesto. Nombre del archivo: salario.php
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 19

CENEAC - PHP MySQL Nivel 1 echo "Sueldo del trabajador sin impuesto: $SalarioTrabajador
"; echo "Sueldo con el impuesto incluido:$SueldoReal"; ?>

Ejemplo 7: Programa en PHP que calcula el área de un triangulo cuya formula es a = ( b*h ) / 2 Nombre del archivo: area.php

Ejemplo 8: Programa que dados 2 números calcula la suma, resta, multiplicación, división y módulo. Nombre del archivo: operacionesbasicas.php "; echo "La resta de $Num1 y $Num2 es: ".($Num1-$Num2) . "
"; echo "La multiplicación de $Num1 y $Num2 es: “.($Num1*$Num2) . "
"; echo "La división de $Num1 y $Num2 es: ".($Num1/$Num2) . "
"; echo "El módulo de $Num1 y $Num2 es: ".($Num1 % $Num2) . "
"; /* La etiqueta HTML
se refiere a un salto de línea, en PHP se pueden mandar a imprimir etiquetas HTML dentro del texto */ ?>

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 20

CENEAC - PHP MySQL Nivel 1

2.5. Estructuras de control Las estructuras de control permiten ejecutar bloques de códigos dependiendo de una o más condiciones. Para PHP el 0 es equivalente a Falso y cualquier otro número es Verdadero.

2.5.1. if...else La instrucción if...else permite ejecutar un bloque de instrucciones si la condición es Verdadera y otro bloque de instrucciones si ésta es Falsa. Es importante tener en cuenta, que la condición que evaluemos ha de estar encerrada entre paréntesis (esto es aplicable a todas las sentencias de control). Si la cantidad de instrucciones que están dentro del if o en la cláusula else excede a 1 entonces deben estar encerradas entre llaves {…} if (condición) { … Este bloque se ejecuta si la condición es VERDADERA … } else { … Este bloque se ejecuta si la condición es FALSA … }

Ejemplo 9: Verifica si un número es mayor a 4. Nombre del archivo: numero.php 4) echo "$numero es mayor que 4"; else echo "$numero es menor que 4"; ?>

2.5.2. if...elseif...else La instrucción if…elseif…else permite ejecutar varias condiciones en cascada. Ejemplo 10: Nombre del archivo: sisno.php

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 21

CENEAC - PHP MySQL Nivel 1

2.5.3. switch...case...default Una alternativa a if...elseif...else, es la instrucción switch, la cuál evalúa y compara por igual la expresión con cada caso de la estructura, si se recorren todos los casos de la lista y no se encuentra una comparación que sea Verdadera, ejecuta el código del bloque que haya en el caso por defecto: “default”. Si se encuentra una comparación que sea verdadera se ejecutarán las instrucciones desde el inicio de ese caso y hasta ejecutar una instrucción “break”, de lo contrario ejecutará todas las instrucciones hasta el final del switch. switch (expresion) { case valor 1:

… … break;

case valor N: … … break; default:

… …

}

Veamos un ejemplo. Ejemplo 11: Uso de la estructura case. Nombre del archivo: case.php

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 22

CENEAC - PHP MySQL Nivel 1

2.5.4. while La instrucción while ejecuta un bloque de código mientras se cumpla una determinada condición. Si el bloque de código contiene una sola instrucción, no es necesario colocar las llaves. Ejemplo 12. Uso de la estructura While. Nombre del archivo: While.php

Podemos terminar un ciclo while antes de haber alcanzado la condición de parada utilizando la sentencia break. Ejemplo 13. Uso de la estructura while con la sentencia break. Nombre del archivo: While_break.php "; break; } $num++; } ?>

2.5.5. do...while Esta sentencia es similar a while, salvo que primero se ejecuta el bloque de código y después se evalúa la condición, por lo que las instrucciones se ejecuta siempre al menos una vez. Si el bloque de código contiene una sola instrucción, no es necesario colocar las llaves. Ejemplo 14. Uso de la estructura do while. Nombre del archivo: doWhile.php 5); ?>

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 23

CENEAC - PHP MySQL Nivel 1

2.5.6. for El ciclo for no es estrictamente necesario, cualquier ciclo for puede ser sustituido usando while. Sin embargo, este ciclo resulta muy útil cuando se debe ejecutar un bloque de código a condición de que una variable se encuentre entre un valor mínimo y otro máximo. El ciclo for también se puede romper mediante la sentencia break. Sintaxis del ciclo for: for ($v = valor_inicial; $v <= Valor_final; $v++) {… }

La variable $v es inicializada con valor_inicial y ejecutara el ciclo hasta que se cumpla la condición de que $v sea menor o igual a Valor_final, la variable es incrementada en una unidad cada vez que se repite el ciclo.Si el bloque de código contiene una sola instrucción, no es necesario colocar las llaves. Ejemplo 15. Uso de la estructura for. Nombre del archivo: For.php

Ejercicios: 1. Listar los números del 1 al 100. (Nombre del archivo: numeros.php) 2. Listar los números pares del 1 al 100.(Nombre del archivo: pares.php) 3. Mostrar la tabla de multiplicar de un número n asignado a una variable. (Nombre del archivo: tablas.php) 4. Mostrar el factorial de un número que se encuentra almacenado en una variable (Nombre del archivo: factorial.php) 5. Listar los número primos entre dos valores, estos se encuentran almacenados en dos variables (Nombre del archivo: Primos.php)

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 24

CENEAC - PHP MySQL Nivel 1

2.6. Arreglos y Matrices La estructura arreglo (o array en inglés) es muy útil, ya que generalmente las funciones que devuelven varios valores, como las funciones ligadas a las bases de datos, lo hacen en forma de arreglos. En PHP disponemos de dos tipos de arreglos. El primero es el más clásico que utiliza índices (vectores, matrices, cubos) y el segundo tipo corresponde a las tablas asociativas. Arreglos con Índices: La manera informal de definir un arreglo utilizando índices sería la siguiente: "; // Venezuela echo "Mis padres viven en ".$lugar[2]; // Roma ?>

Al no especificar una posición dentro de los corchetes, el arreglo inicia en la posición cero. Otra forma de crear el arreglo sería especificando el valor de la posición del elemento dentro de los corchetes: "; echo "Mis padres viven en ".$ciudad[2];

// México // Venezuela

?>

Esta es una manera de asignar elementos a un arreglo, pero una manera más formal es utilizando la función array:
array("París", "Roma", "Sevilla", "Londres");

//contamos el número de elementos de la tabla $n =

count ($ciudad);

//imprimimos todos los elementos de la tabla for ($i=0; $i < $n; $i++) { echo "La ciudad $i es $ciudad[$i]
"; } ?>

Sino se especifica, el primer índice es el cero, pero podemos utilizar el operador => para especificar el índice inicial. $ciudad = array (1=>"París", "Roma", "Sevilla", "Londres");

Arreglos como Tablas Asociativas: En las tablas asociativas a cada elemento se le asigna un valor (key) para acceder a él. Para entenderlo, que mejor que un ejemplo, supongamos que tenemos una tabla en el que cada elemento almacena el número de visitas a nuestra web por cada día de la semana. Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 25

CENEAC - PHP MySQL Nivel 1 Utilizando el método clásico de índices, cada día de la semana se representaría por un entero, 0 para lunes, 1 para martes, 2 para miércoles, etc. $visitas[0] = 200; $visitas[1] = 186;

Si usamos las tablas asociativas sería $visitas["lunes"] = 200; $visitas["martes"] = 186;

o bien: $visitas = array("lunes" => 200;"martes"=>186); Ahora bien, recorrer una tabla y mostrar su contenido es sencillo utilizando los índices, pero ¿cómo hacerlo en las tablas asociativas?. La manipulación de las tablas asociativas se hace a través de funciones que actúan sobre un puntero interno que indica la posición. Por defecto, el puntero se sitúa en el primer elemento añadido en la tabla, hasta que es movido por una función.

Función current pos reset end next prev count

Operaciones sobre tablas asociativas Descripción devuelve el valor del elemento que indica el puntero realiza la misma función que current mueve el puntero al primer elemento de la tabla mueve el puntero al último elemento de la tabla mueve el puntero al elemento siguiente mueve el puntero al elemento anterior devuelve el número de elementos de una tabla

Ejemplo 16: Tablas asociativas. Nombre del archivo: tablasaso.php "; reset($semana); //situamos el puntero en el primer elemento echo current($semana)."
"; //lunes next($semana); echo pos($semana)."
"; //martes end($semana); echo pos($semana)."
"; //domingo prev($semana); echo current($semana)."
"; //sábado ?>

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 26

CENEAC - PHP MySQL Nivel 1 Recorrer una tabla con las funciones anteriores se hace un poco enredado, para ello se recomienda utilizar la función

each(), la cual devuelve el valor del elemento actual y su índice, y desplaza el puntero al siguiente elemento, cuando

llega al final devuelve falso. La función each() devuelve un arreglo de cuatro (4) elementos con los siguientes indices: 0, 1, key y value. Los elementos 0 y key contienen el nombre del índice del elemento de la matriz, y 1 y value contienen los datos. Otra función que complementa el uso de la función each es la función list(), la cual se comporta como un operador de asignación: asigna valores a una lista de variables. Esta función solo funciona con matrices numéricas y asume que el índice numérico empieza en 0. Ejemplo 17: Recorrido de un arreglo unidimensional. Nombre del archivo: arreglo_unidimensional.php 200, "martes"=>186, "miércoles"=>190, "jueves"=>175); reset($visitas); while (list($clave, $valor) = each($visitas)) echo "el día $clave ha tenido $valor visitas
"; ?>

Arreglos multidimensionales Los arreglos multidimensionales son simplemente arreglos unidimensionales en las cuales cada elemento es a su vez otro arreglo. Ejemplo 18: Recorrido de un arreglo bidimensional. Nombre del archivo: arreglo_bidimensional.php "; echo $cadena; } ?>

2.7. Funciones Muchas veces, cuando trabajamos en el desarrollo de una aplicación, surge la necesidad de ejecutar un mismo bloque de código en diferentes partes de nuestra aplicación. Una Función no es más que la ejecución de un bloque de instrucciones al que se le pasa una serie de parámetros y retorna o no un valor. Como todos los lenguajes de programación, PHP tiene una gran cantidad de funciones para nuestro uso. Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 27

CENEAC - PHP MySQL Nivel 1 Para declarar una función se debe utilizar la instrucción function seguido de su nombre, y después entre paréntesis la lista de argumentos separados por comas, también pueden existir funciones que no tengan argumentos. function nombre_de_funcion (arg_1, arg_2, ..., arg_n) { //breve comentario sobre el objetivo de la función bloque de código }

Cualquier instrucción válida de PHP puede aparecer en el cuerpo (lo que antes hemos llamado bloque de código) de una función, incluso otras funciones y definiciones de clases. En PHP no podemos redefinir una función previamente declarada, pero si es posible definir la función en cualquier parte de la página, ya sea antes o después de que esta sea invocada.

2.7.1. Instrucción Return Cuando invocamos una función, la ejecución del programa pasa a ejecutar las líneas de código que contenga la función, y una vez terminado, el programa continúa su ejecución desde el punto en que fue llamada la función. Existe una manera de terminar la ejecución de la función aunque aún haya código por ejecutar, mediante el uso de la instrucción return terminamos la ejecución del código de una función y devolvemos un valor. Podemos tener varios return en nuestra función, pero por lo general, cuantos más return tengamos menos reutilizable será nuestra función. $y) return $x." es mayor que ".$y; else return $y." es mayor que ".$x; } ?>

Aunque quedaría mejor: $y) $msg = $x." es mayor que ".$y; else $msg = $y." es mayor que ".$x; return $msg; } ?>

Con la instrucción return puede devolverse cualquier tipo de valor, incluyendo arreglos y objetos. PHP solo permite a las funciones devolver un valor.

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 28

CENEAC - PHP MySQL Nivel 1

2.7.2. Funciones con parámetros Existen dos formas de pasar los parámetros a una función, por valor o por referencia. Cuando pasamos una variable por valor a una función, ocurra lo que ocurra en ésta, en nada modificará el contenido de la variable. Mientras que si lo hacemos por referencia, cualquier cambio acontecido en la función sobre la variable lo hará para siempre. En PHP, por defecto, las variables se pasan por valor. Para hacerlo por referencia debemos anteponer el símbolo

ampersand (&) a la variable, ya sea en la declaración de la función o en la llamada a la función. Para permitir el pase de

parámetros por referencia en la llamada a la función debemos habilitar la siguiente directiva en el archivo de configuración de php (php.ini): allow_call_time_pass_reference = On. Ejemplo 19: Prueba del pase deparametros Nombre del archivo: pase_parametros.php
// imprimirá 4 // imprimirá 1

//parámetros por referencia echo suma (&$a, $b); // imprimirá 4 echo $a; //imprimirá 4 ?>

En PHP podemos definir valores por defecto para los parámetros de una función. Estos valores tienen que ser una expresión constante, y no una variable o miembro de una clase. Además cuando usamos parámetros por defectos, éstos deben estar a la derecha de cualquier parámetro sin valor por defecto, de otra forma PHP nos devolverá un error.

En una función pueden existir variables estáticas (static) y globales (global). Las variables estáticas se inicializan sólamente la primera vez que es llamada dicha función, y preservan su valor para posteriores llamadas.

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 29

CENEAC - PHP MySQL Nivel 1 Ejemplo 20: Variable static. Nombre del archivo: variable_static.php "; // imprimirá 1 echo contador()."
"; // imprimirá 2 echo contador()."
"; // imprimirá 3 ?>

Las variables globales, se declaran dentro de una función, para hacer referencia a una variable que ha sido declarada fuera de la función, tomando el valor que tenga en ese momento, pudiendo se modificado en la función. Ejemplo 21: Variable global. Nombre del archivo: variable_global.php "; $a++; } ver_a(); // imprimirá 1 ver_a(); // imprimirá 2 $a = 7; ver_a(); // imprimirá 7 ver_a(); // imprimirá 8

// imprimirá el valor de $a // sumamos 1 a $a

?>

2.8. Como ahorrar líneas de código Por lo general, todas nuestras páginas tienen partes de código comunes, por ejemplo los encabezados, menúes o información de cierre al final de la página. Las funciones include() y require() nos ayudan a evitar la repetición de muchas de estas líneas de código. Ambas funciones incluyen y evalúan el archivo especificado, cuya ruta es pasada como parámetro a la función. require() y include() son idénticas en todos los aspectos excepto en el modo de actuar ante un error. include() produce una advertencia mientras que require() produce un error fatal. Es decir, si require() no encuentra el archivo especificado, termina con la ejecución del script, a diferencia de include(), que si no encuentra el archivo especificado, continua con la ejecución del script. Ejemplo 22: Uso de la función include y require. Nombre del archivo: incluir.php

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 30

CENEAC - PHP MySQL Nivel 1 Nombre del archivo: header.inc

Nombre del archivo: footer.inc

Al ejecutar el ejemplo anterior, el resultado seria equivalente al siguiente script:

Nombre del archivo: requerir.php

Nombre del archivo: config.inc

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 31

CENEAC - PHP MySQL Nivel 1

2.9. Funciones para manipulación de cadenas La siguiente tabla describe las funciones más importantes para el manejo de cadenas de caracteres o String. Función

Sintaxis

chr

string chr ( int ascii)

Descripción Devuelve el carácter ASCII asociado al entero pasado por parámetro.
strcmp

int strcmp ( string cad1, string cad2)

// retorna @ ?>

Devuelve < 0 si cad1 es menor que cad2; > 0 si cad1 es mayor que cad2, y 0 si son iguales. Nótese que esta comparación es sensible a mayúsculas y minúsculas, y es en modo binario.

strcspn

int strcspn ( string cad1, string cad2)

Devuelve la longitud del segmento inicial de cad1 que no contiene ninguno de los caracteres de cad2.

strtolower

string strtolower ( string cad)

Devuelve la cadena con todas sus letras en minúsculas.

strtoupper

strlen

string strtoupper ( string cadena)

Devuelve la cadena con todas sus letras en mayúsculas.

int strlen ( string cad)

Devuelve la longitud de la cadena.





strstr / stristr

string strstr (string cadena, string texto)

Devuelve la cadena de texto desde la primera aparición del segundo parámetro (texto), hasta el final de la cadena. Si el “texto” no es hallado, devuelve FALSE. Si el “texto” no es una cadena, se convierte a entero y se usa como código de un carácter ASCII. Nota: Nótese que esta función es sensible a mayúsculas y minúsculas. Para búsquedas no sensibles, utilice stristr().

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 32

CENEAC - PHP MySQL Nivel 1 Función

Sintaxis

substr

string substr ( string cadena, int comienzo [, int largo])

Descripción Devuelve la subcadena especificada por los parámetros comienzo y largo. Si comienzo es negativo, se contarán los caracteres de atrás hacia adelante sabiendo que la última posición de la cadena ocupa la posición -1.

trim

string trim ( string cad)

Esta función elimina los espacios en blanco del comienzo y del final de una cadena y devuelve el resultado.

ltrim

string ltrim ( string cad)

");

Esta función elimina el espacio en blanco del principio de una cadena y devuelve la cadena resultante.

rtrim

string rtrim (string cad)

Devuelve la cadena cad sin los espacios en blanco que estén ubicados a la derecha.

substr_rep lace

string substr_replace ( string cadena, string sustituto, int comienzo [, int largo])

Sustituye la parte de cadena delimitada por los parámetros comienzo y (opcionalmente) largo por la cadena dada en sustituto. Se devuelve el resultado. Si comienzo es positivo, la sustitución comenzará en dicha posición dentro de la cadena. Si comienzo es negativo, la sustitución comenzará en dicha posición pero contando desde el final de cadena.

ucfirst

string ucfirst ( string cad)

Convierte en mayúsculas el primer carácter de cad si es alfabético. Nótese que 'alfabético' está determinado por la localidad actual

ucwords

string ucwords ( string cad)

Pasa a mayúsculas la primera letra de cada palabra en cad si dicho carácter es alfabético.

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 33

CENEAC - PHP MySQL Nivel 1 Función

Sintaxis

wordwrap

string wordwrap ( string cad [, int ancho [, string ruptura]])

Descripción Corta la cadena cad en la columna especificada por el parámetro (opcional) ancho. La línea se rompe utilizando el parámetro (opcional) ruptura. Automáticamente cortará en la columna 75 y usará '\n' (nueva línea) si no se especifican el ancho o la ruptura. \n"); /* retorna: El veloz murciélago
lindo comía feliz
semillas y pan. */ ?>

nl2br

string nl2br ( string cadena)

Devuelve la cadena con '
' insertados antes de cada nueva línea. \n estas” ?>

ord

int ord ( string cadena)

Devuelve el valor ASCII del primer carácter de cadena. Esta función complementa a chr().

chop

string chop ( string cad)

Devuelve la cadena argumento sin los espacios sobrantes, incluyendo los saltos de línea.

strip_tags

string strip_tags ( string cad [, string etiq_permitidas])

Esta función intenta eliminar todas las etiquetas HTML y PHP de la cadena dada. Causa error por precaución en caso de etiquetas incompletas o falsas. hola como estas

"); // retorna “hola como estas” strip_tags("

hola como estas

", ""); // retorna “hola como estas” ?>

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 34

CENEAC - PHP MySQL Nivel 1 Función

Sintaxis

strpos

int strpos ( string cadena, string texto [, int desplazamiento])

Descripción Devuelve la posición numérica que ocupa la primera aparición del segundo parámetro (texto) en la cadena original (cadena). Si el texto no es hallado, devuelve FALSE.

strrchr

string strrchr ( string cadena, string texto)

Esta función devuelve una subcadena del primer parametro “cadena” que comienza en la última aparición del segundo parámetro “texto” en la cadena y continúa hasta el final de la misma. Devuelve FALSE si el “texto” no es encontrado. Si el “texto” contiene más de un carácter, sólo se usará el primero. Si el “texto” no es una cadena, se convierte a entero y se usa como código de un carácter ASCII.

substr_count

int substr_count ( string cadena, string texto)

Devuelve el número de veces que la subcadena “texto” se encuentra en la cadena “cadena”.

split

array split ( string patrón, string cadena [, int limite] )

Devuelve un arreglo de cadenas, cada una de las cuales es una subcadena formada al dividir esta en los límites formados por la expresión regular patrón. Si ocurre un error, devuelve un valor falso.

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 35

CENEAC - PHP MySQL Nivel 1

2.10. Funciones para manipulación de fecha y hora A continuación veremos las principales funciones relacionadas con la hora y la fecha.

2.10.1 time Devuelve el número de segundos transcurridos desde el 1 de Enero de 1970. A esta forma de expresar fecha y hora se le denomina timestamp.

2.10.2. mktime (hora, min, seg, mes, día, año) La función mktime devuelve el valor timestamp a partir de los parámetros dados. Ejemplo 23: como obtener el tiempo (expresado en horas, minutos y segundos) de diferencia entre dos horas dadas. Nombre del archivo: restar_horas.php

2.10.3 date (formato, timestamp) La función date devuelve una cadena en formato de fecha, de acuerdo a un formato establecido y a un valor timestamp, con respecto a la zona horaria establecida en el servidor. El primer parámetro representa el formato (ver cuadro abajo) y el segundo parámetro representa el valor en segundos a formatear. Si no le pasamos la variable timestamp nos devuelve la cadena formateada para la fecha y la hora actual. Los principales códigos de formato para la función date son: Código a A d D F h H i L

Descripción Código am o pm j AM o PM t Día del mes con ceros m Abreviatura del día de la semana (inglés) M Nombre del mes (inglés) s Hora en formato 1-12 y Hora en formato 0-23 Y Minutos z Indica si el año es bisiesto. Devuelve 1 si l es bisiesto, 0 en caso contrario. (L minúscula)

Descripción Día del mes sin ceros (1-31) Número de días en el mes dado. Número de mes (1-12) Abreviatura del mes (inglés) Segundos con ceros iniciales Año con 2 dígitos Año con 4 dígitos Día del año (1-365) Día de la semana (Sunday a Saturday)

Para consultar los demás códigos, se sugiere visitar el siguiente URL: Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 36

CENEAC - PHP MySQL Nivel 1 http://ve2.php.net/manual/es/function.date.php

Para ver algunos ejemplos supongamos que hoy es 31 de marzo de 2009 y que son las 14 horas 30 minutos y 22 segundos:  date("d-m-Y") -> 31-03-2009  date("H:i:s") -> 14:30:22  date("Y")

-> 2009

 date("YmdHis") -> 20090331143022  date("d/m/Y h:i a") -> 31/03/2009 2:30 pm

2.10.4. date_default_timezone_set (zona_horaria) Para establecer la zona horaria a utilizar para todas las funciones de fecha y hora se utiliza la función date_default_timezone_set(), la cual recibe como parámetro un string que representa la zona horaria a utilizar: America/Buenos_Aires

America/Chicago

Asia/Tel_Aviv

America/Jamaica

America/Los_Angeles

Australia/Sydney

America/Mazatlan

America/Caracas

Europe/Amsterdam

America/La_Paz

America/Mexico_City

Europe/Zurich

America/Puerto_Rico

Asia/Dubai

Europe/Rome

America/Santo_Domingo

Asia/Qatar

Pacific/Galapagos

America/Sao_Paulo

Asia/Seoul

Japan

Puede consultar las zonas horarias disponibles en este enlace: http://ve2.php.net/manual/es/timezones.php

También puede establecer la zona horaria a través del archivo de configuración de php (php.ini) mediante la siguiente directiva: date.timezone

2.10.5. srftime (formato, timestamp) La función strftime devuelve una cadena en formato de fecha, de acuerdo a un formato establecido y a un valor timestamp en el idioma establecido en la localidad actual, definida a través de la función setLocale() Los principales códigos de formato para esta función son: Código %a %A %b Código %B

Descripción Nombre abreviado del día de la semana de acuerdo a la localidad actual Nombre completo del día de la semana de acuerdo a la localidad actual Nombre abreviado del mes de acuerdo a la localidad actual Descripción Nombre completo del mes de acuerdo a la localidad actual

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 37

CENEAC - PHP MySQL Nivel 1 %d %m %y %Y %I %M %S

Día del mes como un número decimal (rango 01 a 31) Mes como un número decimal (rango 01 a 12) Año como un número decimal sin la centuria (rango 00 a 99) Año como un número decimal incluyendo la centuria Hora como número decimal usando un reloj de 12 horas (rango 01 a 12) Minuto como un número decimal Segundo como un número decimal

Para definir la localidad actual veamos el uso de la función setLocale().

2.10.6. setLocale (categoria, localización) La categoría es una constante que especifica cuales serán las funciones afectadas por el ajuste de localización:  LC_ALL para todas las funciones  LC_COLLATE para la comparación de cadenas.  LC_CTYPE para la conversión y clasificación de caracteres, como por ejemplo strtoupper()

 LC_MONETARY para localeconv(): http://ve2.php.net/manual/es/function.localeconv.php  LC_NUMERIC para el separador decimal (vea también localeconv())

 LC_TIME para el formateo de fecha y hora con strftime() La localización corresponde a una cadena que especifica el idioma: Localizacion esp eng ita fra

Descripción Español Ingles Italiano Frances

Puede consultar más sobre esta función en el siguiente enlace: http://ve2.php.net/manual/es/function.strftime.php

Ejemplo 24: Uso de la función setLocale() y strftime(). Nombre del archivo: formatear_fecha.php

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 38

CENEAC - PHP MySQL Nivel 1

2.10.7. checkdate (mes, día, año) La función checkdate comprueba si una fecha es válida, si es así devuelve TRUE y si no lo es FALSE. Una fecha se considera válida si el año está entre 1900 y 32767, el mes entre 1 y 12, y el día es menor o igual que número de días total del mes en cuestión. Ejemplo 25: Uso de la función checkdate(). Nombre del archivo: validar_fecha.php

Para el ejemplo anterior nos daría que la fecha es incorrecta, febrero nunca tiene un día 31. Ejercicios: Desarrolle las siguientes páginas Web. 1. Dada una dirección de correo electrónico (de la forma [email protected]) almacenada en una variable, verifique si dicha dirección es sintácticamente correcta, cumpliendo los siguientes requerimientos: a. Debe poseer el carácter ‘ @ ‘ b. El login debe tener entre 3 y 6 caracteres. c. El dominio debe tener entre 1 y 10 caracteres. d. Debe poseer el carácter ‘ . ‘ e. Luego del punto solo debe aparecer la cadena “com”. 2. Dada una fecha almacenada en un objeto tipo fecha, indique si corresponde con un año bisiesto o no. 3. Indique cuantos días han transcurrido del año actual. 4. Dadas dos fechas almacenadas en dos objetos del tipo fecha, verifique cuantos días de diferencia existe entre una fecha y otra. 5. Adapte el ejercicio anterior para que calcule la cantidad de días transcurrido desde su fecha de nacimiento y la fecha actual.

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 39

CENEAC - PHP MySQL Nivel 1

TEMA 3.

FORMULARIOS Los formularios no forman parte del lenguaje PHP, sino del lenguaje HTML, pero es necesario conocer sus elementos básicos, ya que después que un usuario interactúa con una página Web, el procesamiento de la información colocada en los campos de un formulario será a través de PHP. Es decir, la manera en la que un usuario introduce datos de entrada a la aplicación generalmente es por medio del uso de formularios HTML. Nota: Antes de empezar a conocer la sintáxis del formulario y sus objetos, es necesario recordar que en una página web se debe especificar la codificación de caracteres (charset) que soportará la misma, a fin de que acepte ciertos caracteres como los acentos. En nuestros ejemplos no colocamos la etiqueta que define la codificación y por esta razón en verán algunos simbolos html que sustituyen a los caracteres acentuados para su correcta visualización.

3.1 Etiqueta Formulario (Form) Todo formulario empieza con la etiqueta:


En el parámetro action indicamos a que página o script van a ser enviados los datos recopilados en el formulario para que sean procesados. El parámetro method indica la manera como serán enviados los datos. Puede ser por medio de dos métodos: GET y POST. En el método GET, los datos son enviados al servidor mediante un query string, es decir, son enviados por el URL siguiendo un formato predeterminado, por ejemplo: http://www.dominio.com/index.php?variable1=valor1&variable2=valor2&...&variableN=valorN

Tiene la restricción de solo aceptar un número finito de caracteres en el URL, y su principal uso es el de facilitar la navegación de las páginas en los links. En el método POST, los datos son enviados al servidor en la negociación entre el cliente y el servidor, no en el URL. Esta es la forma más segura de enviar información ya que no se muestran al usuario datos que pueden llegar a ser delicados. Existen ciertas variables predeterminadas de PHP que nos permiten manejar los datos enviados por un formulario. Estas variables son los arreglos $_GET, $_POST y $_REQUEST.  Si en un formulario se usa el método GET, las variables son colocadas en el arreglo $_GET.  Si en un formulario se usa el método POST, las variables son colocadas en el arreglo $_POST.  El arreglo $_REQUEST obtiene las variables pasadas por ambos métodos. Por ejemplo, consideremos el siguiente ejemplo donde recogemos los datos “nombre” y “email” en un formulario y estos son impresos en la siguiente página:

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 40

CENEAC - PHP MySQL Nivel 1 Ejemplo 26: Envio de datos a través de un formulario Nombre del archivo: formulario.html
Nombre: Email:


Nombre del archivo: procesar.php

Se procede de manera equivalente cuando el método utilizado es POST. La etiqueta indica el final del formulario. Todos los campos de entrada deben estar dentro del espacio limitado por las etiquetas
y
. Los campos de datos que pueden introducirse dentro de un formulario son:

3.2 Cuadro de texto (input text) Este tipo de campo permite introducir texto, solamente en una línea. Sintaxis de la etiqueta:

Atributos de la etiqueta:  type: indica que su tipo es texto  name: nombre que se le da al campo  value: valor por defecto que tendrá el campo  size: tamaño que tendrá el campo  maxlength: cantidad máxima de caracteres que pueden ser ingresados  readonly: atributo de sólo lectura Veamos un ejemplo con PHP:

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 41

CENEAC - PHP MySQL Nivel 1 Ejemplo 27: Uso del campo de texto. Nombre del archivo: equipo.html Equipo Favorito
Cuál es tu equipo de fúbol favorito?


Nombre del archivo: verequipo.php ".$_POST['equipo'].""; ?>

Se debe poner atención al parámetro name de un elemento del formulario ya que es el mismo nombre con el que se referenciará la variable en PHP, como se pudo observar en el ejemplo anterior, el elemento se maneja en PHP como $_POST[“equipo”]. De la misma manera se trabaja con todos los elementos de formularios.

3.3 Cuadro de texto con barras de desplazamiento (textarea) Este tipo de campo permite introducir texto pero en varias líneas, a diferencia del cuadro de texto normal que solo permite una línea. Sintaxis de la etiqueta:

Atributos de la etiqueta:  name: nombre que se le da al campo

Es de color rojo

 value: valor por defecto que tendrá el campo  cols: número de columnas  rows: número de filas

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 42

CENEAC - PHP MySQL Nivel 1 Ejemplo 28: Programa PHP que pide al usuario sus sitios web favoritos y los muestra como salida. Nombre del archivo: sites.html Sitios Web Favoritos
Indica tus sitios web favoritos:


Nombre del archivo: sites.php Tus sitios web favoritos son:
".$_POST['websites'].""; ?>

3.4 Casilla de verificación (checkbox) Las casillas de verificación permiten al usuario seleccionar de un conjunto una o más opciones. Sintaxis de la etiqueta:

Atributos de la etiqueta:  type: indica que su tipo es checkbox  name: nombre que se le da al campo  value: valor que se envía cuando la opción se encuentra seleccionada  checked: indica que la casilla de verificación aparecerá seleccionada por defecto.

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 43

CENEAC - PHP MySQL Nivel 1 Ejemplo 29: Programa que pregunta lo que haces al levantarte y lo despliega como salida. Nombre del archivo: checkboxes.html Tareas al levantarse
Qué haces cuando te levantas?

Lavarme la cara Cepillarme los dientes Desayunar



Nombre del archivo: checkboxes.php Tus tareas al levantarte son:


3.5 Botón de opción (radio button) Este tipo de campo permite seleccionar solamente una opción de un conjunto de ellas. Hay que tomar en cuenta que todas las opciones que pertenecen al mismo conjunto deben tener el mismo nombre. Sintaxis de la etiqueta:

Todas las opciones del mismo conjunto deben llamarse de la misma forma Atributos de la etiqueta:  type: indica que su tipo es radio  name: nombre que se le da al campo  value: valor de la opción  checked: si aparece escrito, le indica al botón que la opción ha sido seleccionada Por ejemplo, si se quiere colocar dos botones de opción para representar los valores Masculino y Femenino, las instrucciones serían: Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 44

CENEAC - PHP MySQL Nivel 1

Ejemplo 30: Programa que presenta una suma, y se debe elegir la respuesta entre tres opciones posibles y la salida muestra la opción seleccionada e indica si es la correcta. Nombre del archivo: radio.html Suma
Cuál es el resultado de 2+2?

44
22
4



Nombre del archivo: radio.php Tu respuesta es correcta"; } else { echo "
Tu respuesta es incorrecta, el valor correcto es 4"; } ?>

3.6 Menú desplegable (select) Este tipo de campo muestra una lista desplegable con un conjunto de opciones, de las cuales el usuario puede seleccionar una o varias opciones. Sintaxis de la etiqueta: <select name="valor" size="1">

Atributos de la etiqueta:  name: nombre que se le da al campo

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 45

CENEAC - PHP MySQL Nivel 1  option: etiqueta donde se coloca cada una de las opciones  value: valor que será enviado cuando se encuentre seleccionado dicha opción.  selected: selecciona por defecto a la opción cuando se cargue la lista Ejemplo 31: Programa que pregunta opciones para armar una computadora y despliega las opciones elegidas Nombre del archivo: lista.html Partes de Computadora
Elige la computadora a comprar

<select name="compu">

Selecciona los dispositivos de la computadora:

<select name="dispo[]" multiple>


Nombre del archivo: lista.php ".$dispo[$cont]; $cont++; } ?>

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 46

CENEAC - PHP MySQL Nivel 1

3.7 Campo oculto (input hidden) Este campo tiene un comportamiento similar a una variable, ya que no es visible al usuario en la página. Su uso radica en el almacenamiento de valores que son utilizados por el programador de manera transparente, ya que se asigna predeterminadamente el valor a la variable y esta no puede ser modificada por el usuario. Resulta entonces especialmente útil cuando queremos pasar datos ocultos en un formulario. Sintaxis de la etiqueta:

3.8 Campo archivo (file) Este campo se utiliza para que el usuario pueda enviar archivos desde el cliente hasta el servidor. Sintaxis de la etiqueta:

La información de este archivo se almacena en un arreglo predeterminado del PHP llamado $_FILES. Cuyos campos principales son:  name: nombre del archivo con extensión ( $_FILES[“name”] )  tmp_name: nombre del archivo luego de haber sido cargado por el browser y colocado en el temporal 

( $_FILES[“tmp_name”] )

 error: indica si hubo error en la operación ( $_FILES[“error”] )  size: tamaño del archivo ( $_FILES[“size”] )  type: tipo de archivo ( $_FILES[“type”] ) Es importante destacar que para el correcto funcionamiento de este campo, se debe colocar un atributo adicional enctype="multipart/form-data" en la etiqueta form, la cual debe quedar así:


3.9. Ejemplos de formularios Los siguientes ejemplos necesitan más código PHP, como son ciclos y arreglos, implementándolos en conjunto con los formularios. Ejemplo 32: Para el uso del ciclo FOR un programa para créditos bancarios Nombre del archivo: banco.html Crédito bancario ¿Cuál de estos paquetes te interesa tomar?

Paquete de Bs. 100 con el 5.0% de interés


Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 47

CENEAC - PHP MySQL Nivel 1 Paquete de Bs. 500 con el 6.5% de interés
Paquete de Bs. 1000 con el 8.0% de interés

¿Cuánto puedes pagar al mes?


Nombre del archivo: banco.php 0) { $duracion=$duracion+1; $mensualmente = $_POST["pagomes"]-($_POST["valor"]*$interes/100); if ($mensualmente<=0) { echo "¡Tu necesitas hacer pagos de mayor monto!"; break; } $_POST["valor"] = $_POST["valor"] - $mensualmente; } if ($mensualmente>0) echo "La duración es de: $duracion meses con un interes del $interes %"; ?>

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 48

CENEAC - PHP MySQL Nivel 1 Ejemplo 33: El siguiente programa demuestra como se pueden trabajar los arreglos como elementos hash Nombre del archivo: estados.php Estados de Venezuela
¿De qué estado te gustaría conocer su capital?

<select name="estado"> $estados[$counter]"; } ?>


Nombre del archivo: capital.php Capitales de Venezuela

Como se puede observar, ambos archivos tienen extensión .php, esto se debe a que es necesario ejecutar código PHP en los dos, para poder formar dinámicamente las dos páginas. A continuación se trabajará con un ejemplo en donde se manejan varios elementos de formulario juntos.

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 49

CENEAC - PHP MySQL Nivel 1 Ejemplo 34: Programa en PHP que le pide al usuario el nombre (text box), apellido (text box), edad (text box), domicilio (text area), que seleccione el rango de sueldo que le gustaría ganar (list box) y que seleccione como considera su desempeño laboral (radio button). El programa deberá destacar como “no convenientes a nuestros requisitos” las opciones donde se elija un sueldo muy bajo, un sueldo extremo o si la persona considera su desempeño laboral como pésimo. Nombre del archivo: minicu.html MiniCurriculum
Nombres:
Apellidos:
Edad:
Dirección:
¿Qué salario quieres ganar? <select name="salario">
¿Cómo consideras tu desempeño?
Pésimo
Regular
Excelente


Nombre del archivo: minicu.php Procesamiento del MiniCurriculum Sr(a). En base a su edad , sus aspiraciones económicas y su auto estimación hemos determinado que:
"; echo "Su desempeño elegido: {$_POST['desempe']}
"; if (($_POST['salario']==0)||($_POST['salario']==5000)||($_POST['desempe']=="Pesimo")) {

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 50

CENEAC - PHP MySQL Nivel 1 echo "Sus aspiraciones no concuerdan con nuestros requisitos"; } else { echo "Sus aspiraciones concuerdan satisfactoriamente con nuestros requisitos"; } ?>

Ejemplo 35: Formulario completo con su procesamiento. El siguiente es un ejemplo completo de una página que contiene un formulario con todos los tipos de campos y su respectivo procesamiento por una página PHP (en este caso, se imprimirán por pantalla los datos introducidos por el usuario). 1. Crear el formulario y guardar el archivo con el nombre registro_usuario.php a. Crear un formulario y en el atributo action de la etiqueta
colocar procesar_registro.php b. Dentro del formulario crear una tabla de 13 filas x 2 columnas. c. Combinar las celdas de la primera y última fila. d. En la primera fila escribir como título: “Registro de Usuario” e. En cada fila colocar un campo, como lo indica la siguiente tabla:

Fila 2 3 4 5

Nombre del campo cedula nombre apellido estado

Etiqueta

Tipo

Cédula: Nombre: Apellido: Estado donde nació:

Text Text Text List/Menu

8 20 20

35x5

6 7

direccion dia mes ano

Dirección: Día: Mes: Año:

TextArea List/Menu List/Menu List/Menu

8

sexo sexo h1 h2 h3 h4 h5

Masculino Femenino Leer Cine Música Deportes Cocina

Radio button Radio button CheckBox CheckBox CheckBox CheckBox CheckBox

9

Longitud

Valores

0=”” 1=Aragua 2=Carabobo 3=Distrito Capital 4=Miranda 5=Mérida 6=Trujillo 7= Zulia Se generarán dinámicamente con PHP ( ver paso f ) M F Leer Cine Música Deportes Cocina

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 51

CENEAC - PHP MySQL Nivel 1

10 11 12 13 f.

h6 email login password Enviar Borrar

Bailar E-mail: Nombre de Usuario: Contraseña: Enviar Borrar

CheckBox Text Text Text (Password) Button (Submit) Button (Reset)

Bailar 50 8 8 8

La idea de generar dinámicamente los combobox para los días y los años es para que el programador no tenga que introducir manualmente cada uno de estos números. La manera como se genera se describe a continuación. Como se sabe, la sintaxis para un combo box o list/menu es: <select name="dia"> ...

Entonces la idea es generar dinámicamente la parte en el rango de [1,31] para los días, por ejemplo. Para esto usamos un ciclo FOR en PHP, y sustituimos el código html anterior por: <select name="dia"> $i \n"; } ?>

Se hace de la misma manera para el campo año, diferenciando el rango en el cual va a iterar el ciclo FOR (por ejemplo, desde el año 1950 hasta el año actual). <select name="ano"> $i \n"; } ?>

g. Guardar la página.

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 52

CENEAC - PHP MySQL Nivel 1

Formulario registro_usuario.php

2. Creación de la página procesar_registro.php que procesa la información colocada por el usuario en la página registro_usuario.php.

a. Hacer una copia de la página registro_usuario.php y guardarla con el nombre procesar_registro.php. b. Eliminar la fila que contiene los botones de “Enviar” y “Borrar”. c.

En el código del formulario eliminar las siguientes etiquetas de html que corresponden a la definición del formulario:


d. Sustituir las etiquetas de los campos, por el código que se encuentra en negrita en el código siguiente:

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 53

CENEAC - PHP MySQL Nivel 1

echo echo echo echo echo

strtoupper($_POST["h2"])." strtoupper($_POST["h3"])." strtoupper($_POST["h4"])." strtoupper($_POST["h5"])." strtoupper($_POST["h6"])."


";
";
";
";
";

Registro de Usuario
Cédula:
Nombre:
Apellido:
Estado donde nació:
Dirección:
Fecha de Nacimiento:
Sexo:
Pasatiempos: ";

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 54

CENEAC - PHP MySQL Nivel 1 if (isset($_POST["h2"])) if (isset($_POST["h3"])) if (isset($_POST["h4"])) if (isset($_POST["h5"])) if (isset($_POST["h6"])) ?>
Correo Electrónico:
Nombre de Usuario:
Contraseña:


e. Grabar los cambios realizados en la página. f.

Ejecutar el formulario “registro_usuario.php”, llenar los campos y presionar el botón “Enviar”.

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 55

CENEAC - PHP MySQL Nivel 1

TEMA 4.

MANEJO DE ARCHIVOS Un usuario puede enviar a través de un formulario un archivo de texto ó binario, para que luego este pueda ser almacenado en el servidor. El PHP posee la capacidad de manejar estos archivos, pudiendo acceder a sus principales atributos como lo son el nombre, el tamaño, el tipo de archivo, entre otros. También se pueden acceder archivos de texto o binarios, que se encuentren en un directorio especifico, para manipularlos con distintas funciones predeterminadas del PHP, las cuales se presentarán más adelante.

4.1 Envío de archivos a través de un formulario Los formularios en html permiten el envío de texto así como también el envío de archivos. Como se vio en el capítulo anterior, la etiqueta html
cuenta con un atributo llamado enctype, el cual especifica el tipo de contenido que se envia del formulario al servidor (cuando el método usado es “post”). El valor predeterminado para este atributo es “application/x-www-form-urlencoded”, el cual permite el envío de cadenas de caracteres. Sin embargo, si se desea enviar un archivo adjunto, el valor que se debe colocar es “multipart/form-data” en combinación con el elemento INPUT type=”file”. Ejemplo de la etiqueta form para enviar archivos:

Repasando lo expuesto en el capítulo anterior, la información referente al archivo enviado se almacena en un arreglo predeterminado del PHP llamado $_FILES, cuyos índices principales son:  name: nombre del archivo con extensión ( $_FILES[“name”] )  tmp_name: nombre del archivo luego de haber sido cargado por el navegador y colocado en la carpeta temporal del servidor. ( $_FILES[“tmp_name”] )  error: indica si hubo error en la operación ( $_FILES[“error”] )  size: tamaño del archivo en bytes ( $_FILES[“size”] )  type: tipo de archivo MIME ( $_FILES[“type”] ) A continuación una lista de algunos de los tipos de archivo MIME soportados: Descripción Tipo Descripción Tipo .bmp image/bmp .mp3 audio/mpeg3 .css text/css .mpg video/mpeg .doc application/msword .pdf application/pdf .gif image/gif .ppt application/powerpoint .gzip multipart/x-gzip .text text/plain .html text/html .tgz application/x-compressed .jpg image/jpeg .tiff image/tiff .midi audio/midi .txt text/plain .wav audio/wav .word application/msword .xlm application/x-excel .xls application/x-excel .xml text/xml .zip application/zip

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 56

CENEAC - PHP MySQL Nivel 1 Luego de que se envía la información del formulario, el archivo enviado es colocado en directorio como archivo temporal. Para poder pasarlo a una ubicación definitiva dentro del servidor, se debe utilizar la siguiente función: bool move_uploaded_file(string archivo, string destino)

Esta función realiza un chequeo para asegurar que el archivo indicado por archivo haya sido cargado a través del mecanismo de carga HTTP POST de PHP. Si el archivo es válido, será movido al nombre de archivo dado por destino. Una función que puede complementar el uso de esta función es: is_uploaded_file (). bool is_uploaded_file (string archivo)

Devuelve TRUE si el archivo dado por archivo fue cargado a través de HTTP POST. Ejemplo 36: Página que contiene un formulario que envía un archivo a otra página que procesa la información y dependiendo de ciertos requerimientos se almacena en el servidor (el archivo debe ser de tipo jpg y no pesar más de 500Kb). Nombre del archivo: captura_archivo.php Envío de archivos <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> Seleccione el archivo a enviar:


Nombre del archivo: procesar_archivo.php

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 57

CENEAC - PHP MySQL Nivel 1

4.2 Funciones para el manejo de archivos int fopen(string nombre, string modo)

 Abre un archivo o URL  Si se coloca en nombre el sufijo “http://” abre una conexión http 1.0 a esa dirección y retorna un apuntador a ese archivo.  Si se coloca en nombre el sufijo “ftp://” abre una conexión ftp pasiva a esa dirección y retorna un apuntador a ese archivo. Se puede abrir de lectura o de escritura, pero no ambas.  Si el nombre no contiene ninguno de esos prefijos, abre el archivo desde el manejador de archivos del sistema operativo del servidor.  Si falla la referencia a ese archivo devuelve falso. El parámetro mode puede ser: Modo r

Descripción Abre el archivo para sólo lectura, sitúa el apuntador al principio

r+

Abre el archivo para lectura y escritura, sitúa el apuntador al principio

w

Abre el archivo para sólo escritura, sitúa el apuntador al principio y trunca la longitud a cero, si no existe trata de crearlo

w+ a a+ x x+ b

Abre el archivo para lectura y escritura, sitúa el apuntador al principio y trunca la longitud a cero, si no existe trata de crearlo Abre el archivo para sólo escritura, sitúa el apuntador al final, si no existe trata de crearlo Abre el archivo para lectura y escritura, sitúa el apuntador al final, si no existe trata de crearlo Crea y abre el archivo para sólo escritura, sitúa el apuntador al principio, si existe devuelve falso, si no existe trata de crearlo Crea y abre el archivo para lectura y escritura, sitúa el apuntador al principio, si existe devuelve falso, si no existe Se incluye aparte de las demás letras. Abre el archivo en modo binario, donde esté disponible.

int fwrite (int apuntador, string datos[,int long])

Escribe el contenido de datos en el archivo apuntado por apuntador. Si long está definido, escribira tantos caracteres lo indique o hasta que se alcance el final de datos (lo que ocurra primero). string fread (int apuntador, int long)

Lee de un archivo apuntado por apuntador tantos bytes indicados por alcanzan long bytes o se llega al final del archivo EOF.

long.

La lectura acaba cuando se

El lenguaje PHP cuenta con otras funciones para el manejo de archivos, se recomienda revisar la sintaxis de cada una de ellas en la documentación encontrada en la página oficial http://www.php.net:

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 58

CENEAC - PHP MySQL Nivel 1  chmod: Cambia permisos de un archivo  chown: Cambia el propietario de un archivo  copy: Copia un archivo  dirname: Devuelve la parte del path correspondiente al directorio  disk_free_space: Devuelve el espacio disponible en el directorio  disk_total_space: Devuelve el tamaño total de un directorio  fclose: Cierra el apuntador a un archivo abierto  feof: Verifica si el apuntador a un archivo está al final del archivo  fgetc: Obtiene un carácter del archivo apuntado  fgetcsv: Obtiene una línea del archivo apuntado y extrae los campos CSV  fgets: Obtiene una línea desde el apuntador de archivo  file_exists: Verifica si un archivo o directorio existe  file_get_contents: Lee un archivo entero en una cadena  file_put_contents: Escribir una cadena sobre un archivo  fileatime: Obtiene la hora del último acceso al archivo  filemtime: Obtiene la hora de modificación del archivo  filesize: Obtiene el tamaño del archivo  filetype: Obtiene el tipo de archivo  ftruncate: Trunca un archivo a la longitud dada  is_dir: Indica si el nombre de archivo es un directorio  is_executable: Indica si el archivo es ejecutable Ejemplo 37: Página que simula un contador de visitas. Nombre del archivo: contador.php $contador
"; $fp=fopen ($archivo,"w"); fwrite ($fp,$contador); fclose ($fp); ?>

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 59

CENEAC - PHP MySQL Nivel 1

TEMA 5. MYSQL: CREACIÓN Y MANEJO DE BASES DE DATOS Hoy en día son muchas las aplicaciones que necesitan acceder a datos, los cuales deben ser almacenados en algún medio de manera permanente, y las aplicaciones deben disponer de una herramienta para acceder a ellos. De esta manera surgen entonces los Sistemas Manejadores de Bases de Datos (SMBD), los cuales proporcionan una interfaz entre las aplicaciones y Sistema Operativo, logrando que el acceso a los datos se realice de una manera mas eficiente, más fácil de implementar y sobre todo más segura.

5.1 Introducción a MySQL y principales características El lenguaje que se utiliza para realizar esta tarea es el SQL (Structured Query Language), el cual como su nombre lo indica, es un lenguaje de consulta estructurado, que sirve para comunicarse con el Sistema Manejador de la Base de Datos y realizar operaciones de consulta, modificación, eliminación, inserción de datos y otras operaciones relacionadas con la administración de la Base de Datos. En el ámbito del software libre, existen varios Manejadores de Bases de Datos, entre los cuales están: MySQL, Postgree, SQLite, Sybase ASE Express. Durante el curso se hará enfoque en el SMBD más popular en el ambiente web: MySQL, que actualmente se encuentra en su versión 5.1. El MySQL es un SMBD de Fuente Abierta, lo que quiere decir que es un software que puede ser usado y modificado por cualquiera, es gratuito y se puede descargar desde Internet, además se encuentra bajo licencia GPL de la GNU. Entre las características principales de MySQL se tienen:  Es un sistema multihilo que sigue la arquitectura Cliente/Servidor además de soportar sistemas multiprocesador.  Es portable, lo que quiere decir que trabaja en distintas plataformas (Windows, Linux, etc.).  APIs disponibles para C, C++, Eiffel, Java, Perl, PHP, Python, Ruby.  Con respecto a la seguridad, maneja permisología y encriptación de datos, entre otras funcionalidades.  Posee una amplia gama de tipos de datos.  La interfaz para el conector ODBC proporciona a MySQL soporte para programas clientes que usen conexiones ODBC (Open Database Connectivity). Por ejemplo, puede usar MS Access para conectar al servidor MySQL.  Soporta transacciones ACID (Atomic, Consistent, Isolated, Durable).  Cuenta con integridad referencial y verificación de datos.  Se permiten hasta 64 índices por tabla. Cada índice puede consistir desde 1 hasta 16 columnas.  Soporte a grandes bases de datos. Se usa MySQL Server con bases de datos que contienen 50 millones de registros. También existen usuarios que con 60.000 tablas y cerca de 5.000.000.000.000 de registros.

5.2 Instalación de MySQL Se puede descargar MySQL desde el siguiente enlace: http://dev.mysql.com/downloads/mysql/5.1.html#downloads

Seleccione el archivo instalador dependiendo del Sistema Operativo a utilizar.

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 60

CENEAC - PHP MySQL Nivel 1

5.3 Conexión con MySQL Para trabajar con el MySQL desde la consola la conexión al servidor se debe realizar de la siguiente manera: C:\mysql\bin>mysql.exe ––user root –-password Enter Password: ******** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.0.51b-community-nt MySQL Community-Edition (GPL) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>

Donde se ubica el directorio bin, en el directorio mysql, y se ejecuta el archivo mysql.exe, pasándole como parámetros –-user [nombre del usuario] –-password [contraseña]. Luego de ejecutarse la autenticación del usuario en el sistema, aparecerá el prompt del mysql, y es ahí donde se escribirán las instrucciones ó comandos a ejecutar. Para desconectarse del servidor: mysql> QUIT Bye C:\mysql\bin>

5.4 Uso de la aplicación PhpMyAdmin El PhpMyAdmin es una aplicación Web escrita en lenguaje PHP, que sirve como herramienta para administrar un servidor de Base de Datos MySQL. El PhpMyAdmin puede realizar, entre otras, las siguientes tareas:  Examinar y eliminar bases de datos, tablas, vistas, campos e indices.  Crear, copiar, eliminar, renombrar y alterar bases de datos, tablas, campos e indices.  Realizar mantenimiento del servidor, bases de datos y tablas.  Ejecutar, editar y almacenar cualquier instrucción SQL, incluyendo una serie de ellas.  Leer archivos de texto y almacenarlos dentro de tablas.  Exportar datos a distintos formatos: CSV, XML, PDF, ISO/IEC 26300, Word, Excel y Latex.  Administrar múltiples servidores.  Manejar usuarios y privilegios.  Chequear la integridad referencial en tablas INNODB.

1. Instalación y configuración del PhpMyAdmin Para realizar la instalación y configuración del PhpMyAdmin en el servidor se deben realizar los siguientes pasos:  Descargar la herramienta desde su sitio Web http://www.phpmyadmin.net  A continuación se debe descomprimir en el directorio raíz del servidor web.  Se edita a continuación el archivo config.inc.php y se definen las directivas de la siguiente manera: $cfg['blowfish_secret'] = 'ba17c1ec07d65003';

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 61

CENEAC - PHP MySQL Nivel 1 $i = 0; $i++; /* tipo de autenticación */ $cfg['Servers'][$i]['auth_type'] = 'cookie'; /* Parámetros del servidor */ $cfg['Servers'][$i]['host'] = 'localhost'; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['compress'] = false; $cfg['Servers'][$i]['extension'] = 'mysqli'; $cfg['UploadDir'] = ''; $cfg['SaveDir'] = '';

Es posible crear el archivo config.inc.php a partir del archivo config.sample.inc.php el cual tiene una configuración por defecto. Para mas detalle sobre la configuración de las directivas consulte el siguiente enlace: http://www.phpmyadmin.net/documentation/

Luego de haber ejecutado los pasos anteriores, se puede comenzar a utilizar la herramienta. Se debe escribir en el navegador el siguiente URL: http://localhost/phpmyadmin y aparecerá una pantalla como la siguiente, en la que debemos suminstrar un usuario válido con su contraseña con los privilegios de acceso adecuado al SMBD:

Nota: Para los efectos de este curso, utilice como usuario: php y como contraseña: php. Al iniciar la sesión en phpmyadmin, se mostrará la página principal, en donde encontraremos multiples opciones para administrar nuestra base de datos:

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 62

CENEAC - PHP MySQL Nivel 1

2. Creación de la Base de Datos Para crear una Base de Datos nueva en el servidor MySQL, se coloca el nombre de la nueva Base de Datos en la casilla “Crear nueva base de datos” y luego se hace clic en el botón “Crear”:

3. Creación de las Tablas A continuación se crea una tabla en la nueva base de datos “php_prueba”. La tabla se llamará “noticias” y estará constituida por tres campos, luego de llenar estas casillas se hace clic en el botón “Continuar”:

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 63

CENEAC - PHP MySQL Nivel 1 4. Configuración de los Campos de la tabla Ahora se deben colocar los atributos de los campos, como lo son: nombre, tipo de dato, longitud, etc.

Al finalizar de copiar los atributos de los campos se hace clic en el botón “Grabar” y aparecerá la siguiente ventana:

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 64

CENEAC - PHP MySQL Nivel 1 5. Agregar datos a la tabla Para agregar datos a la tabla, se selecciona la pestaña Insertar y se llenan el formulario. El campo id no es necesario colocarle un valor, ya que se declaró como campo auto-incrementable, por lo que el sistema automáticamente le asignará su valor, aumentando en 1 el valor que poseía ese campo en el registro anterior. Luego se hace clic en el botón “Continuar”.

6. Examinar los datos almacenados en la tabla Para examinar los datos almacenados en la tabla se hace clic en la pestaña “Examinar”. Aparecerán todos los registros almacenados en dicha tabla, y las opciones para editarlos ó eliminarlos.

5.5 Como usar la base de datos desde PHP PHP cuenta con una gran cantidad de funciones predeterminadas para el manejo de operaciones sobre MySQL. Todas estas funciones están documentadas en el sitio Web oficial de PHP, en el siguiente URL: http://www.php.net/manual/es/ref.mysql.php.

A continuación se presenta la sintaxis básica para las principales operaciones en SQL: Operación sobre una tabla

Sintaxis

Seleccionar todos los campos de todos los registros

SELECT * FROM editoriales

Seleccionar un campo especifico de todos los registros

SELECT id FROM editoriales

Seleccionar todos los campos de un registro dado

SELECT * FROM editoriales WHERE id=2

Seleccionar campos especificos de un registro dado

SELECT nombre, direccion FROM editoriales WHERE id=2

Insertar un registro nuevo

INSERT INTO editoriales (id, nombre, direccion) VALUES (3, "Nuevo Mundo", "Caracas")

Modificar un registro dado

UPDATE editoriales SET nombre=’Girasol’, direccion=’Valencia’ WHERE id=3

Eliminar todos los registros de una tabla

DELETE FROM editoriales

Eliminar un registro dado

DELETE FROM editoriales WHERE id=3

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 65

CENEAC - PHP MySQL Nivel 1 Ejemplo 38: Conexión con el SMBD y lectura de un registro de una tabla almacenada en una base datos. Nombre del archivo: conexion_mysql.php $nombre.
"; echo "Esta ubicada en $direccion."; // Se cierra la conexión al servidor MySQL mysql_close ($link); ?>

Las funciones para MySQL utilizadas son las necesarias para hacer operaciones básicas en la Base de Datos desde PHP. A continuación se analiza la sintaxis de cada una de estas funciones: 

mysql_connect (servidor, usuario, password)

Abre una conexión al servidor MySQL. En caso de ser exitosa, devuelve un identificador de la conexión, de lo contrario devuelve FALSE. 

mysql_select_db (nombre_bd, identificador_conexion)

Selecciona la Base de Datos con la cual se va a trabajar. Devuelve TRUE si todo se ha llevado a cabo correctamente, FALSE en caso contrario. 

mysql_query(query, identificador_conexion)

Ejecuta un query sobre la Base de Datos seleccionada.

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 66

CENEAC - PHP MySQL Nivel 1 En caso de que el query SQL sea SELECT, SHOW, DESCRIBE o EXPLAIN, la función devuelve un elemento resource en caso exitoso, y FALSE en caso contrario. Si el query es un UPDATE, DELETE, DROP, la función devuelve TRUE en caso exitoso y FALSE en caso de error. Esta función también fallará y retornará FALSE si el usuario no tiene la permisología necesaria para accesar la o las tablas referenciadas en la consulta. 

mysql_result (resource, numero_fila, campo)

Los elementos resource son creados al ser ejecutado un query. Por ejemplo: "SELECT * FROM editorial"

Esta consulta devuelve todos los registros, con todos los campos de la tabla editorial: id

nombre

direccion

1

Grupo Santillana Venezuela

Av. Rómulo Gallegos, Edificio Zulia, PB, Sector Monte Cristo, Boleíta. Caracas – Venezuela

2

Editorial Norma C.A.

Calle 8 Edificio Lance, Piso 2, Urbanización La Urbina. Gran Caracas - Caracas - Venezuela

Por lo tanto, esta información es retornada en un elemento resource, el cual no es más que una matriz, de 2 filas con 4 columnas (id, nombre, direccion). Si se ejecuta la siguiente instrucción: $ci = mysql_result ($res, 0, "nombre"),

Se obtiene como resultado: Grupo Santillana Venezuela. 

mysql_num_rows (resource)

Devuelve el número de registros resultantes de la ejecución exitosa de un query SQL. 

mysql_fetch_array (resource, [tipo])

Devuelve las filas o los registros que se encuentran almacenados en el elemento resource como una tabla asociativa, en donde los índices del arreglo resultante son los nombre de las columnas de la consulta ejecutada. Esta función retorna un solo registro moviéndose hacia el siguiente luego de realizar la operación. Cuando no hay mas registros que retornar devuelve FALSE. El segundo argumento opcional, es una constante y puede tomar los siguientes valores: MYSQL_ASSOC, MYSQL_NUM, y MYSQL_BOTH. Usando MYSQL_BOTH, usted obtendrá una matrix con índices asociativos y numéricos. Usando MYSQL_ASSOC, usted solo tendrá índices asociativos, usando MYSQL_NUM, solo obtendrá los índices numéricos. Si se ejecuta la siguiente instrucción: $registro = mysql_fetch_array ($res, MYSQL_ASSOC); echo $registro ["nombre"];

Se obtiene como resultado: Grupo Santillana Venezuela. 

mysql_close(identificador_conexion)

Cierra la conexión al servidor MySQL identificada por el parámetro identificador_conexion. Devuelve TRUE si la conexión se ha cerrado correctamente y FALSE en caso contrario.

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 67

CENEAC - PHP MySQL Nivel 1 Ejemplo 39: Se tiene una primera página donde se seleccionará un usuario para posteriormente actualizar sus datos. Nombre del archivo: listar_usuario.php

El código fuente para generar este listado de manera dinámica desde el contenido de la tabla “usuario” de la base de datos MySQL es el siguiente: Listar Usuarios <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
Seleccione el usuario a modificar:

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 68

CENEAC - PHP MySQL Nivel 1 while ($registro = mysql_fetch_array ($res, MYSQL_ASSOC)) { ?>



Ejemplo 40: Se muestra en un formulario los datos asociados al usuario seleccionado (ejemplo 38), para que puedan ser modificados y almacenados nuevamente en la base de datos. Nombre del archivo: modificar_usuario.php

El código fuente asociado a esta página es el siguiente:

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 69

CENEAC - PHP MySQL Nivel 1 Modificar Usuario <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
Datos del Usuario:


Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 70

CENEAC - PHP MySQL Nivel 1
id: " size="5" readonly="readonly">
cédula: " size="15">
nombre: " size="30">
apellido: " size="30">
email: " size="50">



Ejemplo 41: En la siguiente página se muestra un mensaje confirmando el cambio de los datos, en el caso de que no se haya podido efectuar el cambio se muestra un mensaje de error. Nombre del archivo: actualizar_usuario.php

El código asociado a esta página es:
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 71

CENEAC - PHP MySQL Nivel 1 // Se selecciona la base de datos a utilizar $db_sel = mysql_select_db ('php_libreria', $link); if (!$db_sel) { die ('No se pudo seleccionar la base de datos: ' . mysql_error()); } // Se ejecuta el query SQL // Se actualiza el registro que fue seleccionado $query = "UPDATE usuario SET cedula=$cedula, nombre='$nombre', apellido='$apellido', email='$email' WHERE id=$id"; $res = mysql_query ($query,$link); // Se cierra la conexión al servidor MySQL mysql_close ($link); ?> Modificar Usuario <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
Datos del Usuario:
<strong>Los datos han sido modificados exitosamente! <strong>Los datos no pudieron ser modificados!

id:
cédula:
nombre:
apellido:
email:


Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 72

CENEAC - PHP MySQL Nivel 1 El procedimiento para insertar o eliminar registros de la tabla es similar, lo único que cambia es la sintaxis de la instrucción o query SQL. En los siguientes ejercicios se practicará como realizar estos procedimientos. Ejercicios: 1. A partir de las siguientes estructuras, cree las diferentes tablas en MySQL que integrarán la base de datos. Usuario: Campo Id (PK) nombre apellido login password

Tipo de dato int varchar varchar varchar varchar

Tamaño 20 40 40 20 20

Extra auto-incrementable

Editorial: Campo Id (PK) nombre RIF direccion

Tipo de dato int varchar varchar varchar

Tamaño 20 40 40 200

Extra auto-incrementable

Libro: Campo Id (PK) titulo autor1 autor2

Tipo de dato int varchar varchar varchar

Tamaño 20 100 50 50

Extra auto-incrementable

2. Desarrolle páginas Web que permitan realizar los siguientes requerimientos: a. Ingresar nuevos usuarios, nuevas editoriales y nuevos libros. b. Listar las editoriales existentes. c. Eliminar un libro de la Base de Datos. d. Modificar los datos de un usuario ya registrado. e. Autenticar un usuario registrado, pidiendo su login y password.

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 73

CENEAC - PHP MySQL Nivel 1

TALLERES DE EJERCICIOS

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 74

CENEAC - PHP MySQL Nivel 1

TALLER 1. CONSOLIDACIÓN DEL USO DE FORMULARIOS Y ALMACENAMIENTO EN BASE DE DATOS PARTE 1. CREACIÓN DE LOS SCRIPTS DE CONEXIÓN A LA BASE DE DATOS (inicio y fin de la conexión PHP) 1. Dentro de la carpeta scripts agregue dos archivos y escriba en ellos los siguientes códigos utilizados para establecer las operaciones de configuración, conexión y desconexión a la base de datos utilizada en este proyecto Web:

Archivo: conexion.php
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 75

CENEAC - PHP MySQL Nivel 1 function cerrarConexion() // 4. se cierra y libera la conexión { global $id_c; if ($id_c) // si hay un identificador de conexión a bdd abierta mysql_close($id_c); } function getNumFilas($res) { // indica cantidad de filas obtenidos en la consulta $res return @mysql_num_rows($res); } function getFila($res) { // devuelve los datos de una fila en particular como una tabla o arreglo asociativo, // automáticamente avanza al siguiente registro del resultado return @mysql_fetch_array($res); } ?>

Archivo: config.ini.php

("_servidor", "localhost"); // o la IP del servidor donde está la bdd ("_bd", " phpFerreteria "); // o el nombre de la bdd donde quiere conectar, p.e., librerias ("_usuario", "php"); // usuario por defecto de mySQL root y sin contraseña ("_ctr", "php");

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 76

CENEAC - PHP MySQL Nivel 1

EJERCICIO 1. CATÁLOGO DE PRODUCTOS (página catálogo.php) PARTE 1. INICIO DE LA CONEXIÓN Y CONSULTA DE LOS PRODUCTOS Error:" .mysql_error()); } // 3. Consultamos la información de todos los productos $query = "SELECT codProducto, nombre, precio, imagen FROM productos ORDER BY precio"; $res = ejecutarQuerySQL($query); $total = getNumFilas($res); // funcion que obtiene cantidad de filas de la consulta ?>

PARTE 2. TABLA DE RESULTADOS O LISTADO DE PRODUCTOS

Catálogo de Productos Disponibles

No hay productos disponibles.
"; else { ?> "; echo ""; echo ""; echo ""; echo ""; echo ""; $i++; } ?>
Cód. Nombre Precio Bs. Imagen
". $actual['codProducto'] ."". $actual['nombre'] ."". $actual['precio'] ."


PARTE 3. CERRAR LA CONEXIÓN A LA BDD

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 77

CENEAC - PHP MySQL Nivel 1

EJERCICIO 2. CATÁLOGO DE PRODUCTOS, VERSIÓN NRO. 2 (se agregará en la misma página catalogo.php, a continuación del primer listado)

PARTE 2. TABLA DE RESULTADOS O LISTADO DE PRODUCTOS


Ejemplo Nro 2 de Listado, tipo Catálogo

No hay productos disponibles.
"; else { ?> "; while ($i < $total) { $actual = getFila($res); // se obtiene la información de cada producto // guardando el valor de cada campo en una variable $imagen = $actual['imagen']; $nombre = $actual['nombre']; $codProducto= $actual['codProducto']; $precio = $actual['precio']; echo ""; } ?>
"; echo "
"; echo "$nombre (cód. $codProducto )
"; echo "Bs. $precio
"; // opciones de modificación y eliminación para cada producto ?>

" target="_parent" > modif     " target="_parent" > elim "; $i++; if ($i % 3 == 0) echo "


Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 78

CENEAC - PHP MySQL Nivel 1

EJERCICIO 3. PÁGINA DE MODIFICACIÓN DEL PRODUCTO (página productoModificar.php) PARTE 1. INICIO DE LA CONEXIÓN Y CONSULTA DE LOS PRODUCTOS Error:" .mysql_error()); } ?>

PARTE 2. FORMULARIO DE MODIFICACIÓN DEL PRODUCTO

Modificación del Producto

"; else { // se muestran los datos actuales del producto $actual = getFila($res); // se obtiene la información del producto $nombre = $actual['nombre']; $precio = $actual['precio']; $codFabricante = $actual['codFabricante']; ?>







PARTE 3. CERRAR LA CONEXIÓN A LA BDD Igual que en el Ejercicio 1

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 80

CENEAC - PHP MySQL Nivel 1

EJERCICIO 4. PÁGINA QUE GUARDA LA INFORMACIÓN MODIFICADA DEL PRODUCTO (página productoGuardar.php) PARTE 1. INICIO DE LA CONEXIÓN Y CONSULTA DE LOS PRODUCTOS Igual que en ejercicio 3

PARTE 2. CONFIRMACIÓN DE LA MODIFICACIÓN DEL PRODUCTO

Confirmación de la Modificación del Producto


=

// 3. actualizamos la información del producto en la BDD $query = "UPDATE productos SET nombre = '$nombre', precio = $precio, codFabricante = $codFabricante WHERE codProducto = $cod"; $res = ejecutarQuerySQL($query); // 4. se confirma la modificación echo "

El siguiente producto ha sido modificado exitosamente:

"; echo ""; echo "$nombre (Cód: $cod), precio Bs.: $precio, Cód. Fabricante: $codFabricante"; echo ""; echo "



"; // 5. enlace de regreso al catálogo echo "
Regresar al Catálogo
"; ?>

PARTE 3.

CERRAR LA CONEXIÓN A LA BDD

Igual que en el Ejercicio 3

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 81

CENEAC - PHP MySQL Nivel 1

EJERCICIO 5. PÁGINA DE ELIMINACIÓN DEL PRODUCTO (página productoEliminar.php) PARTE 1. INICIO DE LA CONEXIÓN Y CONSULTA DE LOS PRODUCTOS Igual que en ejercicio 3

PARTE 2. CONFIRMACIÓN DE LA ELIMINACIÓN DEL PRODUCTO

Confirmación de la Eliminación del Producto

"; else { // 4. eliminamos la información del producto en la BDD $query = "DELETE FROM productos WHERE codProducto = $cod"; $res = ejecutarQuerySQL($query); // 5. se confirma la eliminación echo "
El producto con Cód. $cod ha sido eliminado exitosamente.
"; } echo "

"; // enlace de regreso al catálogo echo "
"; ?>

PARTE 3.

Regresar

al

Catálogo



CERRAR LA CONEXIÓN A LA BDD

Igual que en el Ejercicio 3

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 82

CENEAC - PHP MySQL Nivel 1 EJERCICIO 6. PÁGINA DE REGISTRO DEL USUARIO (INSERCIÓN) PARTE 1. INICIO DE LA CONEXIÓN Y CONSULTA DE LOS PRODUCTOS Igual que en ejercicio 3

PARTE 2. CONFIRMACIÓN DE LA INSERCIÓN DEL USUARIO

Registro del Usuario

… // AQUÍ AGREGAR CAMPOS PARA SOLICITAR Usuario, Clave y Nombre



PARTE 3.

CERRAR LA CONEXIÓN A LA BDD

Igual que en el Ejercicio 3.

Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 83

Related Documents

Php Mysql Nivel 1
March 2021 0
Php Mysql
January 2021 2
Php-mysql Tutorial [ebook]
February 2021 1
Php Dan Mysql
January 2021 0
Mysql En Php
March 2021 0
Desarrollo Php Y Mysql
March 2021 0

More Documents from "Luis Ortiz Villegas"