PHP: imprescindible para crear páginas web de modo profesional
Y ahora tambien aprende a programar en C++ con Aprende Web C++
y entérate de las novedades o deja un comentario.
última modificación: 13-07-2018.
Visitas este mes: 21
Visitas el mes pasado: 49
Mi agradecimiento a los siguientes sitios en los que me he basado para la elaboración de este manual.:
Por elegir aprende-web
Aprende-web está diseñado a partir de los lenguajes que aquí mismo se enseñan.
By Anyelguti
Una base de datos es el lugar donde se guardan una serie de datos de manera organizada. No sólo consiste en guardar los datos, sino también en poder recuperarlos para trabajar con ellos: recuperarlos, cambiarlos, crear datos nuevos, etc.
Las bases de datos organizan los datos en tablas, Las tablas suelen estar relacionadas entre sí, de manera que los datos de una tabla tengan relación con los de otra.
Hay distintos programas de gestión de base de datos, tales como Oracle, Microsoft Access, etc. Sin embargo MySQL es el que mejor se adapta al lenguaje PHP.
MySQL es un lenguaje en el que podemos crear y administrar las bases de datos en formato ".sql". Este lenguaje es compatible con PHP, de modo que podemos utilizarlo dentro de una página web para trabajar con la base de datos.
Con el programa "phpMyAdmin" podemos crear bases de datos y trabajar con ellas de una manera gráfica; estas bases de datos podemos usarlas luego con php. Sin embargo con php podemos también crear y modificar bases de datos, y trabajar directamente con ellas, sin usar "phpMyAdmin".
Para los que no estén muy familiarizados con las bases de datos incluimos aquí unos cuantos conceptos básicos:
Por último tenemos también las relaciones entre tablas. Las tablas no son independientes unas de otras y los registros de unas se relacionan con los de otras. Por ejemplo en una base de datos de obras literarias, tendremos una tabla con los autores y otra con las obras. Al relacionar estas tablas los registros de la tabla "autores" debemos relacionarlos con los de la tabla "obras", de manera que a cada autor le correspondan sus obras.
Las formas de relacionar una tabla con otra pueden ser:
El programa phpMyAdmin viene integrado en el paquete XAMPP con el que hemos instalado PHP.
Este programa consiste en una serie de páginas con las que podemos manejar las bases de datos: crearlas, modificarlas, cambiar su contenido, y todo tipo de operaciones dentro de la base de datos.
Para acceder a él desde la página principal de XAMPP, escribimos localhost en la barra de navegación, y en el menú de la izquierda, en la sección Herramientas pulsamos en phpMyAdmin. También podemos acceder desde la dirección : localhost/phpmyadmin/.
A partir de aquí podemos crear nuevas bases de datos o abrir alguna de las existentes, para trabajar con ellas.
Dentro de cada base de datos podemos crear tablas. Podemos añadir o quitar campos (columnas) a una tabla. y añadir o quitar o modificar registros.
En cada campo se debe indicar el tipo de datos que queremos guardar (texto, números, fechas, etc.), y además los campos pueden tener una serie de propiedades (clave primaria, clave única, autoincremeto, etc.). Como también podemos manejar las bases de datos desde la página web con PHP, iremos viendo todo esto a lo largo de este tema.
No vamos a extendernos más sobre phpMyAdmin en este resumen. El tema 13 de este manual explica la forma de trabajar con phpMyAdmin, nos remitimos a él en la página http://aprende-web.net/php/php13_1.php y siguientes.
Las bases de datos que creamos con phpMyAdmin son del tipo MySQL. Podemos una vez creadas trabajar con ellas también desde una página web.
Para trabajar con una base de datos en MySQL desde una página en PHP debemos saber los datos que nos permiten localizar y conectar con MySQL. Estos son:
Si trabajamos en local (con XAMPP), y no hemos modificado los datos en phpMyAdmin los datos serán los siguientes:
Servidor = "localhost"; usuario = "root"; contraseña = "". El nombre de la base será el que nosotros le hayamos dado al crearla. Esta base de datos sólo la podremos utilizar con el servidor local.
Si trabajamos con otro servidor en la web, éste debe proporcionarnos estos datos, los cuales, serán distintos de los del servidor local.
La mayoría de servidores web con PHP nos permiten crear una base de datos en el mismo servidor en que tenemos alojado el sitio. Normalmente tenemos que ir al panel de control que nos proporciona el servidor y buscar la opción de crear una base de datos. Al crearla el servidor nos proporcionará las claves. También suelen tener la opción de utilizar phpMyAdmin con la base de datos.
Si hemos creado la base de datos en el servidor local y queremos pasarlo al servidor web podemos utilizar las opciones exportar e importar de phpMyAdmin. Primero exportamos la base a nuestro ordenador en un archivo, y después la importamos al servidor desde ese archivo.
Como los datos de conexion son distintos en local y en web, debemos poner distintos datos en un sitio y en otro. Al subir la página debemos tener esto en cuenta. Podemos solucionar esto mediante una estructura condicional que detecte el nombre del servidor. Según el servidor que usemos tendremos unos datos u otros. El código será como éste:
<?php $modo=$_SERVER['HTTP_HOST']; //localizamos el servidor if ($modo=="localhost") { //datos en servidor local $servidor="localhost"; $usuario="root"; $contrasena=""; $base="nombre_base"; } else { //datos en servidor web $servidor="nombre_servidor_web"; $usuario="nombre_usuario_web"; $contrasena="contraseña_em_web"; $base="nombre_base_web"; } ?>
Para mayor comodidad podemos guardar este código en un archivo (por ej.:conexion.php) y incluirlo en la página antes de realizar cualquier operación con bases de datos mediante include("conexion.php");.
Para conectar con la base de datos utilizamos la siguiente función.
$db=mysql_connect($servidor,$usuario,$contrasena);
La conexión con MySQL está abierta. La variable donde guardamos la función es un "manejador", y deberá usarse en algunas funciones que utilicemos con la conexión abierta, así como para cerrar la conexión.
El siguiente paso es localizar la base de datos. Utilizamos la función:
mysql_select_db("nombre_base",$db);
Con esto la conexión a la base de datos indicada en el primer argumento queda abierta. El segundo argumento es el manejador.
Una vez conectados a la base de datos podemos trabajar con ella, para ello MySQL tiene su propio lenguaje, en el cual le diremos lo que queremos hacer en la base de datos, éste lo iremos viendo a lo largo de este tema. De momento una vez creado este código lo guardamos en una variable:
$sql="codigo_MySQL";
Donde pone codigo_MySQL insertaremos el código en lenguaje MySQL necesario para realizar las operaciones con la base de datos.
Mandamos el código MySQL a la base de datos, es lo que se llama enviar una petición. Utilizamos la siguiente función:
$datos=mysql_query($sql,$db);
La función mysql_query() envía el código en MySQL a la base de datos y devuelve una respuesta en caso de que la hayamos pedido (por ejemplo podemos pedir que devuelva algunos datos de la base). La variable $datos recoge esa respuesta.
Una vez realizadas las operaciones anteriores cerramos la conexión a MySQL, para ello utilizamos la función:
mysql_close($db);
El código completo para realizar una conexión es el siguiente:
$db = mysql_connect($servidor,$usuario,$contrasena); //conectar con MySQL. mysql_select_db("nombre_base",$db); //Conectar con la base de datos. $sql = "codigo_MySQL"; //Código MySQL con ordenes para la base de dados. $datos = mysql_query($sql,$db); //Enviar petición y recibir respuesta. mysql_close($db); //cerrar la conexión.
Este código PHP es el que nos permite trabajar con una base de datos, y es casi siempre el mismo, por lo que podemos guardarlo en una función a la que le pasamos como argumento el código MySQL y nuestros datos. La función nos devolverá los datos pedidos a la base.
En nuestro caso podría ser así:
function conecta_db($conexion,$codigo) { include($conexion); $db = mysql_connect($servidor,$usuario,$contrasena); mysql_select_db($base,$db); $sql = $codigo; $datos = mysql_query($sql,$db); return $datos; }
Se supone que hemos hecho previamente un archivo con los datos de conexión, parecido al que hemos visto anteriormente. La ruta a este archivo será el primer argumento, la cual recogemos en la variable $conexion.
Como segundo argumento pasaremos el código MySQL que queremos enviar. Al llamar a la función ésta realizará las acciones que indica el código MySQL y nos devolverá los datos que le hayamos pedido.
Creamos primero el código y después llamamos a la función de la siguiente manera.
$sql = "codigo en MySQL";
$datos = conecta_db("conexion.php",$sql);
Podemos crear una nueva base de datos desde PHP. En este caso el código difiere un poco del anterior, ya que no llamamos a ninguna base de datos, y en su lugar creamos una con el siguiente código MySQL:
$sql="create database `nombreBase`";
El código MySQL ponemos las palabras create database seguido del nombre que le queremos dar a la nueva base. Aquí lo hemos puesto entre los signos ` ` . Esto no es obligatorio y podemos escribirla directamente sin los signos de acento grave. Sin embargo es necesario si el nombre tiene caracteres comprometidos (espacios en blanco, signos de puntuación, etc.).
El código PHP completo para crear una base de datos será:
<?php
$db=mysql_connect($servidor,$usuario,$contrasena);
$sql="create database `miagenda`";
mysql_query($sql,$db);
mysql_close($db);
?>
Como no recogemos ningún dato de la base no necesitamos que la función mysql_query() esté igualada a una variable.
Para comprobar que la base de datos se ha creado podemos abrir phpMyAdmin y comprobar que la base de datos está ahí.
Este código funciona siempre con el servidor local, sin embargo con los servidores web muchas veces no nos permiten crear las bases de datos de este modo, y tenemos que crearlas directamente desde su panel de control. En el servidor local (XAMPP) también tenemos la opción de crearla con phpMyAdmin.
Una vez creada la base de datos, debemos incluir tablas. Esto lo podemos hacer también desde PHP. Aquí utilizaremos la función conecta_db() que hemos creado antes. Siguiendo el ejemplo anterior El código MySQL para crear una nueva tabla es :
$sql = "create table `agenda` (`IDagenda` int(6) not null auto_increment primary key)";
En primer lugar ponemos las palabras clave create table seguido del nombre de la tabla. Ésta, al igual que al crear la base, puede ir entre signos de acentos o no.
El lenguaje MySQL no diferencia entre mayúsculas y minúsculas; pero en los nombres de los elementos (tablas, bases, campos, etc) sí que se diferencia.
Después y entre paréntesis ponemos el nombre del primer campo de la tabla seguido de sus propiedades. Debemos poner al menos un campo. Si ponemos más de uno los separaremos con comas.
En el código incluimos primero la función conecta_db() creada anteriormente, y después ponemos:
$ruta = "conexion.php";
$sql = "create table `agenda` (`IDagenda` int(6) not null auto_increment primary key)";
conecta_db($ruta,$sql);
Debemos también haber guardado el archivo conexion.php en la misma carpeta.
En el ejemplo anterior hemos puesto un campo llamado idAgenda, con varias propiedades. Éstas son:
Distinguimos entre el tipo de datos (única propiedad obligatoria y que debemos poner la primera) y las demás propiedades. Vemos aquí los tipos de campo más comunes, aunque no son los únicos:
Después del tipo de dato podemos poner otras propiedades no obligatorias. Además de las que hemos visto en el ejemplo anterior podemos poner las siguientes:
Podemos añadir más campos a una tabla mediante la siguiente instrucción en MySQL:
$sql="alter table `nombre_tabla` add `nuevo_campo` propiedades, add `nuevo_campo` propiedades";
El resto del código PHP es el visto anteriormente. Nosotros utilizaremos la función conecta_db() para insertar más campos. Ejemplo:
$ruta = "conexion.php";
$sql = "alter table `agenda`
add `nombre` varchar(50) not null default '',
add `telefono` int(9) not null default '000000000',
add `email` varchar(100) not null default '---@---',
add `descripcion` text not null default '' ";
conecta_db($ruta,$sql);
Podemos comprobar que los nuevos campos se han creado con phpMyAdmin, donde podemos ver en la base de datos la tabla con los nuevos campos.
Para insertar registros seguimos usando el mismo código php, que nosotros hemos guardado en la función conecta_db(). Lo único que varía es el código MySQL que le pasamos. Este tiene la siguiente sintaxis:
$sql = "insert into `nombre_tabla`
(`campo1`, `campo2`, `campo3`)
value ('dato1', 'dato2', 'dato3');";
En primer lugar ponemos la instrucción insert into seguido del nombre de la tabla. Después entre paréntesis ponemos los nombres de los campos en los que insertaremos los datos. Estos van separados por comas. A continuación ponemos la instrucción value seguida de otro paréntesis. En este paréntesis pondremos los datos a insertar en los campos. Éstos irán entre comillas simples y separados por comas.
Los datos se corresponden correlativamente con los campos, el primer campo indicado recibe el primer dato, el segundo campo recibe el segundo, y así sucesivamente.
Hay que poner el mismo número de campos que de datos. De otra manera el registro no se crea.
Si hay algún campo con clave única que esta duplicado, o algún campo con not null no relleno, el registro no se creará.
No es necesario poner todos los campos de la tabla. Los que no pongamos cogerán su valor por defecto o se quedarán sin valor.
Podemos pasar los nombres de tablas, campos y los datos en variables de php. En este caso las comillas y los acentos (si los hubiera) debemos seguir manteniéndolos.
Siguiendo con el ejemplo anterior crearemos un registro para la tabla agenda:
$ruta="conexion.php";
$sql = "insert into `agenda`
(`nombre`, `telefono`, `email`, `descripcion`)
value ('Vicente Gracia','685138554','vicentegracia@msn.com','amigo')";
conecta_db($ruta,$sql);
Puedes comprobar si el registro se ha creado en phpMyAdmin.
Una vez creado un registro podemos cambiar los datos de un campo sin tener que borrar el registro y crear uno nuevo. La sintaxis es la siguiente:
$sql = "update `tabla` set `campo2` = 'dato2', `campo3`='dato3' where `campo1` = 'dato1'";
Los datos que variamos aquí son los del campo2 y campo3. El campo1 es el campo de referencia para buscar el registro. Esto lo veremos mejor con un ejemplo. En el registro creado anteriormente queremos cambiar el teléfono y el email. Lo haremos así:
$ruta="conexion.php";
$sql = "update `agenda` set `telefono` = '657889201', `email` = 'vincengra@gmail.com'
where `nombre` = 'Vicente Gracia'";
conecta_db($ruta,$sql);
Para borrar un registro utilizaremos el siguiente código:
$sql= "delete from `tabla` where `campo1` = 'dato1'";
Se borrarán aquí todos los registros de tabla en los que se cumpla la condición de que campo1 tenga como dato dato1.
Para asegurarnos de que no se borre más de un registro debemos elegir un campo con clave única o el de auto incremento.
Para borrar una tabla utilizaremos el siguiente código MySQL:
$sql = "drop table `nombre_tabla`";
Al borrar una tabla se borran también todos los datos que hay en ella, sin posibilidad de recuperarlos.
Para borrar una base de datos entera utilizaremos el siguiente código:
$sql = "drop database `nombre_base`";
Aquí el código php que utilizamos es el mismo que hemos utilizado para crear una base, en el cual cambiamos el código MySQL.
Al borrar una base de datos se borran todas las tablas y datos que hemos guardado en ella sin posibilidad de recuperarlos.
En esta página hemos visto cómo crear una base y insertar en ella tablas y registros. En la siguiente veremos cómo recuperar esos datos y llevarlos a la página.
Sugerencias:
aprendeweb@aprende-web.net. Envia un
Visita nuestro blog par saber en qué estamos trabajando: Aprende Web Blog
Más sobre anyelguti en http://anyelguti.16mb.com