sábado, 4 de junio de 2011

Cómo obtener datos de MySQL usando PHP

El lenguaje PHP es muy extenso, como todos. Aprender todas las posibilidades del lenguaje cuesta tiempo y perseverancia. Hoy vamos a explicar como conectarse a una base de datos en MySQL usando PHP.
Lo primero que debemos hacer es crear un archivo PHP por separado, en el cual crearemos "la conexión" a la base de datos. Este archivo será un objeto reutilizable en nuestra página.
<?php
$hostname = "localhost";
$database = "mi_base_de_datos";
$username = "mi_nombre_de_usuario";
$password = "mi_password";
$conexion = mysql_pconnect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR);
?>
De esta forma, la variable $conexion será nuestro enlace a la base de datos.
Ahora bien, ¿de dónde sacamos esos valores que le daremos a este pequeño script? Veamos nuestro phpMyAdmin para entenderlo
Clic para agrandar la imagen
En esta pantalla haremos clic en la opción "Agregar un nuevo usuario"
Colocamos nuestro nombre de usuario, elegimos servidor Local, colocamos una contraseña y la repetimos. Luego debemos asignarle a este nuevo usuario privilegios. En principio vamos a usar la opción "Marcar todos/as", luego podremos hablar con más detalles acerca de estos privilegios.
De estos datos tomaremos en cuenta:
  • El nombre de la base de datos
  • El nombre de usuario que acabamos de crear
  • El password de este usuario
Estos tres datos los escribiremos cada uno en su sitio en nuestro archivo de conexión, el cual llamaremos conexion.php.

Capturemos datos de una tabla
Ahora vamos a crear un archivo PHP que se conecte a la base de datos, lea una tabla, extraiga un registro e imprima los datos de este registro.
Lo primero que haremos es cargar el archivo de coenxión, con la orden siguiente:
<?php require_once('conexion.php'); ?>
Luego, seleccionamos la base de datos y la tabla que queremos acceder (Recuerde siempre encerrar el código PHP entre "<?php" y "?>".)
mysql_select_db($database, $conexion);
Ahora creamos una variable con la sentencia SQL con la que accederemos a los datos que deseamos.
$sql_query = "SELECT * FROM clientes";
Por supuesto que se pueden hacer consultas mas complejas, así como hacer uso variables de las cuales dependa el resultado, utilizando el punto (.) para concatenar o la función sprintf. Veamos dos ejemplos:
$sql_query = "SELECT * FROM clientes WHERE id_cliente=".$id_a_consultar." ORDER BY nombre_cliente";
O bien,
$sql_query = sprintf("SELECT * FROM clientes WHERE id_cliente=%s ORDER BY nombre_cliente", $id_a_consular);
Donde las ocurrencias de "%s" son sustituidas por las variables después de la coma, en el mismo orden en que aparezcan.
Luego crearemos una instancia de la tabla a través de la función mysql_query.
$clientes = mysql_query($sql_query, $conexion) or die(mysql_error());
Por último, obtendremos el número de registros, y si es superior a 0 (cero), entonces podremos acceder a los datos.
$num_registros = mysql_num_rows($clientes);
  if ($num_registros) {
    $columnas = mysql_fetch_assoc($ciudad);
    do {
      $id = $columnas['id_cliente'];
      $nombre = $columnas['nombre_cliente'];
      $telef = $columnas['tel_cliente'];
      echo $id . " - " . $nombre . " - " . $telef . "<br />"; // resultados
    } while ($columnas = mysql_fetch_assoc($ciudad))
  }
Existen varias otras formas de acceder a los datos, con el uso de las funciones propias de PHP para MySQL.
De esta forma habremos obtenido los resultados deseados. Tomemos en cuenta que al exponer los resultados, podemos agregar cualquier elemento HTML, es decir, podemos construir listas desplegables, tablas, cuadros de selección, etc. Nuestra propia audacia será nuestro límite!!

1 comentario: