Ir al contenido principal

Conexión con base de datos MySQL con PHP y diseño de formularios

 Conexión con base de datos MySQL con PHP y diseño de formularios

Hace algunos años para obtener tu Clave Única de Registro de Población (CURP) era necesario trasladarte a la oficina correspondiente para tramitar una copia pero en la actualidad puedes hacerlo a través de una página del gobierno de México (https://www.gob.mx/curp/) ¿Cómo crees que funciona está página? ¿Por qué crees que la página puede proporcionar tanta información? ¿Crees que existe una base de datos con la información de todos los ciudadanos? ¿Quiénes no podrían consultar su CURP?
Las páginas web pueden ser de dos tipos: estáticas y dinámicas. La primeras son aquellas cuyos contenidos permanecen siempre igual, en cambio las páginas dinámicas se caracterizan porque su contenido es variable y se actualiza de acuerdo con la información que se quiera mostrar. Existe un gran número de páginas y portales web que han sido creados con el lenguaje PHP, generalmente es utilizado para la creación de páginas dinámicas.
Tomando en cuenta el desarrollo de un sistema para una biblioteca, se está considerando que las bases de datos sean manejadas de manera dinámica por medio de un sistema Web; para ello deberás implementar la integración entre PHP (que es el lenguaje de programación que manipulará los datos en el flujo de las páginas WEB) y la base de datos que se había generado en MySQL (que es el servidor donde se almacena los datos estructurados). 
Observa el proceso que se lleva a cabo en un sistema web lineal.
 1. El usuario hace una solicitud de consulta de una página web. 
2. Esta solicitud viaja por la nube de internet hasta que encuentra el servidor que tiene almacenado esta página. 
3 El servidor busca en su almacenamiento interno la página solicitada. 
4. Una vez encontrada la envía de regreso a la nube de internet hacia el usuario, si él necesita más información que se encuentra contenida en la página web recibida, volverá a hacer una solicitud de información y con esta se repetiría el mismo proceso, con esto se gastaría más datos de conexión.

revisa el proceso de un sistema web dinámico.
 1. El usuario realiza una solicitud en una página web. 
2. La solicitud se envía vía internet para buscar el servidor que almacena los datos de la página.
 3. El servidor web realiza las consultas necesarias, por medio del código PHP, en el servidor MySQL para que la información y las consultas sean almacenadas en una página dinámica HTML. 
4. La página dinámica regresa al usuario pasando vía internet, pero esta página contiene más información, esta información permanece oculta hasta que el usuario decida consultarla, estas consultas ya se realizan en el mismo cliente y ya no es necesario que vuelva a hacer una nueva solicitud de una nueva página web.
 Las flechas que se observan sin un número indica el procesamiento que se hace en el servidor, donde interviene el lenguaje de programación PHP, el gestor de bases de datos MySQL y la página HTML ya mencionada, entre los tres generan el resultado del que ya se habló.

 Para poder desarrollar una página dinámica con el uso del lenguaje PHP con MySQL, es necesario revisar algunas definiciones para que comprendas cómo es la comunicación en un sistema web dinámico.

● Aplicaciones WEB: Según Minera (2014) las aplicaciones se pueden clasificar en: portátiles, de escritorio y web. Para que una aplicación sea considerada aplicación web, esta debe ser ejecutada en el servidor web y no en el usuario, es decir, que los datos con los que se trabaja son procesados y almacenados en el servidor web, por ejemplo el sitio donde se obtiene la CURP, el proceso se ejecuta y los datos se encuentran en el servidor (computadora donde están guardados los archivos de esa página) y el usuario únicamente recibe la respuesta y el documento para imprimirse. Cabe mencionar que las aplicaciones portátiles son aquellas que pueden ser utilizadas sin instalarse en un equipo de cómputo, es decir sin ocupar espacio en disco y las de escritorio son aquellas que requieren instalarse en el equipo de cómputo y ejecutarse desde el mismo utilizando espacio en disco. Las aplicaciones (Apache e IIS son los exponentes más conocidos) se encargan de generar las respuestas, en los casos en los que es necesario, de otros actores como los mencionados antes: servidores de bases de datos (Oracle, SQL Server, MySQL, PostgreSQL, por ejemplo) y lenguajes de programación (PHP, ASP.net, JSP, o PERL, entre otros). (Minera, 2014) Es de gran importancia que los sistemas dinámicos contengan la integración del lenguaje de PHP, este lenguaje ayudará a manipular la información que se encuentra contenida en un servidor de base de datos, el HTML como constructor visual, debe estar viene estructurado para que la información que sea manipulada sea mostrada de manera eficiente.
● Arquitectura cliente-servidor: Es un modelo de software, en el que se determinan dos figuras: el servidor que es el que procesa, ejecuta y almacena la información y, el cliente que solicita o demanda la información. El cliente hace una petición, presionando un botón o haciendo clic en un enlace (por ejemplo, a través de un enlace), y el servidor deberá, por un procesamiento, resolver la demanda y devolver una respuesta. La aplicación cliente es el navegador web, desde esta clase de programas accedemos a la interfaz del sistema para interactuar con él.
 ● Lenguajes de script de servidor: Las páginas web se crean mediante lenguaje HTML, éste es un lenguaje muy limitado para atender a los requerimientos que actualmente se exigen, como mostrar grandes cantidades de información almacenada en una base de datos o la generación y ejecución de procesamiento de datos. Por ello, aparecieron lenguajes y mejoras en el servidor, en donde el programador añade al código HTML códigos de otro lenguaje (PHP), pero con la diferencia, que este código no se le envía al cliente, sino que es el servidor el que lo interpreta, lo ejecuta y el cliente recibirá una página HTML normal con los resultados ya plasmados.
Un ejemplo básico para entender la interacción de un sistema web dinámico: Cuando un usuario desea ingresar con su cuenta en un sistema web, como por ejemplo ingresar a una cuenta de correo electrónico o a Facebook (normalmente realizada en código HTML), se muestra un formulario de inicio de sesión; una vez que captura sus datos y presiona el botón de acceso (login), la información es enviada o redireccionada a una página construida en un lenguaje de programación (normalmente PHP). La página se ejecuta en el servidor web, verifica si el usuario y contraseña está almacenada en la base de datos MySQL. Cuando el usuario y contraseña están verificados habrá dos posibles escenarios:
 ● Si la página no encuentra el usuario y contraseña se genera una respuesta negativa por medio de una página con código PHP se crea una nueva página en HTML y vuelve a solicitar los datos ingreso del usuario y contraseña.
 ● Si la página encuentra los datos del usuario en la base de datos, una página con código PHP acepta su acceso y deja que el usuario ingrese al sitio web con su sesión activa.  
La integración entre PHP y HTML se usa por medio de una etiqueta, en ella se integran todas las instrucciones de PHP.
 ● Etiqueta PHP: Cuando en un documento web queremos añadir código PHP se indica por esta etiqueta: El código PHP se coloca en la zona de la página web donde más nos interese hacerlo. El cliente que está solicitando el sistema web dinámico, desea que se muestre textos propios, para ello es necesario entender cómo es que se muestra la información. 
● HTML usa PHP y PHP usa HTML: Como se ha visto anteriormente el código PHP se incrusta dentro del código HTML. Lo interesante es que se puede incrustar código HTML en el PHP y tendría sentido ya que las funciones de escritura (echo y print) en realidad escriben hacia el resultado final, que en realidad es una página HTML por lo que se puede hacer algo como: Jorge";  
● Bases de escritura: Las normas básicas para escribir el lenguaje PHP, son las siguientes: o Todas las líneas de código deben de finalizar con un punto y coma o Se puede agrupar el código en bloques que se escriben entre llaves o Una línea de código se puede partir o sangrar (añadir espacios al inicio) a voluntad con el fin de que sea más legible, siempre y cuando no partamos una palabra o un valor. o PHP obliga a ser estricto con las mayúsculas y las minúsculas en algunos casos como el nombre de las variables; sin embargo, con las palabras reservadas del lenguaje no es estricto. Es decir, PHP entiende que WHILE, while e incluso wHiLe es lo mismo al ser una palabra reservada. Sin embargo $var y $VAR no son iguales al ser el nombre de una variable. 
● Escribir en la salida: Aunque hay muchas funciones de escritura (para escribir en lo que será la página final) las fundamentales son echo y print. Echo es la más utilizada y en realidad es un comando del lenguaje. Tras echo se pasa uno o más textos (más adelante diremos expresiones de cadena) que cuando son literales se escriben entre comillas. Si se usa más de un texto, se separan con comas: Como cualquier lenguaje de programación, se maneja información interna por medio de variables, para eso se necesita entender cómo es el manejo de las variables en PHP.
 ● Introducción a las variables: En todos los lenguajes de programación (y PHP no es una excepción) Las variables son contenedores que sirven para almacenar los datos que utiliza un programa. Dicho más sencillamente, son nombres que asociamos a determinados datos. o Las variables tienen un nombre (un identificador) que tiene que cumplir estas reglas: o Tiene que empezar con el símbolo $. Ese símbolo es el que permite distinguir a una variable de otro elemento del lenguaje PHP. o El segundo carácter puede ser el guión bajo (_) o bien una letra. o A partir del tercer carácter se pueden incluir números, además de letras y el guión bajo o No hay límite de tamaño en el nombre o Por supuesto el nombre de la variable no puede tener espacios en blanco (de ahí la posibilidad de utilizar el guión bajo) Distribución gratuita-Prohibida su venta 47 Es conveniente que los nombres de las variables indiquen de la mejor forma posible su función. Es decir: $saldo es un buen nombre, pero $x123 no lo es, aunque sea válido. 
 ● Declarar: La primera sorpresa para los programadores de lenguajes estructurados es que en PHP no es necesario declarar una variable. Simplemente se utiliza y ya está. Es decir, si queremos que la variable $edad valga 15, haremos: Los textos se encierran entre comillas (simples o dobles, aunque se aconseja usar las dobles salgo cuando nos venga mejor las simples). Ejemplo: 
● Tipos de datos o Enteros: A las variables se les puede asignar valores enteros. Los números enteros se usan tal cual. Pueden ser positivos o negativos: o Flotante: Los números decimales en PHP son de tipo coma flotante. Este es un formato decimal para máquinas digitales que se manejan muy rápido por parte de un ordenador, ocupan poco en memoria, pero desgraciadamente no son exactos. Ejemplos: o Cadenas: Se denomina así a los textos, que en programación se les denomina cadenas de caracteres o Strings. Se asignan a las variables entrecomillado (en simples o dobles) el texto a asignar. Ejemplo: Distribución gratuita-Prohibida su venta 48 o Booleanos: Sólo pueden tomar como valores TRUE (verdadero) o FALSE (falso). Ejemplo: 
● Operadores: Lo habitual al programar en PHP es utilizar expresiones que permiten realizar comprobaciones o cálculos. Las expresiones dan un resultado que puede ser de cualquiera de los tipos de datos comentados anteriormente (enteros, decimales, booleanos, strings,…) (Sanchez, 2012) o Aritméticos Son: Operador Significado + Suma - Resta * Multiplicación / División % Modulo (resto) Ejemplo de uso: "; //escribe 17.5 echo $x-$y,"
"; // escribe 13.5 echo $x*$y,"
"; // escribe 31 echo $x/$y,"
"; //escribe 7.75 echo $x%$y,"
"; //escribe 1, sólo coge la parte entera ?> o Operadores condicionales: Sirven para comparar valores. Siempre devuelven valores booleanos. Son: Condicionante Significado Distribución gratuita-Prohibida su venta 49 < Menor > Mayor <= Menor o igual >= Mayor o igual == Igual, devuelve verdadero si las dos expresiones que compara son iguales === Equivalente, devuelve verdadero si las dos expresiones que compara son iguales y además del mismo tipo != Distinto ! No lógico (NOT) && “Y” lógico AND “Y” lógico || “O” lógico OR “O” lógico XOR "OR" exclusivo o Concatenación: El punto (.) es un operador que permite unir textos. Su uso es muy sencillo. Ejemplo: En el manejo de información y de variables, se presentan algunas condicionantes, en las cuales se utilizan las estructuras de control de PHP. 
● Estructuras de control: Hasta ahora las instrucciones que hemos visto, son instrucciones que se ejecutan secuencialmente; es decir, podemos saber lo que hace el programa leyendo las líneas de izquierda a derecha y de arriba abajo. Las instrucciones de control de flujo permiten alterar esta forma de ejecución. A partir de ahora habrá líneas en el código que se ejecutarán o no dependiendo de una condición. Distribución gratuita-Prohibida su venta 50 o Sentencia condicional: Se trata de una sentencia que, tras evaluar una expresión lógica, ejecuta una serie de instrucciones en caso de que la expresión lógica sea verdadera. Si la expresión tiene un resultado falso, ejecutara otras instrucciones. Su sintaxis es: Ejemplo de sentencia if-else: =6){ echo "Aprobado"; } else { echo "Reprobado"; } ?> o Sentencia switch: Esta instrucción se usa cuando tenemos instrucciones que se ejecutan de forma diferente según evaluemos el conjunto de valores posible de una expresión. Cada case contiene un valor de la expresión; si efectivamente la expresión equivale a ese valor, se ejecutan las instrucciones de ese case y de los siguientes. Distribución gratuita-Prohibida su venta 51 Ejemplo: o Bucle while: Un bucle es un conjunto de sentencias que se repiten mientras se cumpla una determinada condición. Los bucles agrupan instrucciones las cuales se ejecutan continuamente hasta que una determinada condición que se evalúa sea falsa.
● Recepción de datos de un formulario desde una página PHP: PHP permite recibir 
los datos pasados por los parámetros usando dos variables, que son en realidad 
dos arrays que contendrán todos los valores del formulario. Se trata de $_GET y de 
$_POST cada una dedicada al método con su mismo nombre. 
Puesto que son arrays (se estudian con profundidad más adelante) su manejo es 
distinto al de una variable normal. Podemos entender que son contenedores de 
todos los elementos del formulario. 
Los controles del formulario que hayan recibido valores envían esos valores 
asociados al nombre de control especificado en el atributo name. De modo que, si 
el método de paso era POST, la página PHP accede al valor de ese control mediante:
<?php
Distribución gratuita-Prohibida su venta 
55
$valor=$_POST[‘name’]; 
?>
Donde name es el nombre del control. (Sanchez, 2012)
Conexión a MySQL desde PHP 
Antes de comenzar e interactuar con una base de datos, tenemos que establecer una 
conexión entre PHP y el servidor de base de datos MySQL. Para hacerlo, PHP nos ofrece 
la función mysql_connect. (Minera, Desarrollo PHP + MySQL, 2011)
Su sintaxis es:
<?php
mysql_connect(’servidor’,’nombre de usuario’,’password’); 
?>
● Servidor: Cadena de caracteres que debe contener el nombre del servidor o bien 
su dirección IP. Cuando hablamos de servidor nos referimos a la maquina en donde 
se encuentra instalado el servidor de bases de datos MySQL. Si estarnos trabajando 
en forma local podríamos utilizar corno nombre de servidor localhost o 127.0.0.1 
corno dirección IP.
● Nombre de usuario: Se trata de nombre de usuario válido para poder tener acceso 
a la base de datos en cuestión. 
● Password: Corresponde a la contraseña que corresponde al nombre de usuario que 
se ha ingresado anteriormente.
Ejemplo:
<?php
mysql_connect(’localhost’,’prueba’,’12345’); 
?>
En el ejemplo conectamos con el servidor local de MySQL utilizando el usuario 
prueba con contraseña 12345.
Si la conexión es correcta, la función devuelve los valores de la conexión (el enlace 
a datos) que se suele asignar a una variable (en el ejemplo anterior se los queda 
$con).
En el caso de que falle (por que el usuario no tiene esa contraseña, o el servidor no 
está funcionando, etc. etc.), entonces la función devuelve falso. (Sanchez, PHP (III). 
Sesiones y bases de datos, 2013)
Distribución gratuita-Prohibida su venta 
56
● Captura de errores: Al utilizar bases de datos hay muchos posibles errores que 
pueden ocurrir. De hecho, si no funciona la conexión, todo lo demás que nuestra 
aplicación quisiera realizar, no sería posible.
o mysql_error: Muchas veces nos conviene capturar los errores que 
proceden de la base de datos MySQL para desde el programa decidir lo 
que hacer dependiendo del error y con esta instrucción, se devolverá el 
último error detectado por MySQL.
Ejemplo:
<?php
$con=mysql_connect("localhost","prueba","12345"); 
if($con){ 
 … 
 mysql_close($con); 
else{ 
 echo "Error: conexión no realizada, respuesta del servidor: ". 
 
 mysql_error($con)."Nº de error".mysql_errno($con); 
?>
● Seleccionar base de datos: En MySQL las tablas pertenecen a una base de datos, 
por lo que lo habitual es seleccionar la base de datos para de ese modo trabajar 
de forma cómoda con las tablas y vistas de dicha base de datos.
PHP permite seleccionar la base de datos mediante la función mysql_select_db
a la que se le pasa el nombre de la base de datos (entre comillas, es decir como 
string) y, opcionalmente, el nombre del enlace de base de datos (si no se indica 
este parámetro se usa el último enlace a base de datos realizado con 
mysql_connect). Existen varias formas de realizarlo:
o Seleccionando la base de datos:
<?php
$db = 'curso_php'; 
mysql_select_db($db) or die('No pude seleccionar la base de datos'); 
?>
En esta instrucción nos da la oportunidad de detectar el error de 
conexión con la base de datos
o Definiendo en la instrucción SQL:
<?php
$res=mysql_db_query("base_ejemplo", "SELECT * FROM TABLA"); 
?>
Distribución gratuita-Prohibida su venta 
57
En esta instrucción se determina que base de datos es la que se está 
ejecutando y la instrucción SQL, los resultados se almacenan en una 
variable para posteriormente se haga uso de dichos resultados (o false, si 
falla la instrucción SQL).
● Método para mostrar la información de las tablas: Los conjuntos de resultados 
pueden ser pasados como parámetro a otras funciones. La más interesante 
para poder analizar los resultados es mysql_fetch_array. Esta función permite 
recorrer fila a fila los resultados de un conjunto de resultados.
o Ejecutar una consulta simple:
<?php
$res=mysql_db_query("base_ejemplo", "SELECT * FROM TABLA"); 
?>
o Captura en el arreglo los resultados:
<?php
while($registros[] = mysql_fetch_array($res)); 
?>
El array devuelto ($registros) será del tipo multidimensional, con un 
formato como el siguiente:
<?php
$registros = array( 
 array('campo1'=>'valor', 'campo2'=>'valor', 'campo7'=>'valor'), 
 array('campo1'=>'valor', 'campo2'=>'valor', 'campo7'=>'valor'), 
); 
?>
Es decir, que será un array, conteniendo otro array por cada registro 
encontrado.
● Ejecución de instrucciones SQL: Por medio de la ejecución de instrucciones 
nativas de MySQL como INSERT INTO, DELETE o UPDATE, la respuesta tendrá 
como resultado un result set. Ejemplos:
o Insertar nuevos valores:
<?php
$sql = " 
 INSERT INTO usuarios
 (username, email)
 VALUES ('juanperez',
 'jperez@algundominio.ext')
"; 
$result = mysql_query($sql) or die('No pude ejecutar la consulta'); 
?>
Distribución gratuita-Prohibida su venta 
58
Una vez que ya conoces la sintaxis ejemplificada para una inserción de datos, vamos a 
verlo gráficamente en una página con un formulario igual a los que ya has revisado en 
temas anteriores.
Primero la página del formulario y su forma gráfica.
Como puedes observar en las ilustraciones, se está diseñando a través de HTML un 
formulario para registrar un autor en la base de datos y posteriormente se te muestra de 
forma gráfica como se ve en el navegador. Ahora vamos a ver la página que recibe la 
información y cómo se hace la conjugación de lenguaje SQL con PHP, de igual manera 
como ya se te mostró en el ejemplo anterior.
Distribución gratuita-Prohibida su venta 
59
En la imagen anterior, como te darás cuenta en la primera parte se está haciendo una 
conexión a la base de datos “biblioteca y a través de código PHP se está insertando un 
nuevo autor con los datos contenidos en las cajas de texto llamadas “txtname” y “txtpais”. 
Veamos el resultado en nuestra tabla.
o Buscar información
Después de haber conocido la forma de insertar registros en cualquier tabla de una base 
de datos, es muy necesario saber la forma en la que le vas a proporcionar información a 
tu cliente o usuario. 
Distribución gratuita-Prohibida su venta 
60
Debes analizar cada fragmento de código para saber cuáles son las instrucciones que se 
están ejecutando:
$consulta="select * from autores where nombre like '%$_GET[txtsearch]%'";
$resultado=mysqli_query($conexion, $consulta)or die("No se puede consultar"); 
En la primera línea se está pidiendo que se busquen todos los campos de la tabla autores, 
que coinciden con el nombre que el usuario escriba en una caja de texto que vamos a 
incluir en la misma página y en la segunda, se da la instrucción de ejecutar la consulta 
enviando un mensaje de error si esta no se completara.
if (!$resultado) 
 { 
 echo " "; 
 die; 
 
 } 
Con esta instrucción podrás indicarle que si no encuentra ningún resultado coincidente, 
que envíe un espacio en blanco, evitando así que aparezca el mensaje de error 
anteriormente explicado.
$contador=1; 
$filas=mysqli_num_rows($resultado); 
while ($contador<=$filas) 
 { 
$arreglo=mysqli_fetch_array($resultado); 
Distribución gratuita-Prohibida su venta 
61
echo $arreglo ['nombre'];
echo "<br>";
$contador++;
}
Por último es necesario hacer un conteo de los registros que se encontraron, esto se hará 
con la instrucción “mysqli_num_rows”, guardando el resultado en una variable llamada 
$filas. Con un ciclo vamos a recorrer registro por registro para obtener la información, 
esto se logra con la instrucción “mysqli_fetch_array”, que nos permitirá obtener los 
registros y guardarlos en un arreglo. Por último debemos imprimir ese arreglo indicando 
el campo que queremos visualizar, en este caso es el nombre.
Con la instrucción anterior deberíamos obtener la siguiente ventana de resultado.
Si observas se están imprimiendo todos los nombres, ya que no hemos especificado en 
una caja de texto, el que requerimos. De igual manera únicamente nos parecen los 
nombres de una manera no muy bien presentada, por lo que se hace necesario, primero 
hacer lo mismo pero especificando los demás campos que deseamos ver y por último 
insertar este código dentro de las celdas de una tabla para que haya mayor orden. Éste es 
el resultado: 
Distribución gratuita-Prohibida su venta 
62
o Eliminar un registro
<?php
$sql = "DETELE FROM usuarios WHERE username='juanperez'"; 
$result = mysql_query($sql) or die('No pudo eliminar el registro'); 
?>
o Actualizar un dato:
<?php
$sql = "UPDATE usuarios SET email ='jperez@algundominio.COM'"; 
$result = mysql_query($sql) or die('No pudo actualizar el registro');


Comentarios

Entradas más populares de este blog

Introducción a HTML

 Introducción a HTML aprenderás cómo se construye un sitio web y sus principales características. Para empezar se debe planificar la estructura del sitio a través de un mapa general en el que se definan algunas características como: El objetivo del sitio web Tipo de público al que va dirigido Los contenidos que tendrá (secciones) Estilo del sitio (colores, diseño) Una vez que se termina el proceso de planeación, es momento de conocer el lenguaje que se emplea para el desarrollo, construcción o escritura de sitios web, se llama HTML (HyperText Markup Language), en español se traduce Lenguaje de Marcas de Hipertexto. Este lenguaje está compuesto por una serie de instrucciones a las que se les denomina etiquetas o marcas. Todos los archivos HTML son sólo texto, así que se necesita un editor de texto, aplicación o programa que permita escribir texto plano sin agregar ningún formato específico, por ejemplo un bloc de notas. el mouse sobre dicho archivo, dar clic con el botón de...

Instalando nuestro entorno de trabajo: Laragon

  Instalando nuestro entorno de trabajo: Laragon  Laragon es un software que integra Apache como servidor web; que nos ayudara a mostrar  nuestras consultas en una página web, MySQL como servidor de bases de datos; que te ayudará a crear tablas, crear consultas e insertar registros. Por su parte PHP como intérprete entre la página web y tu base de datos, ya que la información que insertes en tu base de datos, la podrás tener accesible directamente desde una página web. Para instalar Laragon tienes que tomar en cuenta algunos requisitos mínimos de tu computadora, como son: 1. Sistema Operativo Windows 10 de preferencia y Windows 7 para entornos de 32bits. 2. Memoria RAM 2Gb mínimo 3. Espacio en disco duro disponible: 300Mb Ahora aprenderás cómo instalar Laragon. Entra al sitio web: https://laragon.org/download/ Desde este sitio web, busca el archivo: “Download Laragon - Lite” que te permite iniciar la instalación. Una vez descargado lo vas a abrir. Sele...