Está en la página 1de 3

CONSULTA DE BASES DE DATOS CON AJAX + CLASES EN PHP

Hablar de Programación Orientada a Objetos (POO) es hablar de clases (y otras funcionalidades) que nos permite escribir código 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 atrás (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 Métodos Creamos una Clase para la conexión con la Base de Datos, el método conectar() se encargará de verificar y realizar la conexión 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; //Método constructor function DBManager(){ } //Método que se encargará de la verificar y realizar //la conexión 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 método consultar()realizará este proceso . Previamente, hacemos referencia al

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

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