Hola amigos!
Por aca les dejo un util video sobre como hacer procedimientos almacenados con MySQL Workbench
espero les sirva. Si les gusto les agradezco su Like y suscripcion a mi canal:
El Blog de Ferguson
Anotaciones de programacion, tecnologías, conocimientos, tips, etc...
lunes, 5 de junio de 2017
lunes, 22 de diciembre de 2014
Menú dinámico con PHP & MySQL
Antes que nada quiero agradecerle a mi amigo Cesar Araujo que fué quien al final me dio un lumbrazo sobre la idea que tenía pero que no funcionaba hasta que le pedí su ayuda.
Sucede que muchas veces queremos asignar menus a ciertos usuarios y hay ciertos menus que no deben ser vistos por algunos usuarios por ello debemos crear un menu que sea dinámico. He aquí una idea de como pueden hacer su menu dinámico:
Primero les presento mis tablas:
Tabla menus contendra las url de los sitios que queremos accesar.
Tabla menus_usuarios es una tabla pivot que contendra info de la tabla usuarios y de la tabla menus. En ella podemos ver que el usuario 1 tiene acceso a los menus 1,2,3,4; Donde estado es lo que nos indica el acceso: 1 habilitado, 0 no acceso
Esta es mi tabla usuario donde muestro unicamente mi usuario administrador
Ahora les mostrare rapidamente solamente la parte de los menus. El siguiente formulario contiene una lista de checkboxes la cual es generada a partir de un query a la tabla menus de modo que mostrara la cantidad de checkboxes igual a la cantidad de menus en la tabla:
Este formulario se encuentra en una pagina llamada: usuarios.php la cual al apretar el boton submit invoca a la pagina usuarios2.php, la cual procesa dicha informacion de la forma siguiente:
Debo mencionar que antes de hacer este codigo he insertado previamente al usuario al cual quiero asignar dichos menus, por esa razon verán la variable $id_user[0] al momento de insertar en la tabla menus_usuarios. Verán solamente tres valores y es porque dicha tabla tiene la columna id_menus_usuarios autoincrementable.
Por acá les dejaré el codigo TALVEZ les sirve ya que es de mi proyecto, pero algo es algo! jaja
Saludes desde El Salvador.
Codigo: https://www.dropbox.com/sh/qlzha579lc6ukf5/AABxyCTN0x1_TYtUqk59L_RTa?dl=0
Sucede que muchas veces queremos asignar menus a ciertos usuarios y hay ciertos menus que no deben ser vistos por algunos usuarios por ello debemos crear un menu que sea dinámico. He aquí una idea de como pueden hacer su menu dinámico:
Primero les presento mis tablas:
Tabla menus contendra las url de los sitios que queremos accesar.
Esta es mi tabla usuario donde muestro unicamente mi usuario administrador
Ahora les mostrare rapidamente solamente la parte de los menus. El siguiente formulario contiene una lista de checkboxes la cual es generada a partir de un query a la tabla menus de modo que mostrara la cantidad de checkboxes igual a la cantidad de menus en la tabla:
Este formulario se encuentra en una pagina llamada: usuarios.php la cual al apretar el boton submit invoca a la pagina usuarios2.php, la cual procesa dicha informacion de la forma siguiente:
Debo mencionar que antes de hacer este codigo he insertado previamente al usuario al cual quiero asignar dichos menus, por esa razon verán la variable $id_user[0] al momento de insertar en la tabla menus_usuarios. Verán solamente tres valores y es porque dicha tabla tiene la columna id_menus_usuarios autoincrementable.
Por acá les dejaré el codigo TALVEZ les sirve ya que es de mi proyecto, pero algo es algo! jaja
Saludes desde El Salvador.
Codigo: https://www.dropbox.com/sh/qlzha579lc6ukf5/AABxyCTN0x1_TYtUqk59L_RTa?dl=0
jueves, 11 de diciembre de 2014
Integrar CKEditor con CKFinder WYSIWYG Editor
Haremos un ejercicio completo que comprenderá desde la instalacion de CKEditor en tu sitio hasta la integracion de CKFinder con CKEditor.
Lo primero que haremos será descargar nuestro editor CKEditor y nuestro administrador de archivos web CKFinder de su sitio oficial, cualquiera de las opciones Basic Package, Standar Package, Full Package nos servirá para trabajar. La diferencia de cada uno radica en los elementos (botones) que se presentarán en nuestro editor:
![]() |
Descargar CKEditor from sitio oficial |

