• No results found

3.2 Material and Methods

3.3.2 Questionnaire result and statistical analysis

Para aprender a acceder a una base de datos tomaremos como manejador de base de datos a MySQL.

Creando una base de datos MySQL en MySQL Administrator

Crearemos paso a paso la base de datos dbdemo y una tabla llamada persona.

Primero abrimos MySQL Administrator e ingresamos los datos solicitados.

Figura 70. Conexión al servidor MySQL con MySQL Administrador

erecho del Mouse sobre una de las bases ccionando “Create New Schema”.

Luego hacemos clic con el botón d e datos para crear una nueva sele d

Figura 72. Menú de MySQL Administrator

Demos escribir el nombre de la nueva base de datos y presionar “OK”.

Figura 73. Creando una base de datos Una vez que presionamos “OK” tenemos creada la base de datos.

Figura 74. Base de datos creada en MySQL Administrator lick en el botón “Create Ahora creamos la tabla persona, para ello hacemos c

le”. Tab

Escribimos el nombre de la tabla: persona

Figura 76. Ingreso del nombre de la tabla

Luego, agregamos el primer campo: idpersona haciendo doble click en la primera celda de la sección “Columns and Indices”

Figura 77. Definición de campos de la tabla

tar q po como clave primaria,

uego de ingresar todos los datos de los campos de la tabla tenemos: Podemos no ue por defecto se establece al cam

tipo entero y autoincrementable. L

Figura 78. Estructura de la tabla Luego presionamos el botón “Apply changes”.

Figura 79. Confirmación para la creación de la tabla mos el resultado y presionamos “Execute” para terminar. Confirma

Creando una base de datos MySQL en phpmyadmin

El primer paso es crear una base de datos utilizando PHPMyADMIN una aplicación Web que nos permite administrar nuestras bases de datos MySQL desde la plataforma Web.

En nuestro navegador escribiremos la siguiente dirección: http://localhost/phpmyadmin/

La palabra “”localhost” de la dirección anterior se refiere al nombre con el que se ha configurado a nuestro servidor APACHE que hemos instalado con WAMP, es decir, hacemos referencia al servidor Web que esta instalado en nuestra máquina, por lo que no necesitamos de una conexión a Internet para desarrollar todos los ejemplos que veremos a continuación.

Figura 81. Interfaz de phpMyAdmin a página de inicio de phpmyadmin con la lista de bases de

Vemos l datos que

do derecho de la página tenemos una caja de texto que nos permite ha encontrado en el servidor. En caso que recién este utilizando MySQL sólo verá las bases de datos que vienen por defecto con la instalación.

En el la

Figura 82. Interfaz para cear una nueva bas

e de la base de datos y luego elegimos el cotejam e de datos

iento o ra guardar los datos en la base. Escribimos el nombr

conjunto de caracteres que se utilizará pa

Figura 83. Creando la base de datos dbdemo.

Una vez creada la base de datos podemos crear las tablas que necesitemos, en nuestro caso crearemos la tabla “persona”, la cual estará compuesta por cinco campos.

Figura 84. Creando la tabla persona.

resionar el botón “Continuar” aparecerá la siguiente página: l p

A

Figura 85. Especificación de los campos de la tabla

En esta página debemos especificar los atributos de cada campo. Por ejemplo el campo idpersona será la clave primaria y además será autoincrementable.

Figura 86. Autoincremento en el campo idpersona. A continuación se detalla la estructura de la tabla persona:

Idpersona int(11) autoincrement PK nombres varchar(50)

apellidos varchar(50) email varchar(100) telefono varchar(15)

Figura 87. Estructura de la tabla creada

Una vez creada la tabla aparecerá en la lista ubicada en el lado izquierdo de la página.

Ahora agregaremos registros a la tabla:

Figura 88. Menú de operaciones que se pueden realizar sobre las tablas de la base de datos.

