Está en la página 1de 7

Extraer datos de la base de datos MySql con PHP

En esta ocasin vamos a ver un ejemplo de cmo extraer datos de una base de datos Mysql con
PHP, para realizar la extraccin vamos a utilizar los mtodos que ofrece el objeto mysql de
PHP.

Suponiendo que tu base de datos se llama "clientes" y que tienes una tabla llamada
"datosclientes" con seis campos "id_cliente", "nombre", "apellidos", "direccion", "localidad",
"edad" y con un nmero determinado de registros, por ejemplo, yo para el ejemplo tengo cinco.

En el ejemplo se har una consulta select para extraer todos los registros y mostrarlos en una
tabla html, cada lnea de cdigo del ejemplo viene comentada para que sepas cual es la funcin
de cada uno de los mtodos mysql utilizados ...







<?php
/* By http://php-estudios.blogspot.com */

//Se establece la conexin a la base de datos.
$mysql_usuario = "root";
$mysql_password = "password";
$mysql_host = "localhost";
$mysql_database = "clientes";

$conexion = mysql_connect($mysql_host, $mysql_usuario, $mysql_password,
true);

//Seleccionar la base datos y la conexin, si existe un error se captura
el error con die.
mysql_select_db($mysql_database, $conexion) || die('No pudo conectarse:
'.mysql_error());

//Preparar la consulta
$consulta = "SELECT * FROM datosclientes";
//Ejecutar la consulta
$resultado = mysql_query($consulta, $conexion) or die(mysql_error());

//Se crea una tabla para mostrar los resultados
$tabla = "<table border='1' cellpadding='10'>\n";
$tabla .=
"<tr><th>ID</th><th>Nombre</th><th>Apellidos</th><th>Direccin</th><th>Lo
calidad</th><th>Edad</th></tr>\n";
//Extraer fila a fila con un bcle while
while($fila = mysql_fetch_assoc($resultado)){
$tabla .= "<tr>
<td>".$fila["id_cliente"]."</td>
<td>".$fila["nombre"]."</td>
<td>".$fila["apellidos"]."</td>
<td>".$fila["direccion"]."</td>
<td>".$fila["localidad"]."</td>
<td>".$fila["edad"]."</td>
</tr>\n";
}
//Se cierra la tabla
$tabla .= "</table>\n";

//Cerrar la conexin
mysql_close($conexion);
?>

<!DOCTYPE HTML>
<html>
<head>
<title>Extraer datos de la base de datos MySql con PHP</title>
</head>
<body>
<?php
//Se muestra la tabla con los resultados de la consulta
echo $tabla;
?>
</body>
</html>


Este es el resultado de la consulta ...





Insertar datos en la base de datos MySql con PHP

En esta ocasin vamos a ver un ejemplo de cmo insertar datos en una base de datos Mysql con
PHP, para ellos usaremos la sentencia I NSERT y el objeto mysql de PHP.

Suponiendo que tu base de datos se llama "clientes" y que tienes una tabla llamada
"datosclientes" con seis campos "id_cliente", "nombre", "apellidos", "direccion", "localidad",
"edad".

Bien, pues teniendo la tabla con los campos correctos, vamos a ver un ejemplo prctico en el
cual habr un formulario para agregar nuevos registros a la tabla, todos los pasos a seguir estn
comentados en el cdigo, tambin he querido hacer mencin al filtrado de datos para dar
seguridad a la aplicacin, ya que a la hora de trabajar con bases de datos esta es la labor ms
importante, el formulario ser enviado, se capturar el valor de cada uno de los campos y
tendrn que pasar un filtro de expresiones regulares a travs de la funcin preg_match, si pasa
todos los filtros el registro ser guardado en la tabla y mostrado por pantalla, de lo contrario se
mostrar un error y el registro no ser guardado, ya que el filtro de seguridad no ha sido pasado.

Debajo de las imgenes se encuentra el cdigo de ejemplo.

Imgenes del ejemplo ...

Rellenando el formulario

Cliente insertado correctamente

Error al pasar el filtro de Expresiones regulares



Cdigo del ejemplo, al archivo lo puedes llamar insertar.php ...


<?php
/* By http://php-estudios.blogspot.com */

//En un principio la variable $tabla que muestra el nuevo registro debe
declararse y estar en blanco.
$tabla = "";
//En un principio la variable $error que muestra el posible error al
filtrar los datos debe declararse y estar en blanco.
$error = "";

/* Si el formulario es enviado */
if (isset($_POST["insertar"]))
{
//Almacenar los campos en variables
$nombre = $_POST['nombre'];
$apellidos = $_POST['apellidos'];
$direccion = $_POST['direccion'];
$localidad = $_POST['localidad'];
$edad = $_POST['edad'];


//Filtrar los datos por motivos de seguridad
//Este proceso siempre hay que llevarlo a cabo al hacer consultas a la
base de datos
//Para cada campo aplicar un filtro de no pasarlo no se realizar la
insercin del nuevo registro.

if (!preg_match("/^[a-zA-Z\s]+$/",
$nombre)) //letras latinas + espacios
{
$error = "Ha ocurrido un error, datos no permitidos.";
}
else if(!preg_match("/^[a-zA-Z\s]+$/",
$apellidos)) //letras latinas + espacios
{
$error = "Ha ocurrido un error, datos no permitidos.";
}
else if(!preg_match("/^[a-zA-Z0-9\s\_\-
\/\\\.\,\:\;]+$/", $direccion)) //letras latinas + nmeros + espacios +
algunos caracteres ms
{
$error = "Ha ocurrido un error, datos no permitidos.";
}
else if(!preg_match("/^[a-zA-Z\s]+$/",
$localidad)) //letras latinas + espacios
{
$error = "Ha ocurrido un error, datos no permitidos.";
}
else if(!preg_match("/^[0-9]+$/", $edad)) //Slo nmeros
{
$error = "Ha ocurrido un error, datos no permitidos.";
}
else
{
//Datos de conexin a la base de datos.
$mysql_usuario = "root";
$mysql_password = "password";
$mysql_host = "localhost";
$mysql_database = "tienda";

//Conectar
$conexion = mysql_connect($mysql_host, $mysql_usuario, $mysql_password,
true);

//Seleccionamos la base datos y la conexin, die para mostrar el error si
existe algn problema.
mysql_select_db($mysql_database, $conexion) || die('No pudo conectarse:
'.mysql_error());


//Preparar la consulta para insertar los datos
$consulta = "INSERT INTO datosclientes (nombre, apellidos, direccion,
localidad, edad)";
$consulta .= "VALUES ('$nombre', '$apellidos', '$direccion',
'$localidad', '$edad')";

//Ejecutar la consulta para guardar el registro
$resultado = mysql_query($consulta, $conexion) or die(mysql_error());

//Mostrar el registro nuevo en una tabla
$tabla = "<table border='1' cellpadding='10'>\n";
$tabla .=
"<tr><th>Nombre</th><th>Apellidos</th><th>Direccin</th><th>Localidad</th
><th>Edad</th></tr>\n";
$tabla .= "<tr>
<td>$nombre</td>
<td>$apellidos</td>
<td>$direccion</td>
<td>$localidad</td>
<td>$edad</td>
</tr>\n";
$tabla .= "</tabla>\n";

//Cerrar la conexin
mysql_close($conexion);
}
}
?>

<!DOCTYPE HTML>
<html>
<head>
<title>Insertar datos en la base de datos MySql con PHP</title>
</head>
<body>
<H3>INSERTAR CLIENTE</H3>

<!-- Para mostrar un posible error al filtrar los datos -->
<p style="color: red;"><?php echo $error; ?></p>
<!-- Para mostrar el nuevo registro -->
<p style="color: blue;"><?php echo $tabla; ?></p>

<!-- con $_SERVER["PHP_SELF"] estamos diciendo que la consulta ser
enviada al mismo archivo desde donde se enva el formulario, es decir
ste -->
<form action="<?php $_SERVER["PHP_SELF"]; ?>" method="post">
<table border="0">
<tr>
<td>Nombre:</td>
<td><input type="text" name="nombre"></td>
</tr>
<tr>
<td>Apellidos:</td>
<td><input type="text" name="apellidos"></td>
</tr>
<tr>
<td>Direccin:</td>
<td><input type="text" name="direccion"></td>
</tr>
<tr>
<td>Localidad</td>
<td><input type="text" name="localidad"></td>
</tr>
<tr>
<td>Edad</td>
<td><input type="text" name="edad" maxlength="3"></td>
</tr>
<tr>
<td>
<!-- El envo de este campo 'insertar' ser capturado por $_POST para
realizar la consulta -->
<input type="hidden" name="insertar">
</td>
<td><input type="submit" value="Enviar"></td>
</tr>
</table>
</form>
</body>
</html>

También podría gustarte