Extraer filas y columnas de una tabla.

Resumen.

En ocasiones la lectura de una tabla tal y como la hemos visto hasta ahora no cubre ciertas tareas, como por ejemplo recuperar la clave a partir de la dirección de email o enviar newsletter al e-mail de nuestros usuarios. En este capitulo nos vamos a centrar específicamente en como extraer estos datos.

Artículo.

Como ya sabemos una tabla de una base de datos tiene una estructura ordenada y organizada con el objetivo de poder acceder a cualquier dato rápidamente.

Así podemos decir que una tabla esta compuesta por un conjunto de filas y columnas. Las filas las podemos identificar por la clave primaria o bien por cualquier otro campo de valor único (UNIQUE). Las columnas las podemos identificar por el nombre del campo. Así, considerando la tabla de referencia y dado que tenemos un id numérico y único podemos decir que el id 6 toma en la columna email un cierto valor.

Con estos conceptos claros vamos a tratar de extraer filas y columnas completas, y de estas extraeremos un valor concreto. Vamos al lio.

Extraer filas.- El procedimiento para extraer una fila es tan sencillo como esto:

$_Consul_Fila = "SELECT * FROM $tb1 WHERE email = '$email' LIMIT 1";
$_Extrae_Fila = mysqli_query($Conex_BD, $_Consul_Fila);
$FilaDatos = mysqli_fetch_row($_Extrae_Fila);


La función mysqli_fetch_row nos devuelve una fila de nuestra tabla, es decir, todos los datos de un registro concreto donde el email toma un cierto valor. Debemos tener en cuenta que esta función nos devuelve un array, del que podemos ver su contenido con la ya conocida expresión:

echo '<pre>';
print_r($FilaDatos);
echo '</pre>';


Este array lo podemos convertir en una cadena mediante la función nativa implode() de la siguiente manera:

$cadena_fila = implode('||', $FilaDatos);


donde hemos usado el separador doble pleca “||” para separar cada uno de los valores del registro.

Con la consulta

$_Consul_Fila = "SELECT * FROM $tb1 WHERE email = '$email' LIMIT 1";


Extraemos todos los campos de nuestra tabla, pero si queremos extraer solo uno, por ejemplo la clave, solo tenemos que hacer la siguiente modificación:

$_Consul_Fila = "SELECT clave FROM $tb1 WHERE email = '$email' LIMIT 1";


Simplemente hemos sustituido el asterisco “*” por el campo que queremos recoger. Si quisiéramos recoger dos o mas campos, solo tendríamos que separarlos por comas

SELECT clave, usuario, ip FROM $tb1 WHERE email = '$email' LIMIT 1


Podemos acceder de manera individual a cada dato tomando la key del array $FilaDatos, que en la ultima consulta la clave seria

$clave = $FilaDatos[0];


Si no tienes frescos los conocimientos sobre arrays, te remito a este artículo.

Extraer columnas.- Para extraer todos los datos de una columna la sintaxis es la siguiente:

$_Consul_Colum = "SELECT * FROM $tb1";
$_Colum_Dato = mysqli_query($Conex_BD, $_Consul_Colum);

while($Colum = mysqli_fetch_array($_Colum_Dato)){
$ColumDato[] = $Colum['email'];
}


Que nos devuelve el array

echo '<pre>';
print_r($ColumDato);
echo '</pre>';


y que al igual que en el caso anterior podemos convertir en una cadena

$cadena_columna = implode('||', $ColumDato);


La sintaxis completa seria la siguiente:

<?php
include('archivos/func_conexionBD.php');

$email = 'ni_nombre@dominio.com';

$Conex_BD = ConectaBD();

$_Consul_Fila = "SELECT * FROM $tb1 WHERE email = '$email' LIMIT 1";
$_Extrae_Fila = mysqli_query($Conex_BD, $_Consul_Fila);
$FilaDatos = mysqli_fetch_row($_Extrae_Fila);

echo '<pre>';
print_r($FilaDatos);
echo '</pre>';

$cadena_fila = implode('||', $FilaDatos);

echo "<p>$cadena_fila</p>";

echo "<p><hr></p>";

$_Consul_Colum = "SELECT * FROM $tb1";
$_Colum_Dato = mysqli_query($Conex_BD, $_Consul_Colum);

while($Colum = mysqli_fetch_array($_Colum_Dato)){
$ColumDato[] = $Colum['email'];
}

DesconectaBD($Conex_BD);

echo '<pre>';
print_r($ColumDato);
echo '</pre>';

$cadena_columna = implode('||', $ColumDato);

echo "<p>$cadena_columna</p>";

?>


Esperamos os haya resultado interesante este practico artículo sobre la extracción de datos de nuestras tablas.
Tags: Filas || mysqli_fetch_row || columnas || mysqli_fetch_array

Comentarios.

Sin comentarios, publica el tuyo.