Vous êtes sur la page 1sur 3

CONSULTA DE BASES DE DATOS CON AJAX + CLASES EN PHP

Hablar de Programacin Orientada a Objetos (POO) es hablar de clases (y otras funcionalidades) que nos permite escribir cdigo flexible y sobre todo reutilizable. Para muchos resulta dificultoso y tedioso, pero una vez construida nuestra clase podemos hacer uso de ella para cualquier otro desarrollo. Los lenguajes actuales implementan el desarrollo con POO y PHP no se podia quedar atrs (aunque en lo personal no s si implementa todas las caracteristicas de la POO). En esta oportunidad, vamos a ver como usar POO en los ejemplos anteriores de AJAX+PHP, en este caso Consulta de datos. Empezemos: Tabla Empleado en MySQL CREATE TABLE empleados ( idempleado int NOT NULL auto_increment, nombres varchar(32) NOT NULL, departamento varchar(40)NOT NULL, sueldo double, KEY id(idempleado) )TYPE=MyISAM; INSERT INTO empleados VALUES (1, 'Juan Perez', 'Informatica',500.00); INSERT INTO empleados VALUES (2, 'Laura Morales', 'Contabilidad',550.00); INSERT INTO empleados VALUES (3, 'Luis Gutierrez', 'Administracion',850.00); INSERT INTO empleados VALUES (4, 'Pedro Solar', 'Informatica',500.00); INSERT INTO empleados VALUES (5, 'David Vilchez', 'Contabilidad',550.00); Creando Clases y Mtodos Creamos una Clase para la conexin con la Base de Datos, el mtodo conectar() se encargar de verificar y realizar la conexin con la base de datos. A este archivo lo llamamos DBManager.php . <?php //esta clase nos permitira conectarnos a la base de datos class DBManager{ var $conect; //Mtodo constructor function DBManager(){ } //Mtodo que se encargar de la verificar y realizar //la conexin function conectar() { if(!($con=@mysql_connect("localhost","root",""))){ echo"Error al conectar a la base de datos"; exit(); } if (!@mysql_select_db("ribosomatic",$con)) { echo "Error al seleccionar la base de datos"; exit(); } $this->conect=$con; return true; } } ?> Creamos una Clase para los procesos relacionados con el Empleado, como por ejemplo: Consultar sus datos. Para ello el mtodo consultar()realizar este proceso . Previamente, hacemos referencia al

archivo BDManager.php para realizar la conexin. A este archivo de la Clase Empleado lo llamaremos cEmpleado.php . <?php include_once("DBManager.php"); //implementamos la clase empleado class cEmpleado{ //constructor function cEmpleado(){ } // consulta los empledos de la BD function consultar(){ //creamos el objeto $con a partir de la clase DBManager $con = new DBManager; //usamos el metodo conectar para realizar la conexion if($con->conectar()==true){ $query = "select * from empleados order by nombres"; $result = @mysql_query($query); if (!$result) return false; else return $result; } } } ?> El resto es lo mismo, pero.... Ahora realizamos una consulta a los datos, referenciamos al archivo cEmpleado.php que contiene la Clase cEmpleado. Creamos el objeto $objempleados y usamos el mtodo consultar() para que la consulta de los datos, y luego mediante un bucle listamos los datos. Este archivo lo llamamos consulta.php. <?php include_once("cEmpleado.php"); //Sleep deja inactivo el script por n segundos //n es un parametro, en el ejemplo 1 segundo //esto para poder apreciar el gif animado sleep(1); //creamos el objeto $objempleados de la clase cEmpleado $objempleados=new cEmpleado; //la variable $lista consulta todos los empleados $consulta= $objempleados->consultar(); //muestra los datos consultados echo "</p>Nombres - Departamento - Sueldo</p> n"; while($row = mysql_fetch_array($consulta)){ echo "<p>".$row['nombres']." - ".$row['departamento']." - ".$row['sueldo']."</p> n"; } ?> Ahora las funciones JavaScript, entre ellas la que crea el objeto XMLHttpRequest para trabajar con AJAX. Este archivo se llama ajax.js . function objetoAjax(){ var xmlhttp=false; try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

} catch (E) { xmlhttp = false; } } if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp = new XMLHttpRequest(); } return xmlhttp; } function MostrarConsulta(datos){ divResultado = document.getElementById('resultado'); divResultado.innerHTML= '<img src="anim.gif">'; ajax=objetoAjax(); ajax.open("GET", datos); ajax.onreadystatechange=function() { if (ajax.readyState==4) { divResultado.innerHTML = ajax.responseText } } ajax.send(null) } Finalmente, el archivo index.html que contendr un formulario y un botn que al ser pulsado, llamara a la funcin Javascript MostrarConsulta() que se enlaza al archivo consulta.php y el resultado es mostrado dentro de la etiqueta <div id="resultado"></div>. <html> <head> <title>Consulta Registro con AJAX</title> <!-- referenciamos al archivo ajax.js donde se encuentra nuestra funcion objetoAjax--> <script language="JavaScript" type="text/javascript" src="ajax.js"></script> </head> <body> <!-- En "onsubmit" escribimos la funcin 'MostrarConsulta' que creamos en javascript, con su parametro que es el archivo que vamos a mostrar, en este caso 'consulta.php'--> <form name="consulta" action="" onSubmit="MostrarConsulta('consulta.php'); return false"> <label> <input type="submit" value="Consultar" /> </label> </form> <div id="resultado"></div> </body> </html> Como se podr apreciar, el uso de Clases en PHP hace que nuestro cdigo se reutilizable, en prximos ejemplos veremos como seguir implementando otros mtodos a la Clase Empleado, como por ejemplo Insertar, Actualizar y Eliminar registros. Puedes ver el ejemplo en accin o descargar los archivos.