BASES DE DATOS EN PHP.

Slides:



Advertisements
Presentaciones similares
FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE
Advertisements

Support.ebsco.com Como crear una Colección Local Tutorial.
Acceso a Bases de Datos con Java
SQL Y BASES DE DATOS A TRAVÉS DE LA WEB
integridad referencial
Arquitecturas de BD Modelo ANSI/SPARC
BASE DE DATOS OBJETO RELACIONAL
MySQL Elideth Uribe Mónica Paredes.
Acceso a bases de datos MySQL en PHP
Por: Ronald Toscano Pretelt
¿QUÉ SON LAS BASES DE DATOS?
Julio Pacheco SQL SERVER 2005 XML APRENDIENDO CON EJEMPLOS.
Sistema de gestión de las bases de datos (SGBD).
4.3. Privilegios de usuarios
TECNOLOGÍA IDC Internet Database Connector Trinitario Gómez López.
PL/SQL Francisco Moreno Universidad Nacional.
SESIÓN 2. Completados por el tipo de objeto sobre el que actúan y el objeto concreto: CREATE DATABASE mibase ; Permite crear una base de datos llamada.
MySQL M.C. Pedro Bello López.
SQL Lenguaje de consulta estructurado
Uso de MYSQL Bases de datos para la Web. Ventajas de usar bases de datos relacion ales Permiten un acceso mucho más rápido a los datos Facilitan las peticiones.
Subconsultas Avanzadas
Bases de datos en la Web n Las bases de datos permiten almacenar de una forma estructurada y eficiente toda la información de un sitio web n Ventajas –Proporcionar.
Componentes sintácticos
Una base de datos es un “almacén” que nos permite guardar grandes cantidades de información de forma organizada para que luego podamos encontrar y utilizar.
Dr. Mario Rossainz López Aplicaciones WEB Primavera 2015.
UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO MODULO IV ADMINISTRACIÓN DE BASES DE DATOS Administración del DBMS E.I. L.E. Prof. Ramón Castro Liceaga SEMINARIO.
COMANDOS SQL.
Aprenda MySQL en 120 minutos Tutorial. Dirigido a...
COMANDOS DML DML son las siglas de Data Manipulation Language y se refiere a los comandos que permiten a un usuario manipular los datos en un repositorio,
Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:
SQL (Structured Query Language / Lenguaje de consulta estructurado)‏
Fernando Alonso Nicolás Serrano Acceso a Bases de Datos con Java JDBC 01 de Abril de 2008.
Tema 2: Base de datos relacionales
INSTRUCCIONES Elaboración de la Presentación:
LENGUAJE SQL.
Bases de Datos Sql.
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:21 PRESENTACION: BASE DE DATOS ALUMNAS: Adán Millán Sánchez.
LENGUAJE ESTRUCTURADO DE CONSULTAS
Lenguaje Estructurado de Consulta
Instrucciones para crear tablas My SQL. A nivel teórico, existen dos lenguajes para el manejo de bases de datos: DDL (Data Definition Language) Lenguaje.
Ing. Lorena Ruhl - Marco Rapallini - Javier FabiánMódulo 3: Integración de PHP con Bases de Datos Ing. A. Lorena Ruhl Universidad.
Diseño de una base de datos y elementos básicos Integrantes: López Ponce de León José Efrén Velazquez Martínez Brenda Equipo:10Grupo:307.
INSTRUCCIONES Elaboración de la Presentación:
Base de Datos I. SQL es el lenguaje estándar para trabaja con base de datos relacionales. MySQL, el sistema de gestión de bases de datos SQL Open Source.
Ing. Eddye Sánchez Castillo FACULTAD DE INGENIERIA Escuela Profesional de Computación y Sistemas BASE DE DATOS I.
MySQL LENGUAJE SQL.
Prof. De Bases de Datos: Lcdo. Luis Peña. El lenguaje más habitual para construir las consultas a bases de datos relacionales es SQL, Structured Query.
Tema 11 Bases de Datos y el Lenguaje SQL
Introducción a phpMyAdmin
SQL (Structured Query Language) Lenguaje orientado a bases de datos y sobre todo, al manejo de consultas; el objetivo principal de SQL es la realización.
Colegio de Bachilleres Plantel 13 Xochimilco - Tepepan
MSSQL SERVER CURSO BÁSICO 1. CONCEPTOS BASICOS DE SQL. DESCRIPCIÓN DEL CURSO. Sesión 3: Índices Uso, Creación, Tipos, Eliminación LENGUAJE DE CONSULTAS.
MSSQL SERVER CURSO BÁSICO 1. DESCRIPCIÓN DEL CURSO. Sesión 4: Sentencia Insert,Transacciones,Insert general, Insert Select * From, Sentencia Update,Update.
(Lenguaje de consulta estructurado)
SQL es un estándar internacional para trabajar con bases de datos, que consta de dos partes: una parte para manipular datos y una parte para definir tipos.
SQL Lenguaje Estructurado de Consultas. Structured Query Lenguaje (SQL). Lenguaje de acceso a bases de datos. Proyecto de Investigación de IBM. La mayoria.
Usuarios. Colocar el servidor en el modo de autenticación Windows/SqlServer. En SQL Server Management Studio, click derecho, Propiedades en la Instancia.
SQL es el lenguaje de comunicación entre el programa cliente y programa servidor; Oracle es un programa servidor, en el que está la base de datos propiamente.
Bases de Datos SQL.
ECOM-6030 CAPÍTULO 9 CREATING WEB DATABASE Prof. Nelliud D. Torres © - Derechos Reservados.
QUÉ ES UNA BASE DE DATOS? Es un Conjunto de Información, que está clasificada de distintas maneras; pero que comparten entre sí algún tipo de vínculo,
DLM Transact SQL Sesión I Introducción al SQL Server Uso de las herramientas de consultas del Transact SQL.
Structure Query Languaje SQL. Introducción a SQL El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por.
Administrador de Bases de Datos.  Características:  Libre.- puede descargarse de forma gratuita  Facilidad de uso.- gracias a aplicaciones como phpMyAdmin.
DLM Transact SQL Sesión II Recuperación de información.
Introducción a phpmyadmin índice 1. Introducción 6. Insertar registros 5. Crear usuario para php 8. Modificar registros 2. Base de datos MySQL 3. Crear.
DML Transact SQL Sesión X Triggers. Duración 2 Horas.
Php y mysql índice 1. Conexión 6. Ejercicio 5. Insertar un registro 2. Operaciones básicas 3. Seleccionar BD 4. Crear una BD P h p y m y s q l Índice 1.
Crear una tabla (create table - sp_tables - sp_columns - drop table) Para ver las tablas existentes creadas por los usuarios en una base de datos usamos.
Ing. Sanchez Castillo Eddye Arturo Escuela Académica Profesional de Ingeniería de Sistemas.
Transcripción de la presentación:

