Está en la página 1de 4

1

Consulta 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 !ez construida nuestra clase podemos hacer
uso de ella para cualquier otro desarrollo. "os 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).
%n esta oportunidad !amos a !er como usar POO en los ejemplos anteriores de
&'&()PHP en este caso *onsulta de datos. %mpezemos+
Tabla Empleado en MySQL
CREATE TABLE empleados (
idempleado int NOT NULL auto_increment,
nombres varchar(!" NOT NULL,
departamento varchar(#$"NOT NULL,
sueldo double,
%E& id(idempleado"
"T&'E()*+,A)-
+N,ERT +NTO empleados .ALUE, (/, 01uan 'ere20, 0+n3ormatica0,4$$5$$"-
+N,ERT +NTO empleados .ALUE, (!, 0Laura )orales0, 0Contabilidad0,44$5$$"-
+N,ERT +NTO empleados .ALUE, (, 0Luis 6utierre20,
0Administracion0,74$5$$"-
+N,ERT +NTO empleados .ALUE, (#, 0'edro ,olar0, 0+n3ormatica0,4$$5$$"-
+N,ERT +NTO empleados .ALUE, (4, 08avid .ilche20, 0Contabilidad0,44$5$$"-
Creando Clases y Mtodos
*reamos una *lase para la conexin con la ,ase de -atos el m$todo conectar() se
encargar# de !erificar y realizar la conexin con la base de datos. & este archi!o lo
llamamos DBManager.php .
1
2
9:php
;;esta clase nos permitira conectarnos a la base de datos
class 8B)ana<er=
var >conect-
;;)?todo constructor
3unction 8B)ana<er("=
@
;;)?todo Aue se encar<arB de la veri3icar * reali2ar
;;la coneCiDn
3unction conectar(" =
i3(E(>con(Fm*sAl_connect(GlocalhostG,GrootG,GG"""=
echoGError al conectar a la base de datosG-
eCit("-
@
i3 (EFm*sAl_select_db(GribosomaticG,>con"" =
echo GError al seleccionar la base de datosG-
eCit("-
@
>thisHIconect(>con-
return true-
@
@
:I
*reamos una *lase para los procesos relacionados con el Empleado como por ejemplo+
*onsultar sus datos. Para ello el m$todo consultar()realizar# este proceso . Pre!iamente
hacemos referencia al archi!o BDManager.php para realizar la conexin. & este archi!o de
la *lase %mpleado lo llamaremos cEmpleado.php .
9:php
include_once(G8B)ana<er5phpG"-
;;implementamos la clase empleado
class cEmpleado=
;;constructor
3unction cEmpleado("=
@
;; consulta los empledos de la B8
3unction consultar("=
;;creamos el obJeto >con a partir de la clase 8B)ana<er
>con ( neK 8B)ana<er-
;;usamos el metodo conectar para reali2ar la coneCion
i3(>conHIconectar("((true"=
>Auer* ( Gselect L 3rom empleados order b* nombresG-
>result ( Fm*sAl_Auer*(>Auer*"-
i3 (E>result"
return 3alse-
else
return >result-
@
@
@
2
3
:I
El resto es lo mismo, peroM5
&hora realizamos una consulta a los datos referenciamos al archi!o cEmpleado.php que
contiene la *lase c%mpleado. *reamos el objeto .objempleados y usamos el m$todo
consultar() para que la consulta de los datos y luego mediante un bucle listamos los datos.
%ste archi!o lo llamamos consulta.php.
9:php
include_once(GcEmpleado5phpG"-
;;,leep deJa inactivo el script por n se<undos
;;n es un parametro, en el eJemplo / se<undo
;;esto para poder apreciar el <i3 animado
sleep(/"-
;;creamos el obJeto >obJempleados de la clase cEmpleado
>obJempleados(neK cEmpleado-
;;la variable >lista consulta todos los empleados
>consulta( >obJempleadosHIconsultar("-
;;muestra los datos consultados
echo G9;pINombres H 8epartamento H ,ueldo9;pI NnG-
Khile(>roK ( m*sAl_3etch_arra*(>consulta""=
echo G9pIG5>roKO0nombres0P5G H G5>roKO0departamento0P5G H G5
>roKO0sueldo0P5G9;pI NnG-
@
:I
&hora las funciones 'a!a/cript entre ellas la que crea el objeto (0"Http1equest para
trabajar con &'&(. %ste archi!o se llama ajax.js .
3unction obJetoAJaC("=
var Cmlhttp(3alse-
tr* =
Cmlhttp ( neK ActiveQObJect(G)sCml!5Q)LRTT'G"-
@ catch (e" =
tr* =
Cmlhttp ( neK ActiveQObJect(G)icroso3t5Q)LRTT'G"-
@ catch (E" =
Cmlhttp ( 3alse-
@
@
i3 (ECmlhttp SS t*peo3 Q)LRttpReAuestE(0unde3ined0" =
Cmlhttp ( neK Q)LRttpReAuest("-
@
return Cmlhttp-
@
3unction )ostrarConsulta(datos"=
divResultado ( document5<etElementB*+d(0resultado0"-
divResultado5innerRT)L( 09im< src(Ganim5<i3GI0-
aJaC(obJetoAJaC("-
aJaC5open(G6ETG, datos"-
aJaC5onread*statechan<e(3unction(" =
i3 (aJaC5read*,tate((#" =
divResultado5innerRT)L ( aJaC5responseTeCt
@
3
4
@
aJaC5send(null"
@
2inalmente el archi!o index.html que contendr# un formulario y un botn que al ser
pulsado llamara a la funcin 'a!ascript 0ostrar*onsulta() que se enlaza al archi!o
consulta.php y el resultado es mostrado dentro de la etiqueta 3di! id45resultado5637di!6.
9htmlI
9headI
9titleIConsulta Re<istro con A1AQ9;titleI
9EHH re3erenciamos al archivo aJaC5Js donde se encuentra nuestra 3uncion
obJetoAJaCHHI
9script lan<ua<e(G1ava,criptG t*pe(GteCt;JavascriptG
src(GaJaC5JsGI9;scriptI
9;headI
9bod*I
9EHH En GonsubmitG escribimos la 3unciDn 0)ostrarConsulta0 Aue creamos en
Javascript, con su parametro Aue es el archivo Aue vamos a mostrar, en
este caso 0consulta5php0HHI
93orm name(GconsultaG action(GG
on,ubmit(G)ostrarConsulta(0consulta5php0"- return 3alseGI
9labelI
9input t*pe(GsubmitG value(GConsultarG ;I
9;labelI
9;3ormI
9div id(GresultadoGI9;divI
9;bod*I
9;htmlI
*omo se podr# apreciar el uso de *lases en PHP hace que nuestro cdigo se reutilizable
en prximos ejemplos !eremos como seguir implementando otros m$todos a la *lase
%mpleado como por ejemplo 8nsertar &ctualizar y %liminar registros. Puedes !er el
ejemplo en accin o descargar los archi!os.
4

También podría gustarte