Resulta sencillo que un ratón tenga cabeza,
basta con alargar la mano y dejar que las ideas fluyan a través de ella.

Su visita a esta página es a la vez una invitación y una provocación
A continuación les presento una serie de pequeñas muestras de mis capacidades en el campo del diseño gráfico, la fotografía, la programación y el desarrollo web. Todavía quedan muchas cosas que mostrar y demostrar pero valga para ellas este adelanto.

Invitación a mostrar.
Provocación para demostrar.
fecha de hoy: 01(Mon) - December - 2008
Acceso a mySQL con php (2)

 

acceso a mySQL con php (II). Manejo de tablas y datos.

Como veíamos el entorno php nos permite trabajar con bases de datos mySQL de una manera sencilla e intuitiva. Anteriormente habiamos aprendido a conectarnos con un servidor de datos mySQL y crear y elminar una base de datos.

<< ver Conexión a servidor de datos y creación de bases de datos.

Ahora iremos un poco mas allá.

¿Qué hago con mi base de datos?

Por ahora no mucho. Son necesarios unos pasos previos para que tu base de datos alcance una funcionalidad básica. El primero de ellos será crear las tablas que contendrán los datos. No me voy a extender en la explicación de la estructura de una base de datos (a estas alturas supongo que disponeis de esos conocimientos), tan sólo indicar que una base de datos está compuesta por un número determinado de tablas (mayor que 0 y menor que... uhmm) que contendrán datos, y que esas tablas se dividen a su vez en filas y columnas. Cada columna contiene un tipo de datos específico denominado campo mientras que las filas contienen todos los campos de cada dato.

Para crear una tabla dentro de una base de datos se utiliza SQL. El proceso es sencillo.

Para utilizar cualquier instrucción que nos proporciona el lenguaje SQL debemos, previamente, abrir una consulta, o enviar una instrucción SQL al servidor mySQL. Me explicaré. SQL es un lenguaje de acceso a datos basado en el idioma inglés. La sintaxis y la forma de sus instrucciones se asemejan mucho a frases escritas en inglés. Para que el servidor entienda estas frases se le debe indicar, previamente, que la frase que se indica a continuación es en realidad una instrucción SQL específica. Para hacer esto se utiliza la función php mysql_query(). Su sintaxis es la siguiente:

mysql_query ("Nombre_DB", "consulta", "Identificador");

Nombre_DB: es el nombre de la base de datos sobre la que vamos a realizar la consulta (o enviar la instrucción SQL)
consulta: es la instrucción SQL.
Identificador: es el entero que identifica la conexión a la base de datos obtenida por mysql_connect().

Hasta aquí todo claro, pero ¿cómo creo la dichosa tabla?

Una vez que ya sabemos como hacer llegar al servidor las instrucciones SQL simplemente tendremos que implementar la instrucción correspondiente para crear una tabla en ese lenguaje de base de datos.

En este caso, "CREATE table _nombretabla (_nombrecampo1, _nombrecampo2, ... , _nombrecampoN)" será la forma de la instrucción SQL que nos permita crear dicha tabla.

Para este caso en particular crearemos una tabla llamada miTabla con tres campos; id (que será el identificador numérico clave de la tabla e incremental), nombre (que será un campo de texto), edad (que será un campo numérico entero). La instrucción SQL sería:

"CREATE table miTabla ( id INT PRIMARY KEY AUTO_INCREMENT, nombre VARCHAR (50), edad INT);"

INT PRIMARY KEY AUTO_INCREMENT es un parámetro que nos indica que el campo referido es la campo clave de la tabla y que será de tipo numérico incrementado automáticamente con la inclusión de cada nuevo registro.
VARCHAR (50) es un campo tipo texto con una longitud máxima de 50 caracteres.
INT es un campo de tipo numérico entero (integer).

Evidentemente existen muchos mas tipos de datos, pero requeriría un estudio mas complejo de todos los casos, así que me reservo ese tema para un nuevo tutorial que lo aborde de una manera mas profunda.