BASES DE DATOS EN PHP

Arquitectura de una base de datos Web Criterios para el desarrollo de una Base de Datos Web: Arquitectura interna. Arquitectura externa.

Ventajas de usar bases de datos relacionales Permiten un acceso mucho más rápido a los datos. Facilitan las peticiones de grupos de datos que cumplan determinados criterios. Las bases de datos contienen mecanismos autoconstruidos de control de las entradas. Cuentan con sistemas de privilegios preconstruidos.

Conceptos genéricos sobre bases de datos Conceptos y terminología de las bases de datos. Diseño de bases de datos. Arquitectura de bases de datos.

Temas que veremos en este Bloque del curso Crear Nuevas Bases de datos MySQL: Cubriremos la configuración básica que necesitaremos para poder conectar bases de datos a la web. Trabajar con Bases de datos MySQL: Veremos como hacer peticiones a las bases de datos añadiendo y borrando registros mediante mandatos. Acceder a Bases de datos desde la web con php: Veremos como conectar PHP y MySQL juntos para poder administrar nuestra base de datos desde una interface Web. MySQL avanzado: Cubriremos características avanzadas de MySQL necesarias para crear aplicaciones Web.

Conceptos de Bases de Datos relacionales Es el tipo de base de datos más usada: Se basan en el álgebra relacional. Son conjuntos de relaciones llamados tablas: Las tablas contienen datos ordenados en columnas y filas. Cada Columna tiene un único nombre y contiene diferentes datos: Cada columna tiene un tipo de datos asociados, como números o textos. Las filas son también llamados registros: Agrupan todos los atributos de un elemento individual (un cliente por ejemplo). Cada fila consiste en un conjunto de valores individuales que se corresponden con columnas. Las claves nos permiten identificar a cada elemento específico: el mejor sistema es crear un número identificador.

Creación de un esquema inicial Esquema de una base de datos: se le llama al conjunto completo del diseño de tablas para la base de datos. Puede compararse con el plano de un edificio: Debe mostrar las tablas junto con sus columnas, tipos de datos de cada columna, clave primaria de cada tabla y posibles claves externas. Un esquema no incluye ningún dato: Pero pueden mostrarse datos de ejemplo para explicar el esquema. El esquema podemos crearlo como un diagrama: o como un formulario de texto. Clientes(ClienteID, Nombre, Dirección, Ciudad) Pedidos(PedidoID, ClienteID, Cantidad, Fecha)

Relaciones entre tablas de la Base de Datos Las claves externas (foreign key) representan una relación entre datos en dos tablas. Por ejemplo: El enlace de pedidos a clientes. Existen tres tipos básicos de relaciones: Clasificados de acuerdo al número de cosas en cada lado de la relación. Uno a uno; uno a muchos; o muchos a muchos. En una relación uno a uno: Significa que hay una correspondencia única siempre, por ejemplo: Nombredirección. En una relación uno a muchos: Una fila en una tabla está enlazada a muchas filas en otras tablas. En nuestro ejemplo un cliente puede hacer muchos pedidos. En una relación muchos a muchos: Muchas filas en una tabla son enlazadas a muchas filas en otra tabla. Por ejemplo una relación LibrosAutores.

Como diseñar tu base de datos web Piensa en los objetos del mundo real que estás utilizando: En general cada clase de objetos necesita una tabla: clientes, libros, pedidos. Evitar almacenar datos redundantes: Ocupan mucho espacio y pueden provocar anomalías e inconsistencias. Usar valores de columna atómicos: En cada atributo de cada fila almacenamos una sola cosa. Elige Claves sensibles: Asegúrate que las claves que usas son únicas. En nuestro ejemplo hemos creado clientesID y PedidosID. Para libros usamos su ISBN.

Como diseñar tu base de datos web Piensa en peticiones que quieres hacerle a la base de datos: Asegúrate que la base de datos contiene todos los datos requeridos y que existen los enlaces apropiados entre tablas. Evitar diseños con muchos atributos vacíos: Los campos sin valor se dice que tienen un valor nulo. Ocupa mas espacio de almacenamiento. Si el usuario encuentra un valor nulo en la tabla no sabe si ese atributo no tiene importancia, si hay un error en la bd o los datos no han sido enviados aun.

Resumen de tipos de tabla Tablas simples de objetos del mundo real: Pueden contener también claves. Se trata de relaciones uno a uno o uno a muchos. Por ejemplo clientes y pedidos. Tablas enlazadas que describen relaciones muchos a muchos: Tales como las relaciones entre pedidos y libros.

CREAR UNA BASE DE DATOS EN PHP

Arquitectura externa de dase de datos Web

Arquitectura externa de dase de datos Web Navegador emite una petición mediante formulario http. El navegador recibe la petición y mediante el formulario llama a una pagina PHP y la pasa al motor PHP. El motor PHP analiza el script, abre una conexión al servidor MySQL y envia la petición. MySQL recibe la petición, la procesa y envía los resultados al motor PHP. Recibe los resultados, se les da un formato (opcional), envía los resultados al Servidor Web y termina de ejecutar el script. Recibe resultados y regresa un html al usuario.

