Está en la página 1de 56

Conexión a Bases de Datos en PHP

1. Configuración y acceso servidor MySQL


1.1. Conexión servidor MySQL desde xampp
1.2. Configuración password usuario root
2. Configurar la Base de Datos
2.1. Crear la Base de datos
2.2. Crear tablas en la Base de Datos
3. Conexión a bases de datos desde php
3.1. La Extensión MySQLi
3.2. Conexión servidor y selección de la base de datos
3.3. Métodos, Funciones y Propiedades más utilizadas
4. Paso de Variables
4.1. Método Get
4.2. Método Post
5. Construcción de formularios CRUD (Create – Read – Update - Delete)
5.1. Crear
5.2. Leer
5.3. Actualizar
5.4. Borrar
6. Otros Procesos
6.1. Manejo de Sesiones
6.2. Ejemplo Ingreso a un Sistema o Aplicación web
6.3. Asignar una Cita
6.4. Atender la Cita

FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje


Conexión a Bases de Datos en PHP

MAPA CONCEPTUAL

Generar Reportes

2
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

INTRODUCCIÓN

Lo interesante de un Sistema o Aplicación WEB es la de poder conectarse


a una base de datos, y poder trabajar desde el lado del servidor con datos
del negocio.

Con PHP se puede acceder a diferentes motores de Bases de datos tales


como SqlServer, Oracle, PostgreSql, sqlLite, interbase, MySQL entre
otros. El más utilizado es MySQL. Para cada uno de ellos PHP implementa
una serie de funciones que le permitan poder realizar las tareas propias de
acceso a datos.

Este Objeto de Contenido le apoyará en su proceso formativo en el


desarrollo de una aplicación web con conexión a bases de datos MySQL y
lenguaje de desarrollo PHP.

3
SENA FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

1. Configuración y acceso al Servidor MySQL

1.1 Conexión servidor MySQL desde XAMPP

En el momento de instalar XAMPP, este instala el servidor web Apache y el


servidor de Bases de Datos MySQL.

Por lo anterior debemos verificar que en XAMPP se encuentren


ejecutándose los dos servidores: Servidor Apache y servidor MySQL.

Como observan en la imagen anterior tanto el servidor Apache y el


servidor MySQL se encuentran ejecutándose.

Verificación del servidor MySQL


Podemos verificar si el servidor MySQL está ejecutándose de la siguiente
forma:

Ingresar al navegador y escribir la siguiente dirección:


http://localhost/xampp/

Debe mostrar el siguiente pantallazo de acuerdo a la imagen:

4
SENA FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

1.2 Configurar Password usuario root

Para configurar el password damos clic en la opción del menú llamada


Chequeo de Seguridad que se encuentra en el bloque Bienvenidos, ver
imagen:

5
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

Después aparece la siguiente información:

Para continuar damos clic en el enlace indicado, que se encuentra dentro


del ovalo de color rojo.

http://localhost/security/xamppsecurity.php

Al ingresar al enlace indicado aparece el formulario para que ingresemos


el password del usuario root, ya sea nuevo o para actualizarlo.

6
SENA FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

Acceso al Administrador de las bases de Datos phpMydAdmin

Dar clic en phpmyadmin donde podemos acceder a una


herramienta web que nos permite administrar las bases de datos.

7
SENA FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

Si el usuario root ya tiene password debe aparecer el siguiente formulario:

Si el usuario root todavía no tiene password debe aparecer la siguiente página

8
SENA FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

9
SENA FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

2. Configurar la Base de Datos

2.1 Crear una Base de Datos desde PhpMyAdmin

Para crear nuestra base de datos buscamos en el menú la opción de bases


de datos y damos clic:

10
SENA FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

Al dar clic en Bases de Datos nos debe aparece una opción para que
ingresemos el nombre de la base de datos:

Como ejercicio vamos a crear una Base de Datos llamada CENTROMEDICO

11
SENA FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

Casos de Uso
De acuerdo a la imagen anterior el Cotejamiento quedó Utf8_spanish_ci,
que hace referencia a caracteres del español. Al dar clic en crear se crea
la base de datos.

Podemos verificar en el listado de las bases de datos actuales que


aparezca la base de datos que se acaba de crear.

2.2 Crear Tablas en una Base de Datos.

Como ejercicio vamos agregar la tabla llamada Pacientes con las


siguientes características:

12
SENA FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

Para iniciar con la creación de la tabla damos clic en la base de datos


centromedico del listado de bases de datos.

Al dar clic aparece:

Pacientes 6

Agregamos los datos Pacientes en Nombre y en número de columnas 6.

13
SENA FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

Después de dar clic en continuar, nos lleva a una ventana para que
configuremos los campos. En la siguiente imagen se muestra la
configuración de acuerdo a las características presentadas de la tabla
Pacientes.

3. Conexión a una Base de Datos MySQL desde PHP

3.1 La extensión MySQLi

A partir de PHP 5 se recomienda utilizar la extensión MySQLi (MySQL Improved)


en vez de la tradicional MySQL.

• Permite utilizar las mejoras de las últimas versiones del servidor MySQL.
• Interfaz orientada a objetos
• Soporte para Declaraciones Preparadas
• Soporte para Múltiples Declaraciones
• Soporte para Transacciones
• Mejoradas las opciones de depuración
• Soporte para servidor empotrado

14
SENA FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

Pasos para la Conexión:

1. Conexión con el Servidor MySQL


2. Selección de la Base de datos
3. Uso de la Base de datos donde podemos:
a. Envío de operación SQL a la base de datos.
b. Recepción y tratamiento de los resultados.
c. Liberar memoria de resultados
4. Cerrar la Conexión

3.2 Conexión al Servidor MySQL y selección de Bases de Datos

Código PHP para conectarnos a la Base de Datos CentroMedico

SENA

15
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

Resultado de la ejecución del código

También se puede crear un archivo aparte con las variables que contienen
los valores de los parámetros para conectarnos al servidor y a la base de
datos.

Código archivo con las variables que contienen los valores de conexión al
servidor y a la base de datos:

Nombre del archivo: conexionBasesDatos.php

16
SENA FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

Código archivo que se conecta a la base de datos:

3.3 Métodos, Funciones y Propiedades más utilizadas

• $objeto->Query($sql): Método que recibe la sentencia SQL y retorna un


objeto con el que podemos trabajar con los datos. Devuelve FALSE si ocurre un
error.

• $objConexion->Close(): Cierra la conexión actual a la base de datos.

En la variable $resultado se guarda lo que devuelve la ejecución de la consulta.

La variable $resultado se convierte en un objeto del cual podemos obtener la


siguiente información con los siguientes métodos o propiedades.

17
SENA FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

• $resultado->num_rows: Obtiene el número de registros de una


consulta.

• $resultado->fetch_array() o fetch_all():Devuelve todas las filas en


un array asociativo, numérico, o en ambos.

• $resultado->fetch_object(): Devuelve un objeto, donde cada


columna o campo de la consulta se convierte en una propiedad.

18
SENA FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

• $resultado->insert_id: Devuelve el id del último registro insertado en


la base de datos.

• $resultado->free(): Libera la memoria asociada al resultado

• $objConexion->prepare($sql): El método prepare del objeto conexión


recibe como parámetro una sentencia sql y la mantiene lista para
ejecutarla. Retorna un objeto para poder seguir trabajando con la
sentencia sql.

• $resultado=$objConexion->prepare($sql);

• $resultado->bind_param(“tiposdatos”, $parametros): El método


bind_param del objeto que recoge lo que retorna el método prepare,
recibie como parámetros, los tipos de datos de los parámetros como un
string y después los parámetros que se requieran.

• $res=$resultado->execute(): El método execute ejecuta la sentencia


sql que se haya creado con el método prepare.

Ejemplo:

En el siguiente ejemplo, la sentencia Sql tiene unos parámetros que se ven


reflejados con el carácter interrogación (?)

19
SENA FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

4. Pasar Variables

4.1 Método GET

Cuando se pasan variables método GET nos indica que estamos pasando
variables por la URL.

Se utilizan unos caracteres para separar las variables así:

Carácter ?: cuando referenciamos una o la primera variable


Carácter &: este carácter se utiliza para pasar la segunda o las siguientes
variables si se requieren.

Ejemplo:

En el siguiente ejemplo estamos llamando a la página llamada pagina.php


y le estamos pasando una variable llamada empresa con el valor de SENA y
una variable nit con el valor de 8999990341.

20
SENA FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

Código Archivo pagina.php

4.2 Método POST

El método post, normalmente son las que enviamos por los formularios.