En la parte superior de la página encontramos varios enlaces. Seleccionamos “Insertar”.

Figura 89. Formularios para la inserción de registros Esta interfaz nos permite ingresar nuevos registros a la tabla.

En nuestro caso no hay necesidad de ingresar el valor para idpers

debido a que es un cam sionamos el bo

“Continuar”.

ona tón po autoincrementable. Luego pre

Figura 91. Operación realizada con éxito y el script SQL que ha sido ejecutado.

Siempre phpmyadmin nos mostrará el script SQL que acabamos de ejecutar, en este caso la orden de inserción en la tabla persona.

Luego podemos ver la lista de registros haciendo click en “Examinar”.

Acceso a

funciones que nos permitirán conectarnos a un servidor de base de datos y luego elegir la base. Luego desarrollaremos las acciones básicas sobre una tabla como: inserción, edición, eliminación y búsqueda.

Ejemplo 65: Conexión a MySQL pagina12.php

<?php

$conex=mysql_connect("localhost","root","") or die(mysql_error()); mysql_select_db("dbdemo",$conex) or die(mysql_error()); ?>

La función mysql_connect abre una conexión a un servidor MySQL, y necesita para ello tres parámetros: el nombre o dirección del servidor de base de datos, un nombre de usuario y su contraseña. Podemos observar luego de la función mysql_connect que aparece el operador OR el cual nos permite ejecutar la orden die() en caso que la conexión fallara. La orden die() imprime un mensaje y termina el script actual, en este caso el mensaje será el resultado de la ejecución de la función mysql_error() retorna el texto del error de la última función MySQL o '' (cadena vacía) si no ocurrió error.

Una vez hecha la conexión alma namos en la variable $conex el identificador de enlace de dicha conexi n. Esta variable la utilizaremos para

seleccionar la base de ediante la función

ysql_select_db() que tiene como primer parámetro el nombre de la base de

gina que incluye el script escrito en pagina12.php para

Ejemplo 66: Listado de registros pagina13.php

<?php

include "pagina12.php"; //incluimos la conexion $sql="select * from persona"; //consulta sql

$rspersona=mysql_query($sql) or die(mysql_error());//ejecucion de la sentencia sql

while($reg=mysql_fetch_array($rspersona)) {

echo $reg[idpersona]." - ".$reg[nombres]." ".$reg[apellidos]."<br>"; }

?>

Podemos ver en el script que con la función mysql_query podemos ejecutar una sentencia SQL la cual almacena el resultado en la variable $rspersona.

MySQL desde PHP

En esta sección primero veremos las

ce ó

datos a la cual accederemos m m

datos.

Ahora veremos una pá

realizar la conexión y luego hacer una consulta de todos los registros de la tabla persona.

Una vez hecho esto leemos los registros con la función mysql_fetch_array() la cual devuelve una matriz que corresponde a la sentencia extraída, o falso si no quedan más filas. La función mysql_fetch_array() es una versión extendida de mysql_fetch_row(). Además de guardar los datos en el índice numérico de la matriz, guarda también los datos en los índices asociativos, usando el nombre de campo como clave. De esta forma leemos cada uno de los registros hasta llegar al final del conjunto de registros obtenidos en la consulta. Podemos deducir que cada vez que esta función es ejecutada, el puntero interno se desplaza al siguiente registro.

Resultado Web

Figura 93. Resultado de pagina13.php jemplo 67:

hora le daremos una mejor presentación al listado. pagina14.php

<?php

include "pagina12.php"; //incluimos la conexion //consulta sql

$sql="select * from persona"; //ejecucion de la sentencia sql $rspersona=mysql_query($sql) or die(mysql_error()); ?> <table> <tr> <th>Id</th> <th>Nombres</th> <th>Apellidos</th> <th>Editar</th> <th>Eliminar</th> </tr> <?php

//mostrar los registros