Creación de una BD MySQL Esquema de la BD Librería: Clientes (ClientesID, Nombre, Dirección, Ciudad) Pedidos (PedidosID, ClientesID, Cantidad, Fecha) Libros (ISBN, autor, Titulo, Precio) Articulos_pedidos (PedidoID, ISBN, Cantidad) Comentarios_libros (ISBN, Comentarios)

Creación de una BD MySQL Modo desde Consola: No diferencia entre minúsculas y mayúsculas. La forma general de iniciar una sesión en MySQL es: Mysql –h host –u root -p C:\appserv\mysql\bin>mysql -h localhost -u root –p Enter password: ***** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 21 Server version: 6.0.4-alpha-community-log MySQL Community Server (GPL) Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

Creación de una BD MySQL Modo desde Consola: Los parámetros "-h" y "-u" indican que los parámetros posteriores son el nombre del host y el usuario, respectivamente. El parámetro "-p" indica que se debe solicitar una clave de acceso. Para crear una Base de datos: mysql> create database libreria; Query OK, 1 row affected (0.00 sec)

Creación de una BD MySQL Privilegios a Datos: SELECT: Permite seleccionar filas d elas tablas. INSERT: Insertar nuevos datos UPDATE: Modificar valores existentes. DELETE: Borrar datos de las tablas FILE: Exportar e importar archivos Privilegios de Estructura: CREATE: Crear nuevas BD y tablas. ALTER: Modificar DB y tablas existentes. INDEX: Crear o modificar índices (claves primarias) de una tabla. DROP: Eliminar o crear tablas y BD temporales. CREATE TEMPORARY TABLES: Crear tablas temporales.

Creación de una BD MySQL Privilegios de Administrador: GRANT SUPER PROCESS RELOAD SHUTDOWN SHOW DATABASES LOCK TABLES REFERENCES EXECUTE REPLICATION CLIENT REPLICATION SLAVE

Creación de una BD MySQL Crear usuarios de distintos tipos: mysql> grant usage on libreria.* to inma identified by '123'; Query OK, 0 rows affected (0.00 sec) Otorgar privilegios: mysql> grant select, insert, update, delete, index, alter, create, drop -> on libreria.* to inma; Revocar privilegios: mysql> revoke alter, create, drop on libreria.* from inma;

Creación de una BD MySQL Revocar todos los privilegios mysql> revoke all on libreria.* from inma; Query OK, 0 rows affected (0.00 sec) Configurar usuario: mysql> grant select,insert,delete,update on librería.* to libronline identified by ‘123456’;

TABLAS Y CAMPOS DE LA BASE DE DATOS

Tablas y Campos de la BD Seleccionar una BD: mysql> use libreria; Database changed Esquema para crear las tablas: CREATE TABLE nombretabla (col1 prop1, col2 prop2); Algunas propiedades son: not null: todas las filas de la columna deben tener un valor. auto_increment: Solo puede usarse en un tipo de dato entero e indexado (clave primaria). unsigned: Indica que se trata de un numero entero con valor de 0 o positivo.

Tablas y Campos de la BD create table clientes ( clienteid int unsigned not null auto_increment primary key, nombre char(30) not null, direccion char(40) not null, ciudad char(20) not null ); create table pedidos ( pedidoid int unsigned not null auto_increment primary key, cantidad flclienteid int unsigned not null,oat(6,2), fecha date not null

Tablas y Campos de la BD create table libros ( isbn char(13) not null primary key, autor char(30), titulo char(60), precio float(4,2) ); create table articulos_pedidos ( pedidoid int unsigned not null, isbn char(13) not null, cantidad tinyint unsigned, primary key (pedidoid, isbn)

Tablas y Campos de la BD create table comentarios_libros ( isbn char(13) not null primary key, comentario text ); Ver una tabla en concreto: mysql> describe clientes; Ver las tablas de la base de datos a la que se accede actualnete: mysql> show tables; Ver bases de datos existentes: mysql> show databases;

Tablas y Campos de la BD Crear tablasSeleccionar una BD: mysql> use libreria; Database changed Esquema para crear las tablas: CREATE TABLA nombretabla (col1, col2);

MySQL

SQL (Structured Query Language) ¿Qué es SQL? Insertar datos en la base de datos. Unir tablas. Actualizar registros desde la base de datos. Alterar tablas después de la creación. Borrar registros de la base de datos. Eliminar tablas.

¿Qué es SQL? Structured Query Language Manejo de bases de datos relacionales. (RDBMS-Relational Database Management Systems). Lo usaremos para almacenar y recuperar datos reales de una base de datos.

Insertar datos en una base de datos Usando la declaración SQL INSERT Mediante INSERT podemos poner filas de datos en la base de datos. INSERT [INTO] nombreTabla [(columna1, columna2, columna3,……)] VALUES (valor1, valor2, valor3,….);

Insertar datos en una base de datos Insertar datos en todos los campos de la tabla: C:\Documents and Settings\GERARDO>mysql -h localhost -u root -p Enter password: ***** mysql> use libreria; Database changed mysql> insert into clientes values (NULL," Antonio Vargas", "Calle agustin melgar 45", "Ixtacala"); Query OK, 1 row affected (0.00 sec) mysql>

Insertar datos en una base de datos Insertar datos en todos los campos de la tabla con set: mysql> insert into clientes -> set nombre="Roberto Lopez", -> direccion="Av. Hidalgo 25", -> ciudad="Ecatepec"; Query OK, 1 row affected (0.13 sec)

Insertar datos en una base de datos Insertar datos especificando los campos de la tabla: mysql> insert into clientes (nombre, ciudad) -> values ("Jonathan Ibarra", "Atizapan"); Query OK, 1 row affected, 1 warning (0.00 sec)

Recuperar datos de la Base de Datos La sintaxis básica de un SELECT SELECT objetos FROM tablas [ WHERE condición ] [ GROUP BY tipo_grupo ] [ HAVING donde_definición ] [ ORDER BY tipo_orden ] [LIMIT criterio_limitador ] ;

Recuperar datos de la Base de Datos Para mostrar todas las filas de una tabla. Para ello se usa la sentencia: mysql> SELECT * FROM nombretabla; mysql> select * from libros; Usando la sentencia where: mysql> select * from pedidos where clienteid=3;

Recuperar datos de la Base de Datos Ejemplo con sentencia LIKE: mysql> select * from clientes where -> nombre like ("Mig%"); Comprovar multiples criterios: mysql> select * from pedidos where -> clienteid=2 or clienteid=3;

Recuperar datos de la Base de Datos Unir dos tablas simples: mysql> SELECT pedidos.pedidoid, pedidos.cantidad, pedidos.fecha FROM clientes, p edidos WHERE clientes.nombre="Alberto Durante" and clientes.clienteid=pedidos.cl ienteid; Unir dos tablas simples y mostrar campos de las dos tablas: mysql> SELECT clientes.nombre, pedidos.pedidoid, pedidos.cantidad, pedidos.fecha FROM clientes, pedidos WHERE clientes.nombre=“Carmen G" and clientes.clienteid=pedidos.clienteid;

Recuperar datos de la Base de Datos Unir mas de dos tablas: Select clientes.nombre From clientes, pedidos, articulos_pedidos, libros Where clientes.clienteid = pedidos.clienteid And pedidos.pedidoid =articulos_pedidos.pedidoid And articulos_pedidos.isbn=libros.isbn And libros.titulo like '%Flash%‘

Modificar y Eliminar datos UPDATE actualiza columnas de filas existentes de una tabla con nuevos valores, se estructura es: UPDATE nombretabla SET columna1=expresión1,columna2=expresion2,......... [WHERE condición] [LIMIT número] SET: Indica las columnas a modificar y los valores que deben tomar. WHERE: Especifica qué filas deben ser actualizadas. Si no se especifica, serán actualizadas todas ellas. ORDER BY: Las filas se modificarán en el orden especificado. LIMIT: establece un límite al número de filas que se pueden actualizar.

Modificar y Eliminar datos Ejemplo basico: mysql> UPDATE clientes -> SET nombre="Carmen Guerrero“ -> where clienteid=1; Query OK, 1 row affected (0.02 sec) Rows matched: 1 Changed: 1 Warnings: 0

Recuperar datos de la Base de Datos Para modificar la estructura de una tabla existente utilizamos ALTER TABLE: ALTER TABLE clientes MODIFY nombre char (60) not null;

Funciones MySQL soportadas por PHP Algunas de las funciones para el manejo de MySQL que utilizan en los ejemplos se muestran a continuación: Función Descripción mysql_affected_rows Devuelve el número de filas afectadas de la última operación MySQL mysql_close Cierra el enlace con MySQL mysql_connect Abre una conexión a un servidor MySQL mysql_data_seek Mueve el puntero interno mysql_fetch_object Extrae una fila de resultado como un objeto mysql_num_rows Devuelve el número de filas de un resultado mysql_query Envía una sentencia SQL a MySQL mysql_select_db  Selecciona un base de datos MySQL. Establece la base activa que estará asociada con el identificador de enlace especificado

Funciones MySQL soportadas por PHP http://www.php-es.com/index.html mysql_query: Envía una consulta de MySQL. <?php $result = mysql_query("SELECT id,email FROM people WHERE id = '42'"); if (!$result) {     echo 'Could not run query: ' . mysql_error();     exit; } $row = mysql_fetch_row($result); echo $row[0]; // 42 echo $row[1]; // the email value ?>

Funciones MySQL soportadas por PHP mysql_select_db: Selecciona un base de datos MySQL <?php $link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); if (!$link) {     die('Not connected : ' . mysql_error()); } // make foo the current db $db_selected = mysql_select_db('foo', $link); if (!$db_selected) {     die ('Can\'t use foo : ' . mysql_error()); } ?>

Funciones MySQL soportadas por PHP mysql_affected_rows <?php /* connect to database */ mysql_connect("localhost", "mysql_user", "mysql_password") or     die("Could not connect: " . mysql_error()); mysql_select_db("mydb"); /* Update records */ mysql_query("UPDATE mytable SET used=1 WHERE id < 10"); printf ("Updated records: %d\n", mysql_affected_rows()); mysql_query("COMMIT"); ?>

Funciones MySQL soportadas por PHP mysql_connect y mysql_close <?php $link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); if (!$link) {     die('Could not connect: ' . mysql_error()); } echo 'Connected successfully'; mysql_close($link); ?>

Funciones MySQL soportadas por PHP mysql_fetch_row Devuelve una fila de resultado como matriz. <?php $result = mysql_query("SELECT id,email FROM people WHERE id = '42'"); if (!$result) {     echo 'Could not run query: ' . mysql_error();     exit; } $row = mysql_fetch_row($result); echo $row[0]; // 42 echo $row[1]; // the email value ?>

Funciones MySQL soportadas por PHP mysql_fetch_object Extrae una fila de resultado como un objeto <?php mysql_connect("hostname", "user", "password"); mysql_select_db("mydb"); $result = mysql_query("select * from mytable"); while ($row = mysql_fetch_object($result)) {     echo $row->user_id;     echo $row->fullname; } mysql_free_result($result); ?>

Funciones MySQL soportadas por PHP mysql_num_rows Devuelve el número de filas de un resultado <?php $link = mysql_connect("localhost", "mysql_user", "mysql_password"); mysql_select_db("database", $link); $result = mysql_query("SELECT * FROM table1", $link); $num_rows = mysql_num_rows($result); echo "$num_rows Rows\n"; ?>

Diseñando tu base de datos WEB

Creando una base de datos relacional Se desea almacenar información sobre los clientes, los libros que se venden, y los detalles de los pedidos de los clientes. Los clientes cuentan con un nombre y dirección. Cada pedido tiene una fecha, un importe total y la cantidad de libros solicitados. Cada libro tiene un identificador (ISBN), un autor, un título, y el precio unitario.

