lunes, 9 de julio de 2012

Conexión y Consulta básica en MySQL y PHP

En esta entrada vamos a practicar haciendo una consulta en MySQL y PHP, suponiendo que ya tenemos una base de datos.
El resultado será como el de la siguiente imagen:




En mi base de datos que se llama test tengo 2 tablas una alumnos y una calificaciones  en las cuales ya agregué datos Lo que vamos a  hacer primero es  la conexión con la base de datos desde un archivo php.
  • Conexión

El archivo se va a llamar control.php  y agregamos el siguiente código:
<?php
$mysqli= new mysqli("localhost","root", "password", "test");

if($mysqli->connect_errno){
    echo "Fallo al conectar a MySQL:(". $mysqli->connect_errno.")". $mysqli->connect_errno;
}
?>

Expliquemos un poquito estas lineas de código:  dentro de mysqli debemos poner los datos de nuestra base de datos que serían la dirección donde se encuentra nuestra bd , el usuario y la contraseña, como lo estamos haciendo en nuestro servidor local generalmente se usa localhost, pero también puede ser la ip.  Si no se ha configurado ninguna contraseña este campo iría en blanco "". También le pasamos el nombre de la base de datos que en este ejemplo sería test.
En caso de que los datos estén incorrectos y por ende no se pueda realizar la conexión entonces mostrará en pantalla la leyenda "Fallo al conectar a MySQL".

Si corremos el archivo localhost/control.php debería aparecer la pantalla en blanco.

En la base de datos test hice 2 tablas una se llama usuarios y la otra calificaciones.
Vamos a hacer una consulta para mostrar a todos los usuarios, es la consulta más sencilla pero también de las básicas.

debajo del código que anteriormente escribimos ponemos el siguiente código para la consulta.


$resultado=$mysqli->query("SELECT * from usuarios");

while($row=$resultado->fetch_assoc()){
    echo $row['nombre']. " " . $row['apellido']. " ". $row['matricula']. "<br/>";
}



Si corremos el archivo mostraría algo como la siguiente imagen.




Expliquemos poquito el código de la consulta:
$mysqli es el objeto  de tipo mysqli que almacena toda la información sobre la conexión de la base de datos, y de ella se van a derivar las funciones relacionadas con la base de datos.
En este caso mandamos llamar la función query y le pasamos como parámetro la consulta en este caso vamos a seleccionar ("Select")  todo (*)  de la tabla ("from") usuarios.

Después vamos a crear un ciclo  (while) donde vamos a crear una variable de nombre row ($row) que va a ser igual (=) a  el array ($resultado->fecth_assoc())  resultado de la consulta esto quiere decir que $row es una variable de tipo array que contiene todos los datos que haya encontrado la consulta que hicimos en este caso devolverá las 4 filas de datos que insertamos en la tabla usuarios.

Con el while vamos a recorrer este array ($row) y por cada fila que encuentre la consulta, vamos a imprimir sus datos.

$row["nombre"] : nos va a devolver la información guardada en el campo nombre de la tabla usuarios, $row["apellido"] :nos devuelve la información del campo apellido y así con cada campo.
Colocamos la etiqueta "<br/>" para que brinque linea cada que termine de imprimir los datos.

También lo podemos recorrer con un foreach.
Existen varias formas de realizar conexiones a las bases de datos y de realizar consultas pero esta es de las más sencilla de entender.

anteriormente para hacer una consulta también se podía usar mysql_query pero ya no es aconsejable usarla según el manual de php.

Ahora pongamos los datos dentro de una tabla para que se vean mejor presentados.



$resultado=$mysqli->query("SELECT * from usuarios");


$tabla= "<table width='450'>";

$tabla.="<tr bgcolor='#A9E2F3'>";

$tabla.="<td><b>Nombre</b></td><td><b>Apellido</b></td><td><b>Matricula</b></td>";

$tabla.="</tr>";

$num=0;

while($row=$resultado->fetch_assoc()){

    $num++;

    if (($num % 2) == 0){
        $tabla.= "<tr bgcolor='#CEECF5'>";
    }

    else{
       $tabla.= "<tr>";
    }

    $tabla.="<td>".$row['nombre']."</td><td>".$row['apellido']."</td><td>".$row['matricula']."</td>";

    $tabla.= "</tr>";
}

$tabla.= "</table>";

print $tabla;


Al código anterior lo que agregamos fue una variable llamada tabla a la que le damos como valor las etiquetas html necesarios para crear la tabla, columnas y filas necesarias. Antes del while ponemos la fila que llevará el nombre de las columnas.

Dentro del while por cada resultado de la consulta se irán creando las filas, también agregamos una variable $num de tipo entero que se irá incrementando, si el número que se incremento es par entonces pintará la fila en un tono azul, si el número es impar lo dejará en blanco.
Al terminar el while cerramos la etiqueta table  e imprimimos la variable $tabla para que la muestre en pantalla.

Claro que todo los estilo que estamos poniendo a mano se pueden hacer desde una hoja de estilo.

Al correr el archivo nos muestra la tabla como en la siguiente imagen:

Espero que este tutorial les haya servido esta entrada la iré actualizando para practicar con las consultas como una condición unir información de otra tabla, etc.

Les dejo la liga del manual de php es importante estar al día para evitar utilizar código que ya no es válido, les repito que existen varias formas de obtener el mismo resultado el chiste es ir probando.

Manual de php: http://www.php.net/manual/es/index.php 

Te invito a realizar comentarios para complementar esta entrada o corregirla. saludos y suerte.

"Programar no tiene que ser tan difícil como parece...."

2 comentarios: