22 Nov 2007
PHP - Conectar con una base de datos e imprimir una consulta
Bueno, para comenzar con los tutoriales y entrando más en el tema del diseño web, he querido empezar con un tutorial básico de como conectar a una base de datos MySQL y realizar una consulta sencilla a una tabla.
No quiero solamente poner un código para copiar y pegar, pretendo explicar bien para que se utiliza cada función y asi demostrar que php como todos los lenguajes de programación tienen cierta logica y que cualquiera la puede entender.
Espero les ayude ;).
Bueno, para empezar tenemos que tener una base de datos MySQL creada en el servidor MySQL (valga la redundancia) un servidor Web Apache y por supuesto, el interprete php (les recomiendo bajarse el Appserv y se ahorrarán instalar todo por separado). Yo en este tutorial voy a usar una BD (base de datos) llamada registrados, la cual contiene una tabla llamada usuarios, que a su vez tiene los siguientes campos (id_usuario, nombre, password).
Abajo adjunto una imagen en la que vagamente muestro la estructura de la base de datos, con la tabla y sus campos.

Una vez definido esto procederemos con el php para conectar y realizar la consulta a la base de datos.
Supongamos que creamos en nuestro servidor HTTP una carpeta llamada "consulta" y dentro de ella crearemos un archivo llamado "index.php". De modo que sea accesible por ejemplo, de esta forma "http://[root_del_servidor]/consulta/index.php".
Index.php
-
<?php
-
-
/* AQUI REALIZAREMOS NUESTRA CONEXION */
-
-
-
/* mysql_connect conecta al servidor mysql, y para
-
hacerlo necesita saber 3 cosas, la primera es en donde
-
esta el servidor, por lo general el servidor mysql esta
-
en la misma maquina donde se ejecuta el script, por lo
-
tanto el 99% de las veces es "localhost". Luego
-
se necesita el nombre de usuario que tiene los permisos
-
necesarios para acceder al servidor, asi como tambien
-
su contraseña */
-
-
-
/* mysql_select_db lo que hace es recibir el nombre de
-
la base de datos con la que deseamos trabajar, es el unico
-
parametro de esta funcion. En este caso es "registrados". */
-
-
/* BIEN, YA ESTAMOS CONECTADOS AL SERVIDOR Y A LA
-
BASE DE DATOS, AHORA LO QUE NECESITAMOS ES DECIRLE
-
AL SERVIDOS MYSQL QUE ES LO QUE QUEREMOS OBTENER
-
DE ESA BASE DE DATOS.*/
-
-
$sql = "SELECT * FROM usuarios";
-
-
/* Bien, lo que acabo de hacer es asignar a una variable
-
la cadena de consulta SQL que voy a usar para decirle al
-
servidor los datos que quiero obtener. Seria algo asi:
-
"SELECCIONAR todo DE usuarios. */
-
-
-
/* mysql_query lo que hace es comunicar al servidor
-
MySQL la consulta que se hará sobre la base de datos,
-
y esta función nos entrega un identificador para que
-
podamos luego recuperar los resultados */
-
-
{
-
-
-
}
-
-
/* Bueno quizas esto es lo mas difícil de entender, lo
-
que hicimos aca es un bucle del tipo while por la sencilla
-
razon de que debemos recorrer todos los datos arrojados
-
de la base y no solo uno, pero vamos por partes.
-
mysql_fetch_array($identificador) lo que hace es
-
construir un Array a partir de un identificador arrojado
-
por el servidor MySQL el cual contiene una referencia
-
a un juego de resultados. En este caso le pasamos el
-
identificador $consulta.
-
El bucle significa esto: MIENTRAS HAYA DATOS PARA
-
ASIGNAR A LA VARIABLE $ROW (array) MOSTRAR
-
EL NOMBRE Y EL PASSWORD. (esto lo hará tantas
-
veces como juego de datos (filas de la tabla) haya).
-
el array, en este caso $row tiene como indices los
-
nombres de los campos de la tabla, de esa forma podemos
-
recuperar cada valor de cada juego de resultados, por eso
-
si queremos mostrar el nombre pondremos
-
"echo $row['nombre']";
-
*/
-
-
-
/* Y por último, con esta simpre instrucción lo que
-
hacemos es liberar el identificador con los resultados
-
del servidor MySQL para liberar memoria. */
-
-
?>
De esta forma logramos conectar y mostrar un juego de datos de una tabla.
Posteado en Programación, Tutoriales

Diciembre 5, 2007 at 11:37
Hola, trabajo para Wixi y me pidieron el contacto de bloggers que hayan escrito un artículo sobre Wixi. Si les interesa que los contactemos eventualmente en el futuro (por nuevas versiones, invitaciones, etc.), pueden enviarme una dirección de mail y un nombre de contacto.
Un saludo
Enero 6, 2008 at 11:39
Hola, mi consulta es la siguiente, estoy armando una sección de avisos clasificados donde la consulta para mostrar los avisos es como la de este articulo. Le estoy agregando la opción de enviar un mensaje de correo electrónico a quien publica el aviso y queda algo así:
<a href=”?action=enviarMensaje&id=”>enviar mensaje
eso lo uso para una nueva consulta:
$result = mysql_query(”SELECT * FROM clasificados WHERE aviso_id=’$id’ “, $link);
ahora, la cosa es que se que voy a tener un unico resulado que es el registro correspondiente a ese id. Obligadamente tengo que usar un while para hacer uso de estos resultados?
Enero 8, 2008 at 15:37
Cristian, hola.
No, simplemente haz este paso:
$row = mysql_fetch_array($consulta);
sin el while entiendes?
y luego recupera los datos como se menciono antes:
$titulo_aviso = $row['titulo_aviso'];
haciendo esto, el array $row solo tendra un juego de datos, el primero que se arrojo desde la base de datos, que como en este caso discriminaste por ID, va a ser uno solo. (siempre y cuando el id sea unico en la tabla).
Cualquier consulta, posteas
Mayo 13, 2008 at 20:22
Buena explicación. Intento introducirme en el estudio de php y mysql y me ha parecido un buen comienzo. Muy bien explicado.
Me ha sabido a poco, je je je. Si publicas más cosillas te tendré muy en cuenta!
Un abrazo y gracias!
Julio 31, 2008 at 13:53
Hola: como se donde esta mi base de datos en el servidor o como la exporto desde acces?
en que carpeta debe ir para que pueda conectarse