Bases de datos El conjunto de información descrita anteriormente sugiere que sean generadas tres tablas Tabla de clientes Tabla de pedidos Tabla de libros

Tablas Cliente ClienteID Nombre Dirección Ciudad 1 Julie Smith 25 Oak Street Airport West 2 Alan Wong 1/47 Haines Avenue Box Hill 3 Michelle Arthur 357 North Road Yarraville Pedidos PedidoID ClienteID Monto Fecha 1 3 27.50 02-Apr—2010 2 12.99 15-Apr-2010 74.00 19-Apr-2010 4 6.99 01-May-2010

Tablas Libros ISBN Autor Titulo Precio 0-672-31697-8 Michael Morgan Java 2 for Professional Developers Airport West 0-672-31745-1 Thomas Down Installing GNU/Linux Box Hill 0-672-31509-2 Pruitt.et al. Teach Yourself GIMP in 24 Hours Yarraville

Evitando datos redundantes PedidoID Monto Fecha cleinteID Nombre Dirección Ciudad 12 190.50 02-Apr—2010 1 María López Acordada 47 México DF 13 120.40 15-Apr-2010 14 90.50 19-Apr-2010 15 45.30 01-May-2010 Redundancia en la tabla de clientes

Evitando datos redundantes PedidoID ClienteID Monto Fecha Libros Pedidos 1 3 190.50 02-Apr—2010 0-672-31697-8 2 120.40 15-Apr-2010 0-672-31745-1. 0-672-31509-2 90.50 19-Apr-2010 4 45.30 01-May-2010 0-672-31745-1. 0-672-31509-2. 0-672-31697-8 Redundancia en la tabla libros

Tabla de Pedidos Pedidos Artículos PedidoID ISBN Cantidad 1 0-672-31697-8 2 0-672-31745-1 0-672-31509-2 3 4 Este diseño facilita la búsqueda de libros particulares, que han sido ordenados.

Evitando atributos vacios Libros ISBN Autor Titulo Precio Comentarios 0-672-31697-8 Michael Morgan Java 2 for Professional Developers 34.99 0-672-31745-1 Thomas Down Installing GNU/Linux 24.99 0-672-31509-2 Pruitt.et al. Teach Yourself GIMP in 24 Hours Comentarios_libros ISBN Comentario

Creando la base de datos

Estructura de las tablas Clientes(CleinteID, Nombre, Dirección, Ciudad) Pedidos(PedidoID, ClienteID, Monto, Fecha) Libros(ISBN, Autor, Titulo, Precio) Pedido_articulos(PedidoID, ISBN, Cantidad) Comentarios_Libros(ISBN, Comentarios) Abre el archivo de scripts, genera una base de datos llamada “libros” y carga las tablas y datos correspondientes.