while($registro=mysql_fetch_array($rspersona)) E Listado de registros en una tabla A

{ ?>

ref="pagina16.php?idpersona=<?php echo "$registro[idpersona]"?>">editar</a></td>

<td><a href="pagina18.php?idpersona=<?php echo "$registro[idpersona]"?>">eliminar</a></td> </tr> <?php } ?> </table> <br>

<a href="formulario05.html">Agregar Registro</a> Resultado Web <tr> td><?php echo "$registro[idpersona]"?></td> < <td><?php echo "$registro[nombres]"?></td> td><?php echo "$registro[apellidos]"?></td> < <td><a h

Figura 94. Resultado de pagina14.php

Ahora pasaremos a programar el formulario y la página PHP para la inserción de registros.

Ejemplo 68: Inserción de registros en una tabla

Formulario05.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"> <head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Nuevo registro</title>

</head> <body>

<table width="80%" border="0" align="center"> > </tr>

<tr>

<td>Nombres</td

<td><input name="nombres" type="text" id="nombres" size="50" maxlength="50" /></td>

</tr> <tr>

<td>Apellidos</td>

<td><input name="apellidos" type="text" id="apellidos" size="50" maxlength="50" /></td>

</tr> <tr>

<td>E-Mail</td>

<td><input name="email" type="text" id="email" size="50" maxlength="100" /></td>

</tr> <tr>

<td>Tel&eacute;fono</td>

<td><input name="telefono" type="password" id="telefono" maxlength="15" /></td> </tr>

<tr>

<th colspan="2"><input name="Submit" type="submit" class="boton" value="Guardar" />

<input name="Su value="Cancelar" nclick="location='pagina14.php'" /></th>

/form> </body> </html>

Como resultado del cógio HTML obtenemos este formulario, el cual enviará los datos a pagina15.php.

<tr>

<th colspan="2">Nuevo Registro</th

>

bmit2" type="button" class="boton" o

</tr> </table> <

Pagina15.php <?php

include "pagina12.php";

//sentencia para insertar el usuario $sql="insert into persona

values('','$_POST[nombres]','$_POST[apellidos]','$_POST[email]','$_POST[t elefono]')";

//ejecutar sentencia

mysql_query($sql) or die(mysql_error());

echo "La persona fue registrada exitosamente<br>"; echo "<a href='pagina14.php'>Listado de Personas</a>"; ?>

Resultado Web:

Figura 96. Resultado de pagina15.php Ejemplo 69: Edición de registros

Pagina16.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/T

<html xmlns="h head>

clude "pagina12.php";

$sql="select * from persona where idpersona='$_GET[idpersona]'"; $rs=mysql_query($sql) or die(mysql_error()); //ejecutar sentencia if(mysql_num_rows($rs)>0) R/xhtml1/DTD/xhtml1-transitional.dtd"> ttp://www.w3.org/1999/xhtml"> < <?php in

$registro=mysql_fetch_array($rs); ?>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Nuevo registro</title>

</head> <body>

<form id="form1" name="form1" method="post" action="pagina17.php"> <table width="80%" border="0" align="center">

<tr> <th colspan="2">Edici&oacute;n de Persona</th> </tr> <tr>

<td>Nombres</td> <td><input name="nombres" type="text" id="nombres" size="50" maxlength="50" value="<?php echo $registro[nombres]?>" /></td> </tr>

<tr>

<td>Apellidos</td> <td><input name="apellidos" type="text" id="apellidos" size="50" maxlength="50" value="<?php echo $registro[apellidos]?>" /></td>

</tr> <tr>

<td>E-Mail</t ail"

ize="50" maxlength="100" value="<?php echo $registro[email]?>"/></td>

<td>Tel&eacute;fono</td> <td><input name="telefono" type="text" id="telefono" maxlength="15" value="<?php echo

$registro[telefono]?>"/></td> </tr>

<tr>

