Académique Documents
Professionnel Documents
Culture Documents
PHP y MySQL
INNOVATIVA CENTRO DE TRANSFERENCIA Y DESARROLLO TECNOLGICO ESPE - CECAI Coordinacin: Ing. Mnica Aguirre, MSc. Diseo Pedaggico - Instruccional: Lic. Mauricio Hidalgo Diseo de Contenidos: Ing. David Badillo Correccin Idiomtica: Lcda. Ana Bertha Maldonado Santamara Revisin y Aprobacin: Ing. Mnica Aguirre, MSc. Sangolqu, Ecuador 2
Tabla de contenido
BLOQUE 5: PHP y MySQL ......................................................................4 Unidad 16: Manejo de datos desde PHP ...............................................4 16.1. Conexin a la base de datos ....................................................4 16.2. Consulta de datos desde PHP ..................................................5 16.3. Insercin de registro desde PHP ...............................................6 16.4. Actualizacin de registros desde PHP ........................................6 16.5. Borrar registro desde PHP .......................................................7 Unidad 17: Administracin de tablas (Parte I).......................................8 17.1. Crear formulario para insercin y actualizacin de datos .............8 17.2. Crear funciones para manejo de datos ......................................9 17.2.1. Funciones para guardar registro ............................................9 17.2.2. Funciones para borrar ..........................................................9 Unidad 18: Administracin de tablas (Parte II) ................................... 10 18.1. Reporte de la tabla............................................................... 10 18.2. Crear funciones para manejo de datos .................................... 11 18.3. Implementacin final y pruebas ............................................. 11 3
Para que PHP pueda conectarse y modificar datos de MySQL, se deber utilizar el mdulo de PHP que es php-mysql; en caso de existir dudas de que est cargado o instalado el mdulo, se puede llamar a la funcin phpinfo() y verificarlo.
Lo primero que se debe hacer para comenzar a trabajar con MySQL, es conectarse a la base de datos. Se recomienda usar un solo archivo de conexin en la aplicacin para evitar el cambio a varios lugares, en el caso en que los datos de la conexin fallen. La funcin para conectar es: $conexion = mysql_connect("localhost", "user","password"); Donde: Localhost: Es el nombre del servidor; si el servidor es local, ser siempre localhost, si es remoto debera ir la IP respectiva. User: Es el nombre de usuario de la base de datos con la que quiera conectarse. Password: Es la contrasea del usuario con el cual se quiere conectar a la base de datos.
4
la devolucin de la funcin se la ha
guardado en la variable $coinexion, el motivo es que en esta se guarda un identificador de la conexin para su posterior uso. Pues bien, solo hace falta un paso ms. Como se conoce, un motor
de base de datos, puede tener varias de estas; en este caso, en la conexin no se ha especificado cul es la base de datos que se va a utilizar; para ello entonces utilizamos: mysql_select_db ("nombre_base", $conexion); nombre_base: Es el nombre de la base de datos $conexion: Es el identificador de la conexin que da como resultado de la ejecucin de la funcin mysql_connect ()
5
Para realizar consultas en la base de datos se debe guardar la sentencia SELECT en una variable como se lo anot anteriormente. $sql = 'SELECT * FROM directorio;'; //sentencia SQL guardada en $sql $res = mysql_query($sql); // Se manda con la funcin sentencia SQL. $consulta = mysql_fetch_array($res); // Se guarda el resultado de la consulta en un arreglo llamado $consulta. ejecutar la sentencia SQL
El resultado de la consulta, es almacenada en un ajuste de datos; luego de lo cual, este resultado se lo podr manipular.
Para insertar datos, primero se debe guardar en una variable tipo string la sentencia SQL y luego ejecutar la sentencia. $sql = 'INSERT INTO directorio(id,name) VALUES(3,"David");'; // sentencia SQL de insercin. mysql_query($sql); // se ejecuta la sentencia SQL. Como podrn observar, es ms simple que la consulta, pues solo con la funcin mysql_query() ya se ejecuta la sentencia SQL, que hace la insercin del dato. Lo importante es el poder armar adecuadamente la sentencia SQL. Es recomendable si existen errores en esta parte, que impriman la sentencia SQL para verificar que la sintaxis sea la adecuada. 6
Al igual que el insertar, solo debern poner la sentencia SQL a ejecutar y usar la misma funcin mysql_query() $sql = 'UPDATE directorio SET name="David2" WHERE id=5;'; mysql_query($sql);
Al igual que el insertar y actualizar, solo se debe poner la sentencia SQL que realice el borrado y ejecutar la funcin mysql_query() $sql = 'DELETE FROM directorio WHERE id=5;'; mysql_query($sql);
Pues bien, hemos llegado a la parte final, donde aplicaremos todos los conocimientos adquiridos durante el desarrollo del curso virtual; por lo
tanto, debemos comenzar por disear varias funciones para administrar una tabla de la base de datos.
Lo primero que vamos a efectuar, es la creacin del formulario por el cual el usuario ingresa los datos. 8 Se ha utilizado la tabla contacto que tiene los siguientes campos:
El campo id, solo debe estar presente en la base de datos, recuerda que es auto incremental y no es necesario que sea llamado desde PHP.
Para poder manejar los datos en la base, necesitamos de varias sentencias SQL fundamentales antes vistas: INSERT, UPDATE y DELETE, para ello creamos las funciones las cuales se detallan en los siguientes puntos:
Esta funcin no solo guarda los registros nuevos, si no que si existe el registro debe actualizar los datos, por ende en esta funcin, utilizaremos las sentencias SQL: INSERT y UPDATE. La lgica es la siguiente.
La funcin recibe un parmetro $id, el cual si su valor es igual a NULL, quiere decir que el registro no existe, por ende debe realizar un INSERT, para insertar un nuevo registro; en el caso de que $id sea diferente a NULL, quiere decir que existe un registro y lo que se desea es actualizar, para ello se debe realizar un UPDATE. Analizar el cdigo publicado en RECURSOS COMPLEMENTARIOS con el nombre guarda.php
Para borrar un registro debemos usar la sentencia SQL DELETE, en este caso vamos a crear una funcin que reciba como parmetro el $id, que ser quien identifique que registro debemos borrar.
En la unidad anterior, aprendimos como se deben crear las funciones para la administracin de datos desde el PHP, pues ahora vamos a terminar de construir nuestro sistema que maneja la tabla contactos, comenzando por dibujar un reporte de la tabla con PHP. 10 Analizar el cdigo en Recursos Complementarios el archivo que dice: reporte.php
Como parte importante y nueva, es la funcin mysql_fetch_array(); esta funcin lo que hace, es colocar cada registro en un arreglo de datos, en el cual mediante la sentencia while, vamos recorriendo todos los registros de la tabla.
Por cada interaccin del while, se va creando un arreglo con los datos de cada registro.
Hasta el momento hemos visto las funcionalidades del sistema, sin embargo nos falta la parte ms difcil, en este caso es la creacin de un controlador; esto quiere decir que mientras se ejecuta un evento en el sistema, el controlador debe llamar a la funcin adecuada.
Analizar
el
cdigo
en
Recursos
Didcticos
el
archivo
que
dice
controlador.php 11
Luego de tener listo todo el cdigo, debemos construir la estructura del sitio, en este caso, es aconsejable que todas las funciones las pongamos en un solo archivo y que las llamadas a las mismas vayan en el index.php. Como vimos en el reporte, usamos imgenes, las cuales tambin deben estar bien ubicadas.
images/new.gif images/edit.png
Como vemos, slo el index.php, estara en la raz de nuestro sitio Web. Por favor buscar y estudiar en Recursos Didcticos, el cdigo fuente del sistema; ejemplo que lo hemos explicado en estas dos ltimas unidades, el recurso llamado: contacto.zip; el mismo que contiene la estructura antes descrita y adicionalmente el invertido de la base de datos llamada contacto.sql
En el archivo functions.php, deben poner los datos de su base para que se pueda conectar a la misma.
12
13
Esta obra est bajo una licencia de Creative Commons Reconocimiento-NoComercialSinObraDerivada 3.0 Ecuador