Consultas Insertando datos. insert into clientes values (NULL, ‘Luis Aldape', ‘Del carmen 34', ‘Merida');’’’ Seleccionando campos de una tabla select nombre, ciudad from clientes; Seleccionando campos con alguna condición select * from pedidos where clienterid = 3;

Consultas Ordenando por criterio select nombre, direccion from clientes order by nombre asc; Promedio total de una orden select avg(monto) from pedidos; Criterio de agrupación select clienteid, avg(monto) from pedidos group by clienteid;

Consultas Combinando dos tablas select pedidos.pedidoid, pedidos.monto, pedidos.fecha from clientes, pedidos where clientes.nombre = ‘Julie Smith’ and clientes.clienteid = pedidos.clienteid; Usando alias para las tablas select c.nombre from clientes as c, pedidos as o, pedido_articulos as oi, libros as b where c.clienteid = o.clienteid and o.pedidoid = oi.pedidoid and oi.isbn = b.isbn and b.titulo like ‘%Java%’;

Subconsultas select isbn, titulo from libros where not exists (select * from pedido_articulos where pedido_articulos.isbn=libros.isbn);

Ejercicios Agrega 5 registros a la tabla clientes y 5 registros a la tabla libros. Realiza un query donde se obtenga el nombre de los clientes que hayan hecho un pedido en el mes de abril del 2010. Nombre del cliente o clientes, así como la descripción del libro que han adquirido el libro con la clave ‘0-672-31509-2’ .Si no existe agregar el campo para que al menos se obtenga un registro que cumpla la condición.

Accediendo a Mysql desde la Web con PHP

Analizaremos estos archivos Mysql con PHP Ahora accederemos ala base desde un programa en PHP. Abre el archivo baseform.html Abre el archivo resultado.php (archivo que procesara nuestra consulta) Analizaremos estos archivos

Mysql con PHP Eliminamos los espacios en blanco que el usuario haya puesto ya sea al final o al principio de la cadena de búsqueda. $searchterm=trim($_POST['searchterm']); El siguiente paso es verificar que el usuario ha introducido un término de búsqueda y seleccione un tipo de búsqueda if (!$searchtype || !$searchterm) { echo "No hay criterio de búsqueda. Por favor, inténtalo de nuevo."; exit; }

Mysql con PHP Cuando usted va a utilizar cualquier entrada de datos por un usuario, es necesario filtrar debidamente los caracteres de control. if (!get_magic_quotes_gpc()) { $searchtype = addslashes($searchtype); $searchterm = addslashes($searchterm); } Algunas otras funciones útiles stripslashes() htmlspecialchars()

Mysql con PHP Script para la conexión a la base de datos @ $db = new mysqli('localhost', 'root', '99011445', 'libros'); Estructura de conexión para el modelo propio orientado a objetos @ $db = mysqli_connect('localhost', 'root', '99011445', 'libros'); Consulta $query = "select * from libros where ".$searchtype." like '%".$searchterm."%'"; Ejecutamos la consulta $result = $db->query($query);

$num_results = $result->num_rows; Mysql con PHP Hay una gran variedad de funciones disponibles para desplegar los resultados de cada objeto. El identificador o resultado es la clave para acceder a las filas devueltas por la consulta. Cuando se utiliza el enfoque orientado a objetos, el número de filas devueltas se almacena en el num_rows miembro del objeto resultado, y se puede acceder a él de la siguiente manera: $num_results = $result->num_rows;

Mysql con PHP Es útil saber esto si va a procesar o mostrar los resultados, porque ahora sabemos cuántos son y pueden iterar a través de ellos: for ($i=0; $i <$num_results; $i++) { // Procesando resultados } En cada iteración de este bucle, se llama $ result-> fetch_assoc ().El bucle no se ejecuta si no se regresan filas. Esta es una función que toma cada fila del conjunto de resultados y devuelve la fila como un array. $row = $result->fetch_assoc();

Mysql con PHP Dado el array $row, se puede ir en cada campo y mostrar de manera apropiada, como se muestra en este ejemplo: echo "<br />ISBN: "; echo stripslashes($row['isbn']);

Nueva información en la base de datos

Ejercicio Abre el formulario nuevolibro.html Considera la lógica del ejemplo anterior y genera el archivo php (insertar_libro.php) que procese el formulario a manera de que reciba los datos que el usuario ingrese y se agregue a la tabla de libros. Que mande un mensaje si no se han ingresado todos los datos en el formulario. Mensaje de error si no se logra conectar a la base de datos. Mensaje de que los datos fueron insertados en la base correctamente. Para este caso no es necesario liberar memoria solo cerrar la base.

Ejercicio: Notas Para filtrar los caracteres numéricos (Float, int) se emplea la función doubleval() en lugar de addslashes(). Para INSERTS, DELETES y UPDATES se usa la instancia mysqli_affected_rows() y solamente usamos mysqli_num_rows() para determinar cuantas columnas fueron regresadas por un SELECT.