• En el siguiente ejemplo el encabezado del formulario tiene una


propiedad llamada method y tiene como valor post.

• El encabezado del formulario también tiene una propiedad action


donde está relacionada un archivo llamado validarInsertarPaciente2.php.

• En el archivo validarInsertarPaciente2.php llegan todas las variables


del formulario que vienen siendo todos los campos del mismo (Subrayados
en rojo).

21
SENA FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

22
SENA FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

5. Construcción de formularios CRUD (Create – Read – Update -


Delete)

5.1 Insertar

En el siguiente ejemplo se construirá el formulario para insertar pacientes,


Primero se implementan los controles al formulario, de acuerdo con la
imagen a continuación y con la información que se suministró en los objetos
anteriores:

23
SENA FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

Código del Formulario

24
SENA FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

Código del Archivo que hace la inserción del Paciente

Nombre del Archivo: validarInsertarPaciente.php

Debemos modificar el código del formulario en el encabezado


agregándole el nombre del archivo en el action:

25
SENA FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

¿Qué ocurre cuando damos clic en el Botón del Formulario?

Ejecuta el archivo que se encuentra en la propiedad action del formulario y


los campos del formulario se pasan por método POST.

¿Cuáles son los campos del Formulario?

Los nombres de los campos del formulario los debemos tener en cuenta, ya
que así como los llamamos los debemos utilizar en el otro archivo.

Resultado de la Ejecución del formulario

26
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

Al dar clic en el Botón Enviar aparece el siguiente resultado

Ahora vamos a verificar por phpmyadmin si ya aparece el paciente


registrado.

27
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

5.2 Consultar Pacientes

• Continuando con el ejemplo del centro médico, a continuación se presenta el


código para realizar la consulta de datos:

28
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

• Otra forma de consultar e imprimir en pantalla los resultados, utilizando el


método fetch_object() del resultado se presenta a continuación:

29
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

Resultado de la ejecución del archivo consultar Pacientes:

Las consultas se presentan con frecuencia en una tabla, por lo cual se


proporciona como ejemplo el código para listar pacientes usando una tabla, tal
como se ve en la imagen siguiente:

30
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

Resultado de la ejecución del archivo consultar Pacientes:

31
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

Código que permite listar los pacientes en una tabla

32
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

Otra forma de Listar en una tabla es utilizando el método fetch_object() como


se muestra a continuación:

33
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

5.3 Actualizar Pacientes

El siguiente ejemplo presenta el código para modificar datos en la tabla


paciente.

De acuerdo a los pacientes existentes en la base de datos, vamos actualizar la


fecha de nacimiento de Amparo Grisales a 1951-06-25.

Código archivo que hace la actualización

34
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

Resultado de la Ejecución Actualización

Actualización mediante parámetros

35
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

Una vez se han realizado las modificaciones sobre los datos, se debe
listar la información, tal como quedo modificada.

5.4 Borrar Pacientes

Para eliminar registros de la base de datos, se debe proporcionar la


funcionalidad que permita ejecutar la sentencia SQL Delete sobre las filas de
la base de datos que se desean eliminar, sin embargo recuerde que la
implementación de esta funcionalidad debe obedecer a las reglas de negocio
definidas sobre la aplicación.

En el ejemplo proporcionado se permite la eliminación de un paciente


recibiendo como parámetro el número de identificación del mismo.

36
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

37
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

Posterior a la eliminación se deben visualizar los datos para confirmar que


los registros ya no se encuentran en la base de datos.

Listar Pacientes después de eliminar

6. Otros Procesos

6.1 Manejo de Sesiones

Es muy importante que las aplicaciones web manejen sesiones para que las
personas que ingresan sean usuarios registrados en el sistema.

¿Cómo se registra una variable de sesión?

$_SESSION[‘variable’] = valor;

Se recomienda que todos los archivos del sitio inicien con la sentencia
sesión_start() para que se reconozcan las variables de sesión.

<?php
sessión_start();

38
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

¿Cómo validar que no ingresen a una página sin tener una sesión
abierta?

En el código anterior si no se encuentra registrada la variable de sesión


llamada variable, lo regresa al index del sitio con un mensaje que debe iniciar
sesión.

¿Cómo cerrar una Sesión?

39
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

Al cerrar la sesión lo lleva al index donde muestra el mensaje.

6.2 Ejemplo Ingreso a un Sistema o Aplicación WEB

