Mantenimiento de tablas PHP & MySQL
Tercera Parte
En la primera entrega de este pequeño tutorial vimos como instalar nuestro servidor XAMPP, luego en la segunda entrega vimos como crear nuestra base de datos y las tablas que interactúan con nuestra sencilla aplicación, asi que ahora en esta tercera entrega lo que haremos será ya crear nuestras páginas que nos permitirán manipular nuestra tablita usuarios. Antes que nada crearemos una pagina que contendrá la conexion a la base de datos, esta paginita será incluida en todas las demas que podramos ocupar:
Conexion.php |
Ahora crearemos una pagina que nos servirá como Login y que así mismo nos dará la opción de crear una cuenta si no la tenemos, la primera linea de código: require_once("conexion.php") hace referencia a la conexión creada anteriomente:
Obviamente no tenemos una cuenta creada aún (solo la mía de administrador), asi que crearemos una pagina que nos permita crear una cuenta de usuarios:
Cuando el usuario digite la informacion en dicho formulario y dé click en el boton el llamará a agregar2.php el cual tendrá la lógica de inserción de dicha información en la basesita mantenimiento_tablas aquí les muestro como queda:
Si ponemos atencion a las 3 líneas de código que están debajo del include en este archivo veremos que cada una recibe una variable $_POST, porqué usamos $_POST?, sencillo mis pequeños saltamontes: si ponen atención al formulario que se encuentran en el archivo agregar.php le dijimos que el método que usaríamos era el POST por esa razón en este archivo espera todos las variables de tipo POST con dichos nombres. En el caso de la primera: $_POST['nombre']; espera la variable que se ponga en el primer textbox al cual le pusimos de nombre NOMBRE y así sucesivamente en cada uno de ellos...
Al final si dicha información se almacenó en nuestra base de datos entonces nos redireccionará a Login.php para poder ingresar con el nuevo usuario. El objeto $mysqli es una instancia de la clase $mysqli declarada en conexion.php
Ahora debemos poner la lógica en el formulario Login.php, si el usuario y password existen entonces debe preguntar si el tipo de usuario es administrador (1) o solo un usuario (2) si es usuario deberá dejarlo entrar en la pagina Lista.php, sino deberá entrar en Admin.php. Si no existe mostrará un mensaje diciendo que se ha equivocado.
En esta página podrán ver la propiedad NUM_ROWS del método MYSQLI_RESULT, el cual nos permite obtener el numero de filas de un resultado, en este caso el resultado almacenado en la variable $existe.
Antes de crear la lógica del administrador donde se visualizarán todos los registros de los usuarios en nuestra base, crearemos un archivo que contendrá unas funciones que mandaremos a llamar mas adelante:
Ahora lo que haremos será crear la página Admin.php que será donde se mostrará la lista de usuarios que están registrados en nuestra basesita de datos. Como la cosa se pone algo buena a esta altura explicaré la porción del código parte por parte :
(El botón al principio lo haremos en la cuarta entrega). Quiero que se fijen en el HEAD que mandamos a llamar a la función creada anteriormente, esta función será invocada en el botón activar y desactivar con el evento ONCLICK, y el cual retorna el valor que se seleccione (ver archivo: funciones.js), esto solamente para estandarizar un sistema de modo que si alguien hace alguna acción es porque está completamente consciente de lo que hace.
Login.php |
Agregar.php |
Agregar2.php |
Al final si dicha información se almacenó en nuestra base de datos entonces nos redireccionará a Login.php para poder ingresar con el nuevo usuario. El objeto $mysqli es una instancia de la clase $mysqli declarada en conexion.php
Ahora debemos poner la lógica en el formulario Login.php, si el usuario y password existen entonces debe preguntar si el tipo de usuario es administrador (1) o solo un usuario (2) si es usuario deberá dejarlo entrar en la pagina Lista.php, sino deberá entrar en Admin.php. Si no existe mostrará un mensaje diciendo que se ha equivocado.
Login2.php |
Antes de crear la lógica del administrador donde se visualizarán todos los registros de los usuarios en nuestra base, crearemos un archivo que contendrá unas funciones que mandaremos a llamar mas adelante:
funciones.js |
admin.php |
Obviaré las explicaciones sobre la creación de la tablita, solamente les diré que el código que ocupemos no será PHP puro, es decir que no crearemos nuestras paginas con PHP sino mas bien que incrustaremos el código PHP en el HTML, porqué? simplemente porque este es mi blog jaja ¬ ¬ ' la verdad es porque asi quiero, asi que ni modo, asi aprenderas por el momento. Crearemos nuestro query justo después del encabezado de la tablita (ponganlo en una sola línea como se muestra en la imagen, pueden copiar y pegar):
$lista_usuarios = mysqli_query($mysqli, "SELECT A.nombre_usuario, A.usuario, A.password, date_format(A.fecha_creacion, '%M %d, %h:%m %p'), A.creado_por, A.activo, B.tipo_usuario, A.id_usuario from usuarios A join tipo_usuario B on A.id_tipo_usuario = B.id_tipo_usuario");
Obtendremos los siguientes campos de las 2 tablas de nuestra base: nombre_usuario, usuario, password, fecha_creacion, creado_por, activo, id_usuario; Los cuales son campos de la tabla USUARIOS. El campo tipo_usuario de la tabla TIPO_USUARIOS, para tomar dichos campos ocuparemos el JOIN para unir ambas tablas.
Con respecto a date_format el cual aparece en el campo fecha_creacion, esto tiene un uso específico en el tratamiento de fechas desde la base de datos ayudandonos a mostrar si quisieramos minutos, segundos, meses, año, etc según el formato que querramos, por esa razon aparecen entre comillas y precedidos por signo de porcentaje las letras M, d, h, m, p. Sería ideal que investiguen más sobre estos usos en esta página aquí.
El query que encontrarán justo después de este nos ayuda a obtener el nombre del usuario que agrego a ese usuario ya que solamente se guarda el id del que lo creo, asi que debemos mostrar su nombre. Si el usuario mismo crea su cuenta aparecerá su nombre, si el administrador agregó esa cuenta aparecerá el nombre del administrador.
El IF continua simplemente comprueba que hayan registros en el query formulado, si los hay entra en un lazo WHILE de modo que permita recorrer el arreglo almacenado en la variable $lista_usuarios por el índice o la posición dentro de la tabla (0,1,2,3...) (ver manual) permitiendo llenar la tabla en las respectivas celdas al momento de llamarse cada uno según la posicion que hayamos definido en el HEADER de la tabla.
Ahora pasaremos a explicar la siguiente línea de código:
<td><a href="editar_user.php?id=<?php echo $datos_usuarios[7] ?>"><input type="button" value="Editar" style="background-color:#0080FF; color:#ffffff"></a></td>
Este botón lo que hace es que cuando se pulsa toma el id del usuario que se quiere editar, eso se logra pasando variables através de url's con el href, ponemos signo ? y luego un identificador que tome la variable que querramos mandar a esa página que invocamos, en este caso ponemos el id del usuario que ponemos en el identificador id <a href="editar_user.php?id=<?php echo $datos_usuarios[7] ?>">, de esa forma al cargar la página obtendrá dicha variable con el método GET que explicaremos luego.La misma lógica aplicaría para los botones activar y desactivar.
Creando página editar_user.php:
Cuando demos click en el botón editar en cualquiera de los usuarios que se muestren en la tabla usuarios nos redireccionará a la página:editar_user.php.
editar_user.php |
Ahora para poder mostrar información sobre el usuario selecccionado se hace con el query siguiente (se los pongo porque no aparece completo en la captura):
$query_usuario = mysqli_query($mysqli, "SELECT A.id_usuario, A.nombre_usuario, A.usuario, A.password, date_format(A.fecha_creacion, '%M %d %h:%m %p'), A.creado_por, B.tipo_usuario, A.activo from usuarios A JOIN tipo_usuario B on A.id_tipo_usuario = B.id_tipo_usuario where A.id_usuario = '".$_GET['id']."'");
Al mostrarse los campos de este usuario solo hay dos campos que quiero que se puedan modificar: nombre_usuario y el password, si ustedes quieren pueden hacerlo lo unico que tienen que hacer es agregar INPUTs y para mostrar en ellos el valor ponerlos en VALUES de esa forma cuando se dé click al boton Guardar Cambios se procesarán en la página editar_user2.php.
editar_user2.php |
Lo que haremos ahora será crear la lógica de los botones ACTIVAR y DESACTIVAR que se encuentran en el archivo admin.php y que nos llevan a cualquiera de ellos al pasar por funciones.js, veremos el comportamiento de desactivar_user.php:
desactivar_user.php |
desactivar_user2.php |
Ahora pasaremos a crear el archivo activar_user.php:
activar_user.php |
activar_user2.php |
http://makeagif.com/i/8GyXuc
Saludes desde El Salvador Proyecto en rar: descargar
No hay comentarios:
Publicar un comentario
Gracias por tu opinión