3.2 Obteniendo información de la base de datos MYSQL.

Una vez que hemos enviado una consulta mysql del tipo SELECT, es decir, para obtener información de la base de datos, lo siguiente es extraer esa información para que PHP la pueda procesar, para ello esta la función mysql_fetch_array().Dicha función obtiene una fila de la tabla que se haya generado como resultado de una consulta SELECT. Los parámetros que necesita dicha función son:

mysql_fetch_array($variable de la consulta,tipo de array);

  • $variable de la consulta  es la variable  que se uso junto con la función mysqli_query(), es decir , la variable en donde están almacenados los datos extraídos de la consulta SELECT.
  • Tipo de array; cuando realizamos una consulta SELECT se genera una tabla con los datos obtenidos, después usamos mysqli_fetch_array() para obtener una fila de dicha tabla a la vez, la fila la obtenemos como un arreglo o array , en este parámetro se específica el tipo de arreglo o array que deseamos obtener para trabajar con los datos, hay 3 tipos de Array posibles:
  • MYSQL_NUM, una vez que usando función mysql_fetch_array() se haya obtenido una única fila de la tabla, dicho parámetro guarda los valores de las columnas que componen la fila en un arreglo de clave y valor, donde la clave es un número.
  • MYSQL_ASSOC,  una vez que usamos la función mysql_fetch_array() para obtener una fila de la tabla generada por la consulta SELECT, dicho parámetro sirve para indicar que deseamos obtener un arreglo con los  valores de la fila, donde las claves sean los nombres de las columnas.
  • MYSQL_BOTH, una vez que usamos función mysql_fetch_array() para obtener una fila de la tabla generada con la consulta SELECT, dicho parámetro sirve para indicar que deseamos obtener un arreglo con números y nombres de columnas como claves.

 Para simplificar lo anterior, supongamos que tenemos una base de datos llamada website, la cual contiene una tabla llamada usuarios y entonces deseamos obtener de la tabla las columnas: nick , genero y país. Necesitaríamos el siguiente código para hacer la conexión, seleccionar la base de datos y enviar la consulta SELECT:

<?php
$conexion=mysqli_connect("localhost","root","password")or die("No se pudo realizar la conexión!!!!");
$baseDatos=mysqli_select_db($conexion,"website")or die("No se ha podido seleccionar la base de datos");
$consulta=mysqli_query($conexion,"SELECT nick,genero,pais FROM `usuarios`")or die("error en la consulta");
?>

Ahora para obtener los datos usando mysql_fetch_array() y usando el parámetro MYSQL_BOTH, el código sería como sigue:

while($fila=mysqli_fetch_array($consulta,MYSQL_BOTH)){
                echo “FILA DE LA TABLA<br/>”;
                   foreach($fila as $indice=>$valor){
                                        echo "$indice => $valor <br/>";
                                  }
                }
Como se puede observar se ha usado el ciclo while(), de forma que mientras mysqli_fetch_array() extraiga una fila se seguirá ejecutando el bloque de código. Se ha usado foreach() para recorrer el arreglo correspondiente a la fila y se imprime el índice y valor, aunque, debido al parámetro MYSQL_BOTH habrá dos índices por valor, un índice numérico y uno con el nombre de la columna, el output es el siguiente:
FILA DE LA TABLA
0 => rayworld
nick => rayworld
1 => masculino
genero => masculino
2 => Mexico
pais => Mexico
FILA DE LA TABLA
0 => alejandra24
nick => alejandra24
1 => femenino
genero => femenino
2 => Mexico
pais => Mexico
Ahora para obtener los datos usando mysql_fetch_array() y usando el parámetro MYSQL_ASSOC, el código sería como sigue:

while($fila=mysqli_fetch_array($consulta,MYSQL_ASSOC)){
               echo “FILA DE LA TABLA<br/>”;
                   foreach($fila as $indice=>$valor){
                                        echo "$indice => $valor <br/>";
                                  }
                }
Como se puede observar se ha usado el ciclo while() y mientras mysql_fetch_array() obtenga una fila de la tabla el bloque de código se ejecutará. Se ha usado foreach() para recorrer el arreglo correspondiente a la fila y se imprime el índice, que esta vez es el nombre de la columna, y el valor, el output es el siguiente:
FILA DE LA TABLA
nick => rayworld
genero => masculino
pais => Mexico
FILA DE LA TABLA
nick => alejandra24
genero => femenino
pais => Mexico
Por ultimo, en caso de usar el parámetro MYSQL_NUM , el código sería el siguiente:
while($fila=mysqli_fetch_array($consulta,MYSQL_NUM)){
             echo “FILA DE LA TABLA<br/>”;
                   foreach($fila as $indice=>$valor){
                                        echo "$indice => $valor <br/>";
                                  }
                }
Con dicho parámetro se obtiene un arreglo o array con los pares clave y valor, donde las claves son números, el output es el siguiente:
FILA DE LA TABLA
0 => rayworld
1 => masculino
2 => Mexico
FILA DE LA TABLA
0 => alejandra24
1 => femenino
2 => Mexico

Obteniendo información de la base de datos.
3.2

Copyright © 2013 LaWebDeRay
correo:lawebderay@gmail.com

Free Web Hosting