Luego de descargarlo vamos a integrarlo en nuestra pagina web de la siguiente manera. En la seccion Head de nuestra página vamos a agregar el siguiente código:
<script type="text/javascript" src="ckeditor/ckeditor.js"></script>
<script type="text/javascript" src="ckfinder/ckfinder.js"></script>
Donde SRC muestra la ruta donde se encuentra la carpeta CKEditor & CKFinder que descargaste anteriormente:
Para que tengan una idea de como tengo mis archivos les muestra esta imagen:
![]() |
Referenciar librerias CKEditor en nuestra pagina web |
![]() |
Ubicacion de archivos en Xampp |
Vamos a ver una muestra de como se ve cuando lo vemos en nuestro localhost:
Ahora vamos a probar la subida de archivos dando click en el icono imagen junto al icono flash:
Al dar en el boton "Send it to the Server", probablemente experimentes el siguiente error:
La solucion para este problema checkAuthentication function la cual se encuentra en el archivo config.php de la carpeta CKFinder, cambiar a TRUE a la variable return, asi:
Guardamos los cambios en dicho archivo y ahora si vamos a subir una imagen en nuestro editor:
Sencillo y corto pero espero les sirva, por acá les dejo un poco de la documentacion utilizada para dichos editores y administradores de archivos.
http://docs.cksource.com/CKFinder_2.x/Developers_Guide/PHP/CKEditor_Integration
http://docs.ckeditor.com/#!/guide/dev_file_browse_upload
http://docs.ckeditor.com/#!/guide/dev_file_browser_api
Saludos desde El Salvador!
miércoles, 27 de agosto de 2014
Tutorial PHP & MySQL (recomendado beginners) Mantenimiento de tablas
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
lunes, 25 de agosto de 2014
Tutorial PHP & MySQL (recomendado beginners) Mantenimiento de tablas
Mantenimiento de tablas PHP & MySQL
Segunda Parte
En la primera entrega de este pequeño tutorial vimos como instalar nuestro servidor XAMPP, asi que ahora lo que haremos será crear el enunciado de lo que queremos crear:
"Cree un mantenimiento de usuarios, el cual pueda saber la fecha en que el usuario ha sido creado, así mismo que pueda ser categorizado con tipo de usuario: Administrador o simple usuario. El administrador podrá activar o desactivar al usuario o borrarlo si es necesario (solo administradores podrán borrarlo) y actualizarlo (solo el usuario podrá modificar su perfil o el administrador)".Vamos a crear nuestras tablas en la herramienta phpmyadmin que nos permite administrar nuestra base de datos, asi que accederemos a PhpMyadmin através del navegador de la siguiente forma: Localhost:8080\phpmyadmin allí crearemos la base de datos mantenimiento_tablas y luego crearemos la primera tabla usuarios:
Podríamos crear las tablas una por una de esta forma según esta ultima imagen sin embargo, también podríamos utilizar el diseñador de tablas que se encuentra justo al entrar en la base de datos recién creada y luego buscar en la opcion más, se desplegará un menú, al final encontrarás la opción diseñador.
![]() |
Creando tabla usuarios |
De esa forma quedará la tabla usuario según se visualiza en la imagen arriba, el tipo de valor TIMESTAMP en la columna fecha_creacion se llenará automaticamente al insertar el registro de ese usuario insertando la fecha y hora exacta del servidor en ese momento. El campo id_usuario igualmente se incrementará automaticamente ya que el valor de la columna A_I(auto incremente) está seleccionado y olvide mencionarles que es primary key (id_usuario). Al final las tablas quedarían así:
La tabla Tipo_usuario contendrá los 2 tipos de usuarios disponibles: administrador y usuario, asi que obviamete hay que hacer una relación entre las 2 tablas para que puedan interactuar entre sí. Cómo se logra esto? sencillo, vamos a crear un indice en la tabla que esta referenciando (Usuarios), justamente en la columna id_tipo_usuario de la forma siguiente:
Luego de haber creado el índice en dicha columna, debemos ir a la opción que dice "Vista de relaciones" y luego hacer lo siguiente:
Llenaremos desde aquí la tabla: Tipo_usuarios:
Al agregar estos dos tipos de usuarios en la tabla Tipo_usuarios procederemos a crear un usuario en la tabla usuario que es el que nosotros ocuparemos como Administrador:
Al final el nuevo registro de nuestro usuario quedará tal y como se ve en la imagen que se muestra arriba.
Hasta acá llega esta segunda parte pero en la tercera parte si programaremos ya en PHP, solo que necesitabamos tener listo nuestro ambiente de trabajo para que todo funcione perfecto. Quieres ver la primera parte? click aquí
Saludos desde El Salvador
Tutorial PHP & MySQL (recomendado beginners) Mantenimiento de tablas
Mantenimiento de tablas PHP & MySQL
Primera Parte
Antes de comenzar con este sencillo, pero para algunos salvador tutorial, debo decirles que no ocuparemos ningún framework en especial sino que toda la programación será practicamente secuencial pero si quisieras aprender un framework en específico aquí te dejo un tuto muy bueno del YII el cual es un framework basdo en MVC click aquí sin embargo en nuestro tutorial ya para empezar necesitaremos descargar las herramientas necesarias para poder comenzar, acá les pongo una gran lista de lo que necesitaremos:
- XAMPP*: Y si! esto es lo unico que instalaremos en nuestros equipos para poder trabajar. La sencilla razón de solo descargar esto es porque XAMPP es un servidor que contiene en un solo lugar el sistema gestor de base de datos: MySQL, el servidor web APACHE y el intérprete para el lenguage PHP.
- Bueno, parece que olvide también mencionarles que necesitaremos un editor para poder escribir nuestro codigo PHP, para esto ocuparemos un editor bien uva: SUBLIME (aunque ustedes podrían ocupar notepad++, o el de su preferencia.)
*(XAMPP lo podemos descargar desde acá!)
- Instalando XAMPP: (Si ya lo tienes obvia este paso y sigue a la parte 2 aquí)
Luego de haber descargado el XAMPP, lo ejecutaremos y seguiremos el asistencia de instalación (llamado también "Modo Señorita" por el Ing. E********** M***a**do)
Antes de terminar la instalación nos pedirá si queremos inicializar el control panel de XAMPP, dicho checkbox por defecto esta "checkeado" o como dicen los amigos mexicanos "palomeados".
A continuacion levantamos los servicios a necesitar en este caso Apache y MySQL. En mi caso al tratar de inicializar el servicio de Apache podría salirnos el mensaje que vemos en esta ultima imagen: la razón de este problema es que el puerto que trae configurado por defecto el apache (en este caso el 80), otra aplicación más la esta utilizando, asi que la solución para esto es que vayamos a la opcion siguiente, boton Config de Apache y elegir la primera opción httpd.conf, así:
La línea de código que esta subrayada nos muestra que el archivo httpd.conf tiene configurado escuchar al puerto 80, por lo tanto debemos cambiar a otro puerto que pueda estar libre; En mi caso yo pondré el puerto 8080 y damos en guardar.
Ahora cuando damos al boton Start de Apache nos cargará los servicios sin ningún problema y cambiará el estatus a running:
Ahora comprobaremos que realmente levante nuestro servicio, asi que iremos a nuestro navegador y pondremos en la barra de direcciones lo siguiente: localhost:8080, y debería salirnos lo siguiente:
Pues bien, hemos comprobado que todo corre perfectamente, ahora veremos una pagina sencilla siendo levantada por Apache. En el directorio siguiente C:\xampp\htdocs\ en esta carpeta deberás poner todos tus proyectos que quieras visualizar en tu navegador. Ahora quiero que digites en tu navegador la siguiente direccion: localhost:8080\index.html y debería mostrarte la pagina siguiente:
Y de esta forma ya queda instalado correctamente tu XAMPP para que levantes tus proyectitos!! Saludes desde El Salvador... Ver segunda parte IR
Puedes visitar mi canal en YouTube para ver otros videos, algunos son de programación con C# y otros de Android y otros que quizas no quieran ver... jajaja 01010011 01000001 01001100 01010101 2!!!
sábado, 5 de abril de 2014
Integrar redes sociales a sitio web parte 2
En la ultima entrada vimos como integrar Facebook en nuestro sitio web (Ver aqui). Pues ahora integraremos otra red social muy usada la cual es Twitter. A comparacion de la integracion de Facebook, Twitter es mucho mas fácil, asi que... comenzemos!
Suscribirse a:
Entradas (Atom)