<th colspan="2"><input name="Submit" type="submit" class="boton" value="Guardar" /> <input name="Submit2" type="button" class="boton" value="Cancelar" onclick="location='pagina14.php'" /></th> </tr> </table> </form> </body> </html> Resultado Web:

d> <td><input name="email" type="text" id="em s

</tr> <tr>

Figura 97. Formulario de edición de un registro

pagina17.php <?php include "p

sentencia para editar el registro

$sql="update persona set nombres='$_ OST[nombres]', apellidos='$_POST

lefono='$_POST[telefono]' where idpersona='$_POST[idpersona]'"; ie(mysql_error());

cho "La persona fue actualizada exitosamente<br>"; echo "<a href='pagina14.php'>Listado de Personas</a>"; ?> Resultado Web: agina12.php"; // P [apellidos]', email='$_POST[email]', te //ejecutar sentencia mysql_query($sql) or d e

Figura 98. Resultado de pagina17.php Ejemplo 70: Eliminación de registros

pagina18.php <?php

include "pagina12.php"; //sentencia para elim

$sql="delete from persona where idpe ='$_GET[idpersona]'"; inar el registro

//ejecutar sentencia mysql_query($sql) or

cho "La persona fue eliminada exitosamente<br>"; >

En la siguiente sección veremos el acceso a una base de datos PostgreSQL. die(mysql_error());

e

echo "<a href='pagina14.php'>Listado de Personas</a>"; ?

Instalación de PostgreSQL sobre Windows XP

Para instalar PostgreSQL debemos descargar el instalador de la sección “Download” de http://www.postgresql.org.

Una vez descargado el archivo zip, lo descomprimimos y tendremos los siguientes archivos:

Figura 99. Archivos de instalación de PostgreSQL Ejecutamos el archivo postgresql-8.3

Figura 100. Asistente de instalación de PostgreSQL

Seleccionamos el idioma que se usará en la instalación (English) y presionamos “Start”.

Figura 101. Inicio del asistente de instalación

Se recomienda c leemos las

strucciones necesarias para empezar.

errar los programas abiertos y y luego in

Figura 103. Opciones de instalación amos

Seleccion las herramientas e interfaces que deseamos instalar.

Figura 104. onfiguración del servicio Luego ingresamos el password para la cuenta postgres.

Figura 105. Error en la cuenta

Si el usuario postgres no existe aparecerá el mensaje anterior para preguntar si deseamos crearlo – responderemos “Si”.

Figura 106. Password aleatorio

Si no ingresamos un password lo suficientemente seguro nos aparecerá este mensaje para asignarnos un password aleatorio. Si deseamos conservar

te presionaremos “No”. nuestro password ingresado anteriormen

Figura 107. Cuenta del superusuario

Ingresamos otro password para el super-usuario del sistema de base de tos (por razones de seguridad, se recomienda no utilizar el password

rior). da ante

Figura 108. Habilitar lenguaje procedural

rocedural y presionamos “Next” para luego Seleccionamos el lenguaje p

seleccionar los módulos adicionales que podemos instalar.

Figura 109. El asistente está listo para iniciar la instalación esta todo listo para la instalación.

Figura 110. Instalando PostgreSQL

Figura 111. Instalación completa

Finalmente nos aparecerá esta ventana que nos indica el final de la k y s el instalación. Si no queremos correr el Stack Builder quitamos el chec presionamos “Finish”.

Una vez instalado vamos al menú “Inicio” – Programas y seleccionamo menú de PostgreSQL. En este menú abrimos PgAdmin III.

Figura 112. pgAdmin III

Si hacemos doble click sobre el servidor “PostgreSQL Database Server 8.3 aparecerá la siguie

” nte ventana para logearnos.

Creando una base de datos PostgreSQL en pgAdmin III

atos. trar nuestras bases de d Al ingresar a pgAdmin ya podemos adminis

Figura 114. Listado de elementos del servidor s una base de datos.

Creamo

Figura 115. Creando una base de datos Ingresamos los datos de la nueva base de datos (dbdemo).

Figura 116. Datos de la nueva base de datos

otón derecho del Luego creamos la tabla persona, haciendo click con el b

mouse y seleccionando “New table…”

Figura 118. Propiedades de la tabla

Especificamos los datos de la tabla y luego los campos. Cuando el tipo de dato es autoincrementable seleccionamos el tipo serial.

Figura 120. Columna nombres de la tabla persona Luego especificamos la clave primaria de la clave

Figura 121. Clave primaria de la tabla persona

Luego de especificar el nombre del constraint seleccionamos los campos de la clave primaria.

Figura 122. Columnas pertenecientes a la clave primaria

Finalmente registramos el constraint y luego podemos ver el script de la abla.

t

Figura 124. Final de la creación de la tabla

recho sobre la tabla persona seleccionamos “View Data” Haciendo click de

para ver los registros.

Figura 126. Vista de datos de la tabla

s doble click sobre la primera fila e ingresamos luego los datos. Hacemo

Figura 127. Editando datos en la tabla

remos la creación de la base de datos con otra herramienta. Ahora ve

Creando una base de datos PostgreSQL en phpPgAdmin

El primer paso es crear una base de datos utilizando phpPgAdmin una estras bases de datos aplicación Web que nos permite administrar nu

res. Postg

Escribiremos la siguiente dirección: http://localhost/phppgadmin/

Figura 128. Interfaz de phpPgAdmin

Ingresamos el usuario y password para tener acceso a las bases de datos.

Figura 129. Logeo de usuarios al servidor PostgreSQL

“Autenticar” para esar.

Una vez ingresados los datos presionamos el botón ingr

Figura 130. Interfaz de ingreso a phpPgAdmin

Ahora crearemos una base de datos PostgreSQL, haciendo clic en el hipervínculo: “Crear base de datos”.

Figura 131. Creando una nueva base de datos

Ahora nuestra base de datos “dbdemo” aparece en el margen izquierdo de la aplicación Web.

Figura 132. Base de datos dbdemo creada ccionamos la base de datos para crear la tabla “persona”. Sele

Figura 133. Menú de elementos de la base de datos

Figura 134. creando la tabla persona

Ingresamos el nombre de la tabla y especificamos la cantidad de cam os a crear y luego presionamos “Próximo”.

pos que vam

Figura 135. Ingresando los campos de la tabla

l igual que en MySQL sel clave primaria

de la tabla (el valor del campo se auto-incrementa en cada nuevo registro sertado), en este caso indicaremos lo mismo a través de “SERIAL”.

A eccionamos “autoincrement” para la

in

Figura 136. Autoincremento para la clave primaria

Figura 137. Estructura de la tabla

la tabla. Haciendo clic en el hipervínculo “Insertar”, agregaremos registros a

Figura 138. Formulario de ingreso de nuevos registros

Figura 139. Listado de registros

Para conectarnos a PostgreSQL desde PHP debemos aseguarrnos que las librerías de PHP para PostgreSQL estén disponibles, para ello vamos a menú de WAMP y listamos las extensiones de PHP.

Figura 140. Activando la extensión php_pgsql Una vez verificado procedemos a programar la página de conexión:

Acceso a PostgreSQL desde PHP

Ejemplo 71: Conexión a PostgreSQL pagina22.php

<?php

//conexion al servidor PostgreSQL

$conex=pg_connect("host=localhost dbname=dbdemo port=5432 user=oscar password=123456") or die("Error en la conexión");

?>

pagina23.php <?php

include "pagina22.php"; //incluimos la conexion //consulta sql

$sql="select * from persona"; //ejecucion de la sentencia sql

$rspersona=pg_query($sql) or die(pg_last_error($conex)); while($reg=pg_fetch_array($rspersona)) {