• Crear una tabla de usuarios que permite validar los datos de ingreso.
Este usuario puede ser un médico, un asistente, el administrador o un
paciente
• Crear un formulario de ingreso al sistema.

Tabla Usuarios en el Sistema

40
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

Datos Tabla Usuarios

El campo usuPassword se encuentra encriptado utilizando la


función md5 de php.

La forma de encriptar es la siguiente:

valorEncriptado = md5(valorAEncriptar);

Formulario Ingresar al Sistema o Aplicación

41
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

Formulario Ingresar al Sistema o Aplicación

Código Formulario Ingresar al Sistema o Aplicación

42
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

Código del archivo que valida el ingreso al Sistema o Aplicación

43
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

Archivo ConexionBaseDatos

6.3 Asignar Cita

En el anterior formulario el campo para la fecha es un campo de tipo date


y el campo para la hora es time.

44
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

Código Formulario Asignar Cita

45
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

Código archivo que valida la Asignación de la Cita

46
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

Listar Citas

Código Archivo Listar Citas

47
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

6.4 Atender una Cita

Primero se listan solo las citas cuyo estado sea Asignado.

48
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

Código archivo listar Citas por Atender

49
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

Formulario Editar la Cita

Aquí el Médico puede ingresar las observaciones detectadas en la


cita. En éste formulario llega el idCita, el cual nos permite hacer una
consulta para conocer el paciente de la cita como lo muestra el formulario.

50
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

Código Formula Editar Cita

Código Formula Editar Cita

51
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

Formulario con observaciones

Al dar clic en el Botón de Enviar, actualiza el estado y actualiza el campo


observaciones.

Código archivo Actualiza la Cita

52
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

En el código anterior cambia el estado de la Cita de Asignado a Atendido, y


actualiza el campo observaciones de acuerdo a lo ingresado por el médico.

Listado de Citas por Atender después de la Actualización

En la siguiente tabla podemos darnos cuenta como se actualizó los datos


de la Cita del Paciente Faustino Asprilla.

53
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

BIBLIOGRAFIA

S. Suehring, T. Converse, J. Park. PHP6 and MySQL Bible. Wiley Pub. 2009.

O. Heurtel. PHP y MySQL. Domine el desarrollo de un sitio Web


dinámico e interactivo. Ediciones ENI 2009.

M. Delisle. Dominar phpMyAdmin para una administración efectiva de MySQL.


Packt Publishing (2007)

PHP.net. Extensión MySQLi, consultado en octubre de 2013 y disponible en:


http://es.php.net/manual/es/book.MySQLi.php

PHP.net. API MySQL Original, consultado en octubre de 2013 y disponible en:


http://es.php.net/manual/es/book.MySQL.php

54
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

GLOSARIO

md5() = Función que calcula el hash MD5 de una cadena. Forma de encrip-
tar una cadena.

Método GET: La forma de pasar variables mediante la URL

Método POST: Forma de pasar variables de forma codificada. Normalmente


se envían cuando se utilizan formularios.

MySQLi: Extensión de php. Clase definida para conectar a una base de datos
MySQL desde php.

phpMyadmin= Herramienta web en php diseñada especialmente para admi-


nistrar bases de datos MySQL.

REQUEST: Es un array asociativo que contiene todos los valores de variables


tipo $_POST, $_GET y $_COOKIE

Sessión_start(): Inicia una nueva sesión o reanuda la presente.

55
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Conexión a Bases de Datos en PHP

OBJETO DE
APRENDIZAJE Conexión a Datos desde PHP

Desarrollador de contenido César Marino Cuéllar Chacón


Experto temático

Asesor Pedagógico Claudia Milena Hernández


Rafael Neftalí Lizcano Reyes

Productor Multimedia Carlos Julián Ramírez Benítez


Victor Hugo Tabares Carreño

Programadores Daniel Eduardo Martínez Díaz


LINEA
Líder expertos temáticos 25,46 Parra
Ana Yaqueline Chavarro

Líder línea de producción Santiago Lozada Garcés

Atribución, no comercial, compartir igual

Este material puede ser distribuido, copiado


y exhibido por terceros si se muestra en los
créditos. No se puede obtener ningún ben-
eficio comercial y las obras derivadas tienen
que estar bajo los mismos términos de
licencia que el trabajo original.

56
SENA FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje

También podría gustarte