Veamos ahora el ejemplo aplicado:

<?
$servidor="192.168.10.1";
$usuario="pepe";
$contraseña="lotas";
$Acceso_A_Mis_Datos=mysql_connect($servidor, $usuario, $contraseña);
$Nombre_De_DBase=Mi_Primera_DBase;

$consulta="CREATE table miTabla ( id INT PRIMARY KEY AUTO_INCREMENT, nombre VARCHAR (50), edad INT)";
mysql_query ( $Nombre_De_DBase, $consulta, $Acceso_A_Mis_Datos);
mysql_close($Acceso_A_Mis_Datos);
?>

A través de la variable $consulta, creamos una nueva instrucción SQL que enviaremos al servidor mySQL a través de la instrucción mysql_query(). En este caso, nos permitirá crear una tabla de datos llamada miTabla dentro de la base de datos Mi_Primera_DBase con tres campos, id, nombre y edad.

Si queremos borrar una tabla includa dentro de una base de datos simplemente tendremos que aplicar la instrucción SQL "DROP table _nombretabla", donde _nombretabla será el nombre de la tabla que queramos eliminar. La implementación de esta instrucción SQL se realiza de la misma manera que la de crear tabla de datos.

Ahora ya se lo que es una consulta SQL y como crear y borrar tablas, pero ¿y los datos?

Tranquilo. Ya llegamos.

La finalidad de este básico tutorial es el manejo de datos; introducirlos (y borrarlos) y leer los datos disponibles.

No vamos a profundizar en este capítulo sobre las consultas complejas realizadas en SQL sobre las tablas de datos de una base de datos. Este tema es lo suficientemente amplio como para ser objeto de un libro muy extenso, así que será tratado, de manera humilde, en posteriores entregas en esta web.

Vamos a centrarnos en lo básico. ¿Cómo introduzco un dato? ¿Cómo elimino un dato? ¿Cómo leo los datos introducidos?

Veíamos que las acciones SQL sobre una base de datos mySQL se pasaban a través de una función php que formalizaba una consulta sobre la base de datos referida. Si queremos introducir un dato simplemente deberemos crear una sentencia SQL que nos permita realizar dicha acción.

"INSERT into _nombretabla values (_valor1, _valor2, ... , _valorN)";

Esta sentencia SQL nos indica que se introducirán dentro de la base de datos _nombretabla los valores correspondientes a _valor1, _valor2, etc en ese orden y comenzando por la columna 1 hasta la última colunma de que disponga la tabla.

Anteriormente habiamos creado una base de datos con una tabla que contenía tres columnas; id, nombre y edad. Veamos un ejemplo que nos permitiría introducir en esa tabla un registro completo (formado por id, nombre y edad) con los valores de "Jesús" para el nombre, "33" para la edad y el id que será introducido de manera automática al haber sido creado como clave de la tabla.

<?
$servidor="192.168.10.1";
$usuario="pepe";
$contraseña="lotas";
$Acceso_A_Mis_Datos=mysql_connect($servidor, $usuario, $contraseña);
$Nombre_De_DBase=Mi_Primera_DBase;

$consulta="INSERT into miTabla ( "0", "Jesús", "33")";
mysql_query ( $Nombre_De_DBase, $consulta, $Acceso_A_Mis_Datos);
mysql_close($Acceso_A_Mis_Datos);
?>

A través de la variable $consulta, creamos una nueva instrucción SQL que enviaremos al servidor mySQL a través de la instrucción mysql_query(). En este caso, nos permitirá introducir los valores id, nombre y edad dentro de la tabla miTabla. El valor 0 del primer argumento (correspondiente al id Auto-incremental) permite que mySQL asigne un valor consecutivo al nuevo registro introducido.

Evidentemente, de la misma manera que hemos intorducido ese registro lo podemos eliminar. La forma sería mediante una instrucción SQL como esta:

"DELETE from miTabla where nombre="Jesús"";

Esto, en un principio, eliminaría todos los registros en los que el nombre fuera Jesús. En nuestro caso no habría mayor problema ya que sólo disponiamos de un registro con ese nombre, pero imaginemos que nuestra base de datos sea de los estudiantes de una universidad. Pues bien, ya no quedaría ningún Jesús en esa base de datos, y eso significaría un problema ¿no?.

Esta instrucción SQL posee una problemática grande y su uso se verá delimitado por consultas muy complejas. Por ejemplo, nos permitirá borrar registros cuyo nombre sea "Jesús" pero cuya edad sea "24" por ejemplo. El tema de consultas SQL complejas se estudiará en otro capítulo.

Vale, ya se como introducir datos, pero ¿cómo se que datos tiene mi tabla?

Es fácil. Deja que SQL lo haga. Simplemente utiliza la instrucción:

"SELECT * from _nombretabla";

El asterisco implica que se seleccionarán todos los campos que contengan la consulta realizada sobre la tabla de datos de nombre _nombretabla. La consulta puede ser todo lo compleja que queramos (no será estudiado aquí ese nivel de compeljidad).

Deberemos a continuación utilizar una función de php que nos permita obtener el contenido de la sentencia SELECT ejecutada. Esta función es mysql_fetch_array() y nos devolverá dicho contenido en forma de array, donde se identificará cada elemento con un campo de la base de datos. Se utilizará de la forma siguiente:

$Consulta = "SELECT * from miTabla";
$Dato= mysql_fetch_array ($Consulta);
print ("$Dato["nombre"]\n");

En este caso se abre una consulta mediante SELECT en la tabla de la base de datos miTabla. A continuación la instrucción mysql_fetch_Array() almacena el contenido de la consulta en un array e inmediatamente imprime el dato del campo nombre.

Por medio de un bucle podemos obtener todos los registros de una tabla de una base de datos.

Por ejemplo

<?
$servidor="192.168.10.1";
$usuario="pepe";
$contraseña="lotas";
$Acceso_A_Mis_Datos=mysql_connect($servidor, $usuario, $contraseña);
$Nombre_De_DBase=Mi_Primera_DBase;

$consulta="SELECT * from miTabla";
$Resultado=mysql_query ( $Nombre_De_DBase, $consulta, $Acceso_A_Mis_Datos);
while ($Col=mysql_fetc_array ($Resultado)){
print ("$Col[nombre], $Col[edad] \n");
}
mysql_close($Acceso_A_Mis_Datos);
?>

A través de la variable $consulta, creamos una nueva instrucción SQL que enviaremos al servidor mySQL a través de la instrucción mysql_query(). En este caso se establece una seleción de todos los registros de la tabla miTabla. Mediante la variable $Resultado se obtiene todo el contenido en forma de array. A continuación se crea un bucle while que recorre todos los registros de la tabla mientras existan. En cada iteracción del bucle se imprimirá en pantalla (comando print) el valor correspondiente a los campos "nombre" y "edad" de todos los registros que existan en la tabla.

En líneas generales este es el funcionamiento de una base de datos mySQL con php. Vemos que tanto las consultas como las operaciones que se pueden hacer con la base de datos se realizan de una manera sencilla e intuitiva gracias al lenguaje SQL.

En posteriores capítulos abordaremos de una manera mas profunda todo el tema de consultas SQL para crear potentes aplicaciones web con bases de datos mySQL.

Si deseas ampliar la información sobre el tema, si tienes alguna duda, o simplemente si tienes otras ideas o sugerencias no dudes en ponerte en contacto conmigo.

Gracias.
Luis Álvarez

 
La cabeza del Ratón


'nuevomilenio' es una idea de Luis Álvarez
'CSI/dilvish666' es propiedad intelectual


CSI/dilvish666 - A Coruña
nuevomilenio@retemail.es