PHP Y BASES DE DATOS M.I María Luisa González Ramírez Introducción a SQL SQL es el lenguaje usado para interactuar con las base de datos. Es un lenguaje normalizado, utilizado por los diferentes motores de bases de datos para realizar determinadas operaciones sobre los datos o sobre la estructura de los mismos 1
Introducción Una base de datos es una aplicación muy potente para gestionar datos Vamos a utilizar MySQL que es el manejador de BD que se encuentra instalado en computacion. Pero existen otros manejadores como PostgreSQL, Oracle, Informix, SQL Server. Las sentencias SQL son estándares. Mysql gestor de BD Un gestor de base de datos. Sencillo Gratuito Rápido y eficiente. Para linux/windows 2
Mysql Consultar datos Seleccionar una BD y ver sus tablas Mysql Consultar datos Para consultar una tabla. SELECT (campos) FROM (tablas) WHERE (condiciones) ; 3
Mysql Consultar datos Ejemplo Select * from Datos where id>1; Mysql Insertar Datos Para insertar datos hay dos formas INSERT INTO (tabla) (campo1,...,campon) VALUES (valor1,...,valorn) INSERT INTO (tabla) SET campo1=valor1,...,campon=valorn 4
Mysql Insertar Datos Insert into Datos (nombre,id,direccion,telefono) values ( el nombre,4, calle x, 2393984 ); NOTA: IMPORTANTE el valor del id deben de ser numeros consecutivos al kinsertar los renglones en la tabla Ejemplo de insertar con set Insert into Datos set nombre= nombre,id=5,direccion= la direc,telefono= 98786 ; 5
Mysql Crear Tabla CREATE TABLE [IF NOT EXISTS] tbl_name ( col_name1 data_type options,... col_namen data_type options,); Mysql crear tabla data_type: INT[(length)] [UNSIGNED] [ZEROFILL] DOUBLE[(length,decimals)] [UNSIGNED] [ZEROFILL] DATE TIMESTAMP VARCHAR(length) TEXT BLOB ENUM(value1,value2,value3,...) 6
Options: [NOT NULL NULL] [DEFAULT default_value] [AUTO_INCREMENT] [UNIQUE [KEY] [PRIMARY] KEY] [COMMENT 'string'] Ejemplo Create table socios(socio_id varchar(7) primary key, nombre varchar(60), email varchar(60)); 7
PHP y Mysql Para poder conectarse a Mysql deben considerar la siguiente informacion. Server - computacion.mxl.uabc.mx Database - nombrebd Table - nombretabla Username - student Password - testjavay PHP Mysql Para conectarse <?php mysql_connect( computacion.mxl.uabc.mx", student", testjavay") or die(mysql_error()); echo "Conectado a MySQL<br />"; Mysql_select_db( Clientes ) or die(mysql_error());?> 8
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 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() 9
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( computacion.mxl.uabc.mx, student, )or die ( No se puede conectar con el servidor ); $conexion = mysql_connect ( computacion.mxl.uabc.mx, student, testjavay ) or die ( No se puede conectar con el servidor ); 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 ( Clientes ) or die ( No se puede seleccionar la base de datos ); 10
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 datos, $conexion) or die ( Fallo en la consulta ); 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); 11
Ejemplo: Datos Nombre Id Direccion Telefono Maria Lopez 1 Brranca 900 5552452 Lupita Martinez 2 Lago venecia 123 jardines 23456 Karen Herrera 3 col ahumadita calle polvorin #34 345667 Instrucción: select * from datos where id>1 Ejemplo: Datos Nombre Id Direccion Telefon o Maria Lopez 1 Brranca 900 555245 2 Lupita Martinez 2 Lago venecia 123 jardines 23456 Karen Herrera 3 col ahumadita calle polvorin #34 345667 $consulta $nfilas=2 Instrucción: select * from datos where id>1 12
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 Obtener los resultados: mysql_num_rows(), mysql_fetch_array() Para acceder a un campo determinado de una fila se usa la siguiente sintaxis: Ejemplo: $fila[ nombre_campo ] // por ser un array asociativo $fila[$i] // $i=índice del campo desde 0 for ($i=0; $i<$nfilas; $i++) { $fila = mysql_fetch_array ($consulta); print Título:. $fila[ titulo ]; print Fecha:. $fila[ fecha ]; } 13
Cerrar la conexión con el servidor de bases de datos: mysql_close() Sintaxis: mysql_close ($conexion); Ejemplo mysql_close ($conexion); Ejercicios Ejercicio 1: consulta de datos 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. Con su base de datos 2. Realice un query sobre la tabla que crearon en la clase pasada para consultar todos los datos. 3. Muestre los resultados del query en una tabla. 4. Realice otro query con un select condicionado 5. Muestre los resultados en una tabla 14
Formulario Podemos hacer un formulario html y combinarlo con javascript para validar los datos. El script de respuesta de la forma 15
PHP Netbeans Baje e instale el paquete wamp Windows+apache+mysql+php http://sourceforge.net/projects/wampserver/files/w ampserver%202/wampserver%202.1/wampser ver2.1e-x32.exe/download Ejercicios Ejercicio 2: Insertar datos. Cree un formulario donde solicite los datos de su tabla Invoque el php indicado para poder insertarlos en la tabla Ejercicio 2: eliminar datos. Cree un formulario donde solicite un dato para poder seleccionar los datos de su tabla Invoque el php indicado para poder eliminarlo en la tabla 16