SlideShare una empresa de Scribd logo
1 de 29
INTRODUCCIÓN A LA PROGRAMACIÓN
CON PHP Y MYSQL
Acceso a bases de datos MySQL en PHP
CognosInformáticaEducativa
ACCESO A BASES DE DATOS MYSQL
EN PHP
1. Bases de datos en la Web
2. MySQL
3. Herramientas de administración: phpMyAdmin
4. Lenguaje SQL
5. Funciones de PHP para el acceso a bases de datos
MySQL
6. Ejercicios
7. Consulta avanzada de tablas
CognosInformáticaEducativa
BASES DE DATOS EN LA WEB
 Las bases de datos permiten almacenar de una forma
estructurada y eficiente toda la información de un sitio web
 Ventajas
– Proporcionar información actualizada
– Facilitar la realización de búsquedas
– Disminuir los costos de mantenimiento
– Implementar sistemas de control de acceso
– Almacenar preferencias de los usuarios
CognosInformáticaEducativa
BASES DE DATOS EN LA WEB
 Esquema básico de un sitio web soportado por bases de datos:
CognosInformáticaEducativa
MYSQL
 Características de MySQL
 Modelo relacional, multiusuario
 Tipos de datos
 Numéricos
 tinyint, smallint, mediumint, int, integer, bigint
 decimal, float, numeric
 Fecha y hora
 date, time, datetime, year, timestamp
 Cadena
 char, varchar
 tinytext, text, mediumtext, longtext
 tinyblob, blob, mediumblob, longblob
 enum, set
 Debe elegirse adecuadamente el tipo y el tamaño de cada
campo
CognosInformáticaEducativa
MYSQL
 Operadores
 Aritméticos
 +, -, *, /
 Comparación
 =, !=, <=, <, >=, >, IS NULL, IS NOT NULL
 Lógicos
 not (!), and (&&), or (||), xor
 Funciones
 Funciones de cadena
 Funciones de comparación de cadenas
 Funciones numéricas
 Funciones de fecha y hora
 Funciones de agregado
CognosInformáticaEducativa
HERRAMIENTAS DE ADMINISTRACIÓN:
PHPMYADMIN
 phpMyAdmin es una herramienta para la administración del
servidor de bases de datos MySQL
 Dispone de una interfaz gráfica y es de libre distribución
 Permite realizar todo tipo de operaciones sobre bases de
datos:
 crear, borrar y modificar tablas
 consultar, insertar, modificar y eliminar datos
 definir usuarios y asignar permisos
 realizar copias de seguridad
 etc
 Está escrita en php y se ejecuta desde el navegador
 Si está instalada en la carpeta phpmyadmin, se ejecuta
escribiendo en la barra de direcciones del navegador la url
http://localhost/phpmyadmin/
 Puede administrar bases de datos locales y remotas
CognosInformáticaEducativa
PHPMYADMIN
CognosInformáticaEducativa
LENGUAJE SQL
 SQL (Structured Query Language) es el lenguaje que se
utiliza para comunicarse con la base de datos
 Procedimiento de comunicación con la base de datos:
Página
PHP
Base de
datos
orden SQL
resultado
CognosInformáticaEducativa
LENGUAJE SQL
 Las instrucciones más habituales son SELECT, INSERT,
UPDATE, DELETE
 Veamos su sintaxis básica y algunos ejemplos de uso
 Para ello utilizaremos una tabla noticias con cinco campos:
un identificador único de la noticia, el título de la noticia, el
texto de la noticia, la categoría de la noticia y la fecha de
publicación de la noticia
título
texto
categoría
noticias
id
fecha
CognosInformáticaEducativa
LENGUAJE SQL
 SELECT
Sintaxis:
SELECT expresión FROM tabla
[WHERE condición]
[ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] ,...]
[LIMIT [offset,] row_count | row_count OFFSET offset]
Ejemplo:
SELECT * from noticias WHERE fecha=CURDATE() LIMIT 10 ORDER BY fecha
DESC
Obtiene las noticias del día con un tope máximo de 10, ordenadas de
la más reciente a la más antigua
CognosInformáticaEducativa
LENGUAJE SQL
 INSERT
Sintaxis:
INSERT [INTO] nombre_tabla [(nombre_columna,...)]
VALUES ((expresión | DEFAULT),...), (...),...
INSERT [INTO] nombre_tabla
SET nombre_columna=(expresión | DEFAULT), ...
Ejemplo:
INSERT INTO noticias (id, titulo, texto, categoria, fecha) VALUES
(37, “Nueva promoción en Nervión”, “145 viviendas de lujo en
urbanización ajardinada situadas en un entorno privilegiado”,
“promociones”, CURDATE())
Inserta una noticia con los valores indicados
CognosInformáticaEducativa
LENGUAJE SQL
 UPDATE
Sintaxis:
UPDATE nombre_tabla
SET nombre_columna1=expr1 [, nombre_columna2=expr2 ...]
[WHERE condición]
[ORDER BY ...]
[LIMIT row_count]
Ejemplo:
UPDATE noticias SET categoria = “ofertas” WHERE id=37
Modifica la categoría de la noticia con id=37 de la tabla
CognosInformáticaEducativa
LENGUAJE SQL
 DELETE
Sintaxis:
DELETE FROM nombre_tabla
[WHERE condición]
[ORDER BY ...]
[LIMIT row_count]
Ejemplo:
DELETE FROM noticias WHERE fecha < CURDATE()-10
Borra las noticias con más de 10 días de antigüedad
CognosInformáticaEducativa
FUNCIONES DE PHP PARA EL ACCESO A
BASES DE DATOS MYSQL
 Los pasos para acceder desde PHP a una base de datos
son los siguientes:
 Conectar con el servidor de bases de datos
 Seleccionar una base de datos
 Enviar la instrucción SQL a la base de datos
 Obtener y procesar los resultados
 Cerrar la conexión con el servidor de bases de datos
CognosInformáticaEducativa
ACCESO A BASES DE DATOS
MYSQL
 Las funciones concretas de MySQL que realizan estas
operaciones son:
 Conectar con el servidor de bases de datos:
 mysql_connect()
 Seleccionar una base de datos:
 mysql_select_db()
 Enviar la instrucción SQL a la base de datos:
 mysql_query()
 Obtener y procesar los resultados:
 mysql_num_rows() y mysql_fetch_array()
 Cerrar la conexión con el servidor de bases de datos:
 mysql_close()
CognosInformáticaEducativa
ACCESO A BASES DE DATOS
MYSQL
 Conectar con el servidor de bases de datos: mysql_connect()
 Devuelve un identificador de la conexión en caso de éxito y
false en caso contrario
 Sintaxis:
$conexion = mysql_connect (servidor, username, password);
 Ejemplo:
$conexion = mysql_connect (“localhost”, “cursophp”, “”)
or die (“No se puede conectar con el servidor”);
$conexion = mysql_connect (“localhost”, “cursophp-ad”, “php.hph”)
or die (“No se puede conectar con el servidor”);
CognosInformáticaEducativa
ACCESO A BASES DE DATOS
MYSQL
 Seleccionar una base de datos: mysql_select_db()
 Devuelve true en caso de éxito y false en caso contrario
 Sintaxis:
mysql_select_db (database);
 Ejemplo:
mysql_select_db (“lindavista”)
or die (“No se puede seleccionar la base de datos”);
CognosInformáticaEducativa
ACCESO A BASES DE DATOS
MYSQL
 Enviar la instrucción SQL a la base de datos: mysql_query()
 Devuelve un identificador o true (dependiendo de la
instrucción) si la instrucción se ejecuta correctamente y false
en caso contrario
 Sintaxis:
$consulta = mysql_query (instrucción, $conexion);
 Ejemplo:
$consulta = mysql_query (“select * from noticias”, $conexion)
or die (“Fallo en la consulta”);
CognosInformáticaEducativa
ACCESO A BASES DE DATOS
MYSQL
 Obtener y procesar los resultados: mysql_num_rows(),
mysql_fetch_array()
 En el caso de que la instrucción enviada produzca unos
resultados, mysql_query() devuelve las filas de la tabla
afectadas por la instrucción
 mysql_num_rows() devuelve el número de filas afectadas
 Para obtener las distintas filas del resultado se utiliza la función
mysql_fetch_array(), que obtiene una fila del resultado en un
array asociativo cada vez que se invoca
 Sintaxis:
$nfilas = mysql_num_rows ($consulta);
$fila = mysql_fetch_array ($consulta);
CognosInformáticaEducativa
ACCESO A BASES DE DATOS
MYSQL
 Ejemplo:
Título 1 Texto 1 05/02/2011
noticias
1
Título 2 Texto 2 05/02/20112
Título 3 Texto 3 04/02/20113
Título 4 Texto 4 01/02/20114
Título 5 Texto 5 31/01/20115
Instrucción:
select * from noticias where categoria=“promociones”
ofertas
promociones
promociones
costas
promociones
CognosInformáticaEducativa
ACCESO A BASES DE DATOS
MYSQL
 Ejemplo:
Título 1 Texto 1 05/02/2004
noticias
1
Título 2 Texto 2 05/02/20042
Título 3 Texto 3 04/02/20043
Título 4 Texto 4 01/02/20044
Título 5 Texto 5 31/01/20045
Instrucción:
select * from noticias where categoria=“promociones”
ofertas
promociones
promociones
costas
promociones
$consulta
$nfilas=3
CognosInformáticaEducativa
ACCESO A BASES DE DATOS
MYSQL
 Obtención de las filas:
$nfilas = mysql_num_rows ($consulta);
if ($nfilas > 0)
{
for ($i=0; $i<$nfilas; $i++)
{
$fila = mysql_fetch_array ($consulta);
procesar fila i-ésima de los resultados
}
}
CognosInformáticaEducativa
ACCESO A BASES DE DATOS
MYSQL
 Obtener los resultados: mysql_num_rows(),
mysql_fetch_array()
 Para acceder a un campo determinado de una fila se usa la
siguiente sintaxis:
$fila[“nombre_campo”]// por ser un array asociativo
$fila[$i] // $i=índice del campo desde 0
 Ejemplo:
for ($i=0; $i<$nfilas; $i++)
{
$fila = mysql_fetch_array ($consulta);
print “Título: “ . $fila[“titulo”];
print “Fecha: “ . $fila[“fecha”];
}
CognosInformáticaEducativa
ACCESO A BASES DE DATOS
MYSQL
 Cerrar la conexión con el servidor de bases de datos:
mysql_close()
 Sintaxis:
mysql_close ($conexion);
 Ejemplo
mysql_close ($conexion);
CognosInformáticaEducativa
EJERCICIOS
 Ejercicio 1: consulta de noticias
 Ejercicio simple de acceso a una tabla de una base de datos.
Ilustra cómo conectar con una base de datos, enviar una
consulta, recuperar los resultados y mostrarlos en pantalla.
 Pasos previos:
1. Crear la base de datos lindavista
2. Crear la tabla noticias en la base de datos lindavista
3. Crear el usuario ‘cursophp’ (sin contraseña)
4. Dar al usuario ‘cursophp’ permiso SELECT sobre la tabla noticias
de la base de datos lindavista
CognosInformáticaEducativa
EJERCICIOS
 Ejercicio 2: Encuesta
 Ilustra cómo actualizar una tabla y cómo generar gráficos
simples
 Pasos previos:
1. Crear la tabla votos en la base de datos lindavista
2. Dar al usuario ‘cursophp’ permisos SELECT y UPDATE sobre
la tabla votos de la base de datos lindavista
CognosInformáticaEducativa
EJERCICIOS
 Ejercicio 3: inserción de noticias
 Se creará un formulario para insertar las noticias en la base de
datos
 Pasos previos:
1. Crear el usuario cursophp
2. Dar al usuario ‘cursophp-ad’ permisos SELECT e INSERT sobre
la tabla noticias de la base de datos lindavista
CognosInformáticaEducativa
EJERCICIOS
 Ejercicio 4: eliminación de noticias
 Se creará un formulario para eliminar noticias de la base de
datos
 Primero se seleccionarán las noticias a eliminar de entre todas
las existentes y a continuación se eliminarán
 Paso previo:
1. Dar al usuario ‘cursophp’ permiso DELETE sobre la tabla
noticias de la base de datos lindavista
CognosInformáticaEducativa

Más contenido relacionado

La actualidad más candente

Combinaciones avanzadas
Combinaciones avanzadasCombinaciones avanzadas
Combinaciones avanzadasShadai Black
 
Codigo para crear la base de datos
Codigo para crear la base de datosCodigo para crear la base de datos
Codigo para crear la base de datosAlvaro Cardona
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datosALYTS
 
Guía Practica conexión BD 2021
Guía Practica conexión BD  2021Guía Practica conexión BD  2021
Guía Practica conexión BD 2021lissette_torrealba
 
7. Utilización de mecanismos de comunicación asíncrona
7. Utilización de mecanismos de comunicación asíncrona7. Utilización de mecanismos de comunicación asíncrona
7. Utilización de mecanismos de comunicación asíncronaLaura Folgado Galache
 
Guía 01. Ejercicios. Creación de Base de Datos en MySQL - José J Sánchez H
Guía 01. Ejercicios. Creación de Base de Datos en MySQL - José J Sánchez HGuía 01. Ejercicios. Creación de Base de Datos en MySQL - José J Sánchez H
Guía 01. Ejercicios. Creación de Base de Datos en MySQL - José J Sánchez HJosé Ricardo Tillero Giménez
 
Sql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datosSql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datosjosecuartas
 
Guia N5 Proyectos Web Consultas Php Y My Sql
Guia N5   Proyectos Web   Consultas Php Y My SqlGuia N5   Proyectos Web   Consultas Php Y My Sql
Guia N5 Proyectos Web Consultas Php Y My SqlJose Ponce
 
Aplication
AplicationAplication
Aplicationwouyrmz
 
Programación de Base de Datos - Unidad 4 Representacion de la info
Programación de Base de Datos - Unidad 4 Representacion de la infoProgramación de Base de Datos - Unidad 4 Representacion de la info
Programación de Base de Datos - Unidad 4 Representacion de la infoJosé Antonio Sandoval Acosta
 
XQuery y XPath for SQL Server 2012 itpros dc_chapter6
XQuery y XPath for SQL Server 2012 itpros dc_chapter6XQuery y XPath for SQL Server 2012 itpros dc_chapter6
XQuery y XPath for SQL Server 2012 itpros dc_chapter6Julián Castiblanco
 
Programación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosProgramación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosJosé Antonio Sandoval Acosta
 

La actualidad más candente (20)

Comandos básicos mysql
Comandos básicos mysqlComandos básicos mysql
Comandos básicos mysql
 
Combinaciones avanzadas
Combinaciones avanzadasCombinaciones avanzadas
Combinaciones avanzadas
 
Codigo para crear la base de datos
Codigo para crear la base de datosCodigo para crear la base de datos
Codigo para crear la base de datos
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
Presentación1
Presentación1Presentación1
Presentación1
 
Mysql adodb pdf_php
Mysql adodb pdf_phpMysql adodb pdf_php
Mysql adodb pdf_php
 
Guía Practica conexión BD 2021
Guía Practica conexión BD  2021Guía Practica conexión BD  2021
Guía Practica conexión BD 2021
 
Base de datos
Base de datosBase de datos
Base de datos
 
7. Utilización de mecanismos de comunicación asíncrona
7. Utilización de mecanismos de comunicación asíncrona7. Utilización de mecanismos de comunicación asíncrona
7. Utilización de mecanismos de comunicación asíncrona
 
Guía 01. Ejercicios. Creación de Base de Datos en MySQL - José J Sánchez H
Guía 01. Ejercicios. Creación de Base de Datos en MySQL - José J Sánchez HGuía 01. Ejercicios. Creación de Base de Datos en MySQL - José J Sánchez H
Guía 01. Ejercicios. Creación de Base de Datos en MySQL - José J Sánchez H
 
Belen carrillo
Belen carrilloBelen carrillo
Belen carrillo
 
Sql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datosSql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datos
 
Guia N5 Proyectos Web Consultas Php Y My Sql
Guia N5   Proyectos Web   Consultas Php Y My SqlGuia N5   Proyectos Web   Consultas Php Y My Sql
Guia N5 Proyectos Web Consultas Php Y My Sql
 
Taller de Base de Datos - Unidad 3 lenguage DML
Taller de Base de Datos - Unidad 3 lenguage DMLTaller de Base de Datos - Unidad 3 lenguage DML
Taller de Base de Datos - Unidad 3 lenguage DML
 
2 6 validar_formularios
2 6 validar_formularios2 6 validar_formularios
2 6 validar_formularios
 
Aplication
AplicationAplication
Aplication
 
Programación de Base de Datos - Unidad 4 Representacion de la info
Programación de Base de Datos - Unidad 4 Representacion de la infoProgramación de Base de Datos - Unidad 4 Representacion de la info
Programación de Base de Datos - Unidad 4 Representacion de la info
 
XQuery y XPath for SQL Server 2012 itpros dc_chapter6
XQuery y XPath for SQL Server 2012 itpros dc_chapter6XQuery y XPath for SQL Server 2012 itpros dc_chapter6
XQuery y XPath for SQL Server 2012 itpros dc_chapter6
 
Programación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosProgramación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetos
 
Manual practicosql
Manual practicosqlManual practicosql
Manual practicosql
 

Similar a Curso php dia4

Similar a Curso php dia4 (20)

Tema4[php]
Tema4[php]Tema4[php]
Tema4[php]
 
PHP_Mysql.pptx
PHP_Mysql.pptxPHP_Mysql.pptx
PHP_Mysql.pptx
 
Apuntes php
Apuntes phpApuntes php
Apuntes php
 
Mysql3
Mysql3Mysql3
Mysql3
 
Bases de datos con PHP y Mysqli
Bases de datos con PHP y MysqliBases de datos con PHP y Mysqli
Bases de datos con PHP y Mysqli
 
Base de Datos por Gustavo V.M
Base de Datos por Gustavo V.MBase de Datos por Gustavo V.M
Base de Datos por Gustavo V.M
 
Trabajo de sistemas de informacion
Trabajo de sistemas de informacionTrabajo de sistemas de informacion
Trabajo de sistemas de informacion
 
Sesion n°6
Sesion n°6Sesion n°6
Sesion n°6
 
Base de datos dinamicas
Base de datos dinamicasBase de datos dinamicas
Base de datos dinamicas
 
Administracion de base de datos
Administracion de base de datosAdministracion de base de datos
Administracion de base de datos
 
PHP Y MYSQL
PHP Y MYSQLPHP Y MYSQL
PHP Y MYSQL
 
Cuarta 1
Cuarta 1Cuarta 1
Cuarta 1
 
Cuarta 1
Cuarta 1Cuarta 1
Cuarta 1
 
php-mysql
php-mysqlphp-mysql
php-mysql
 
Bases de datos, Mysql y phpMyadmin
Bases de datos, Mysql y phpMyadminBases de datos, Mysql y phpMyadmin
Bases de datos, Mysql y phpMyadmin
 
IntroduccióN A Sql Server 2005
IntroduccióN A Sql Server 2005IntroduccióN A Sql Server 2005
IntroduccióN A Sql Server 2005
 
USO DEL LENGUAJE CON SOPORTE EN BASE DE DATOS EN WEB
USO DEL LENGUAJE CON SOPORTE EN BASE DE DATOS EN WEBUSO DEL LENGUAJE CON SOPORTE EN BASE DE DATOS EN WEB
USO DEL LENGUAJE CON SOPORTE EN BASE DE DATOS EN WEB
 
Desarrollo de sitios web con php y my sql
Desarrollo de sitios web con php y my sqlDesarrollo de sitios web con php y my sql
Desarrollo de sitios web con php y my sql
 
PHP Tema 7 - Seguridad
PHP Tema 7 - SeguridadPHP Tema 7 - Seguridad
PHP Tema 7 - Seguridad
 
Php.y.my sql
Php.y.my sqlPhp.y.my sql
Php.y.my sql
 

Más de cognos_uie

Curso php dia6
Curso php dia6Curso php dia6
Curso php dia6cognos_uie
 
Curso php dia5
Curso php dia5Curso php dia5
Curso php dia5cognos_uie
 
Curso php dia5
Curso php dia5Curso php dia5
Curso php dia5cognos_uie
 
Curso php dia3
Curso php dia3Curso php dia3
Curso php dia3cognos_uie
 
Curso php dia2
Curso php dia2Curso php dia2
Curso php dia2cognos_uie
 
Curso php dia1
Curso php dia1Curso php dia1
Curso php dia1cognos_uie
 
Bases de datos my sql
Bases de datos my sqlBases de datos my sql
Bases de datos my sqlcognos_uie
 
Algoritmos diagrama-de-flujo
Algoritmos diagrama-de-flujoAlgoritmos diagrama-de-flujo
Algoritmos diagrama-de-flujocognos_uie
 

Más de cognos_uie (9)

Curso php dia6
Curso php dia6Curso php dia6
Curso php dia6
 
Curso php dia5
Curso php dia5Curso php dia5
Curso php dia5
 
Curso php dia5
Curso php dia5Curso php dia5
Curso php dia5
 
Curso php dia3
Curso php dia3Curso php dia3
Curso php dia3
 
Curso php dia2
Curso php dia2Curso php dia2
Curso php dia2
 
Curso php dia1
Curso php dia1Curso php dia1
Curso php dia1
 
Bases de datos my sql
Bases de datos my sqlBases de datos my sql
Bases de datos my sql
 
Internet
InternetInternet
Internet
 
Algoritmos diagrama-de-flujo
Algoritmos diagrama-de-flujoAlgoritmos diagrama-de-flujo
Algoritmos diagrama-de-flujo
 

Curso php dia4

  • 1. INTRODUCCIÓN A LA PROGRAMACIÓN CON PHP Y MYSQL Acceso a bases de datos MySQL en PHP CognosInformáticaEducativa
  • 2. ACCESO A BASES DE DATOS MYSQL EN PHP 1. Bases de datos en la Web 2. MySQL 3. Herramientas de administración: phpMyAdmin 4. Lenguaje SQL 5. Funciones de PHP para el acceso a bases de datos MySQL 6. Ejercicios 7. Consulta avanzada de tablas CognosInformáticaEducativa
  • 3. BASES DE DATOS EN LA WEB  Las bases de datos permiten almacenar de una forma estructurada y eficiente toda la información de un sitio web  Ventajas – Proporcionar información actualizada – Facilitar la realización de búsquedas – Disminuir los costos de mantenimiento – Implementar sistemas de control de acceso – Almacenar preferencias de los usuarios CognosInformáticaEducativa
  • 4. BASES DE DATOS EN LA WEB  Esquema básico de un sitio web soportado por bases de datos: CognosInformáticaEducativa
  • 5. MYSQL  Características de MySQL  Modelo relacional, multiusuario  Tipos de datos  Numéricos  tinyint, smallint, mediumint, int, integer, bigint  decimal, float, numeric  Fecha y hora  date, time, datetime, year, timestamp  Cadena  char, varchar  tinytext, text, mediumtext, longtext  tinyblob, blob, mediumblob, longblob  enum, set  Debe elegirse adecuadamente el tipo y el tamaño de cada campo CognosInformáticaEducativa
  • 6. MYSQL  Operadores  Aritméticos  +, -, *, /  Comparación  =, !=, <=, <, >=, >, IS NULL, IS NOT NULL  Lógicos  not (!), and (&&), or (||), xor  Funciones  Funciones de cadena  Funciones de comparación de cadenas  Funciones numéricas  Funciones de fecha y hora  Funciones de agregado CognosInformáticaEducativa
  • 7. HERRAMIENTAS DE ADMINISTRACIÓN: PHPMYADMIN  phpMyAdmin es una herramienta para la administración del servidor de bases de datos MySQL  Dispone de una interfaz gráfica y es de libre distribución  Permite realizar todo tipo de operaciones sobre bases de datos:  crear, borrar y modificar tablas  consultar, insertar, modificar y eliminar datos  definir usuarios y asignar permisos  realizar copias de seguridad  etc  Está escrita en php y se ejecuta desde el navegador  Si está instalada en la carpeta phpmyadmin, se ejecuta escribiendo en la barra de direcciones del navegador la url http://localhost/phpmyadmin/  Puede administrar bases de datos locales y remotas CognosInformáticaEducativa
  • 9. LENGUAJE SQL  SQL (Structured Query Language) es el lenguaje que se utiliza para comunicarse con la base de datos  Procedimiento de comunicación con la base de datos: Página PHP Base de datos orden SQL resultado CognosInformáticaEducativa
  • 10. LENGUAJE SQL  Las instrucciones más habituales son SELECT, INSERT, UPDATE, DELETE  Veamos su sintaxis básica y algunos ejemplos de uso  Para ello utilizaremos una tabla noticias con cinco campos: un identificador único de la noticia, el título de la noticia, el texto de la noticia, la categoría de la noticia y la fecha de publicación de la noticia título texto categoría noticias id fecha CognosInformáticaEducativa
  • 11. LENGUAJE SQL  SELECT Sintaxis: SELECT expresión FROM tabla [WHERE condición] [ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] ,...] [LIMIT [offset,] row_count | row_count OFFSET offset] Ejemplo: SELECT * from noticias WHERE fecha=CURDATE() LIMIT 10 ORDER BY fecha DESC Obtiene las noticias del día con un tope máximo de 10, ordenadas de la más reciente a la más antigua CognosInformáticaEducativa
  • 12. LENGUAJE SQL  INSERT Sintaxis: INSERT [INTO] nombre_tabla [(nombre_columna,...)] VALUES ((expresión | DEFAULT),...), (...),... INSERT [INTO] nombre_tabla SET nombre_columna=(expresión | DEFAULT), ... Ejemplo: INSERT INTO noticias (id, titulo, texto, categoria, fecha) VALUES (37, “Nueva promoción en Nervión”, “145 viviendas de lujo en urbanización ajardinada situadas en un entorno privilegiado”, “promociones”, CURDATE()) Inserta una noticia con los valores indicados CognosInformáticaEducativa
  • 13. LENGUAJE SQL  UPDATE Sintaxis: UPDATE nombre_tabla SET nombre_columna1=expr1 [, nombre_columna2=expr2 ...] [WHERE condición] [ORDER BY ...] [LIMIT row_count] Ejemplo: UPDATE noticias SET categoria = “ofertas” WHERE id=37 Modifica la categoría de la noticia con id=37 de la tabla CognosInformáticaEducativa
  • 14. LENGUAJE SQL  DELETE Sintaxis: DELETE FROM nombre_tabla [WHERE condición] [ORDER BY ...] [LIMIT row_count] Ejemplo: DELETE FROM noticias WHERE fecha < CURDATE()-10 Borra las noticias con más de 10 días de antigüedad CognosInformáticaEducativa
  • 15. FUNCIONES DE PHP PARA EL ACCESO A BASES DE DATOS MYSQL  Los pasos para acceder desde PHP a una base de datos son los siguientes:  Conectar con el servidor de bases de datos  Seleccionar una base de datos  Enviar la instrucción SQL a la base de datos  Obtener y procesar los resultados  Cerrar la conexión con el servidor de bases de datos CognosInformáticaEducativa
  • 16. ACCESO A BASES DE DATOS MYSQL  Las funciones concretas de MySQL que realizan estas operaciones son:  Conectar con el servidor de bases de datos:  mysql_connect()  Seleccionar una base de datos:  mysql_select_db()  Enviar la instrucción SQL a la base de datos:  mysql_query()  Obtener y procesar los resultados:  mysql_num_rows() y mysql_fetch_array()  Cerrar la conexión con el servidor de bases de datos:  mysql_close() CognosInformáticaEducativa
  • 17. ACCESO A BASES DE DATOS MYSQL  Conectar con el servidor de bases de datos: mysql_connect()  Devuelve un identificador de la conexión en caso de éxito y false en caso contrario  Sintaxis: $conexion = mysql_connect (servidor, username, password);  Ejemplo: $conexion = mysql_connect (“localhost”, “cursophp”, “”) or die (“No se puede conectar con el servidor”); $conexion = mysql_connect (“localhost”, “cursophp-ad”, “php.hph”) or die (“No se puede conectar con el servidor”); CognosInformáticaEducativa
  • 18. ACCESO A BASES DE DATOS MYSQL  Seleccionar una base de datos: mysql_select_db()  Devuelve true en caso de éxito y false en caso contrario  Sintaxis: mysql_select_db (database);  Ejemplo: mysql_select_db (“lindavista”) or die (“No se puede seleccionar la base de datos”); CognosInformáticaEducativa
  • 19. ACCESO A BASES DE DATOS MYSQL  Enviar la instrucción SQL a la base de datos: mysql_query()  Devuelve un identificador o true (dependiendo de la instrucción) si la instrucción se ejecuta correctamente y false en caso contrario  Sintaxis: $consulta = mysql_query (instrucción, $conexion);  Ejemplo: $consulta = mysql_query (“select * from noticias”, $conexion) or die (“Fallo en la consulta”); CognosInformáticaEducativa
  • 20. ACCESO A BASES DE DATOS MYSQL  Obtener y procesar los resultados: mysql_num_rows(), mysql_fetch_array()  En el caso de que la instrucción enviada produzca unos resultados, mysql_query() devuelve las filas de la tabla afectadas por la instrucción  mysql_num_rows() devuelve el número de filas afectadas  Para obtener las distintas filas del resultado se utiliza la función mysql_fetch_array(), que obtiene una fila del resultado en un array asociativo cada vez que se invoca  Sintaxis: $nfilas = mysql_num_rows ($consulta); $fila = mysql_fetch_array ($consulta); CognosInformáticaEducativa
  • 21. ACCESO A BASES DE DATOS MYSQL  Ejemplo: Título 1 Texto 1 05/02/2011 noticias 1 Título 2 Texto 2 05/02/20112 Título 3 Texto 3 04/02/20113 Título 4 Texto 4 01/02/20114 Título 5 Texto 5 31/01/20115 Instrucción: select * from noticias where categoria=“promociones” ofertas promociones promociones costas promociones CognosInformáticaEducativa
  • 22. ACCESO A BASES DE DATOS MYSQL  Ejemplo: Título 1 Texto 1 05/02/2004 noticias 1 Título 2 Texto 2 05/02/20042 Título 3 Texto 3 04/02/20043 Título 4 Texto 4 01/02/20044 Título 5 Texto 5 31/01/20045 Instrucción: select * from noticias where categoria=“promociones” ofertas promociones promociones costas promociones $consulta $nfilas=3 CognosInformáticaEducativa
  • 23. ACCESO A BASES DE DATOS MYSQL  Obtención de las filas: $nfilas = mysql_num_rows ($consulta); if ($nfilas > 0) { for ($i=0; $i<$nfilas; $i++) { $fila = mysql_fetch_array ($consulta); procesar fila i-ésima de los resultados } } CognosInformáticaEducativa
  • 24. ACCESO A BASES DE DATOS MYSQL  Obtener los resultados: mysql_num_rows(), mysql_fetch_array()  Para acceder a un campo determinado de una fila se usa la siguiente sintaxis: $fila[“nombre_campo”]// por ser un array asociativo $fila[$i] // $i=índice del campo desde 0  Ejemplo: for ($i=0; $i<$nfilas; $i++) { $fila = mysql_fetch_array ($consulta); print “Título: “ . $fila[“titulo”]; print “Fecha: “ . $fila[“fecha”]; } CognosInformáticaEducativa
  • 25. ACCESO A BASES DE DATOS MYSQL  Cerrar la conexión con el servidor de bases de datos: mysql_close()  Sintaxis: mysql_close ($conexion);  Ejemplo mysql_close ($conexion); CognosInformáticaEducativa
  • 26. EJERCICIOS  Ejercicio 1: consulta de noticias  Ejercicio simple de acceso a una tabla de una base de datos. Ilustra cómo conectar con una base de datos, enviar una consulta, recuperar los resultados y mostrarlos en pantalla.  Pasos previos: 1. Crear la base de datos lindavista 2. Crear la tabla noticias en la base de datos lindavista 3. Crear el usuario ‘cursophp’ (sin contraseña) 4. Dar al usuario ‘cursophp’ permiso SELECT sobre la tabla noticias de la base de datos lindavista CognosInformáticaEducativa
  • 27. EJERCICIOS  Ejercicio 2: Encuesta  Ilustra cómo actualizar una tabla y cómo generar gráficos simples  Pasos previos: 1. Crear la tabla votos en la base de datos lindavista 2. Dar al usuario ‘cursophp’ permisos SELECT y UPDATE sobre la tabla votos de la base de datos lindavista CognosInformáticaEducativa
  • 28. EJERCICIOS  Ejercicio 3: inserción de noticias  Se creará un formulario para insertar las noticias en la base de datos  Pasos previos: 1. Crear el usuario cursophp 2. Dar al usuario ‘cursophp-ad’ permisos SELECT e INSERT sobre la tabla noticias de la base de datos lindavista CognosInformáticaEducativa
  • 29. EJERCICIOS  Ejercicio 4: eliminación de noticias  Se creará un formulario para eliminar noticias de la base de datos  Primero se seleccionarán las noticias a eliminar de entre todas las existentes y a continuación se eliminarán  Paso previo: 1. Dar al usuario ‘cursophp’ permiso DELETE sobre la tabla noticias de la base de datos lindavista CognosInformáticaEducativa