Você está na página 1de 20

Conexin a la base de datos

Una vez que tenemos creada la base de datos en nuestro servidor, el siguiente paso es conectarnos a la misma desde una pgina PHP. Para ello PHP nos proporciona una serie de instrucciones para acceder a bases de datos MySQL.

<!-- Manual de PHP de WebEstilo.com --> <html> <head> <title>Ejemplo de PHP</title> </head> <body> <?php function Conectarse() { if (!($link=mysql_connect("localhost","usuario","Password"))) { echo "Error conectando a la base de datos."; exit(); } if (!mysql_select_db("base_datos",$link)) { echo "Error seleccionando la base de datos."; exit(); } return $link; } $link=Conectarse(); echo "Conexin con la base de datos conseguida.<br>"; mysql_close($link); //cierra la conexion ?> </body> </html>

Instrucciones para conectar con una Base de Datos MySQL en PHP Primero es recomendable separar los datos de conexin con las funciones de conexin en s, de modo que si estos cambian sea ms fcil y rpido cambiarlos en todos los scripts en los que haga falta. As es recomendable:

1 Definir un archivo con tan solo los datos de conexin, por ejemplo conexin.inc.php Ejemplo de conexin.inc.php <? // Fichero con los datos de conexion a la BBDD function Conectarse() { $db_host="localhost"; // Host al que conectar, habitualmente es el localhost $db_nombre="bbdd"; // Nombre de la Base de Datos que se desea utilizar $db_user="user"; // Nombre del usuario con permisos para acceder $db_pass="password"; // Contrasea de dicho usuario // Ahora estamos realizando una conexin y la llamamos $link $link=mysql_connect($db_host, $db_user, $db_pass) or die ("Error conectando a la base de datos."); // Seleccionamos la base de datos que nos interesa mysql_select_db($db_nombre ,$link) or die("Error seleccionando la base de datos."); // Devolvemos $link porque nos har falta ms adelante, cuando queramos hacer consultas. return $link; } ?> 2 Incluir este archivo en cada script que necesite datos de la base de datos. Aadir la siguiente lnea en cada archivo que lo requiera: include('conexion.inc.php'); // Suponemos que el archivo con los datos es conexin.inc.php 3 Realizar las consultas de un modo claro: Para recuperar los datos de una sencilla consulta de ejemplo: SELECT nombre, apellido, telefono FROM amigos

<? include('conexion.inc.php'); // Suponemos que el archivo con los datos es conexin.inc.php // As llamaremos a la funcin que tena los datos para conectarse $link = Conectarse(); // En una variable tipo STRING escribimos la consulta. $sql = " SELECT nombre, apellido, phone FROM friends "; // Con la funcin mysql_query() realizamos la consulta que queramos en la base de datos // seleccionada previamente. Es decir le entramos la consulta que habamos llamado $sql $result = mysql_query($sql) or die(La siguiente consulta contiene algn error:<br>nSQL: <b>$sql</b>); // Ahora tenemos en $result todos los registros de la consulta, ahora debemos mostrarlos uno a uno while ($row = mysql_fetch_array($result)) { // El while ya deberamos saber que hace, mysql_fetch_array() avanza uno a uno los registros // Como hemos metido un registro en $row, tendremos que mostrar lo que nos interese en pantalla. echo El Nombre es: <b>.$row[nombre].</b><br>n; // Para mostrar el campo nombre echo El Apellido es: <b>.$row[apellido].</b><br>n; // Para mostrar el campo apellido echo El Telf. es: <b>.$row[telefono].</b><br><br>n; // Para mostrar el campo telefono } ?> El resultado a la ejecucin del script sera algo como: El Nombre es: Scott

El Apellido es: Doanes El Telf. es: 933334455 El Nombre es: Basilio El Apellido es: Vera El Telf. es: 933335566 El Nombre es: Vicente El Apellido es: Carrasco El Telf. es: 934447788 (Etc...) Siempre suponiendo que estos sean los registros que hay en la base de datos. Con la instruccin or die() se mostrar en pantalla el mensaje entrecomillado solo en el caso de que fallara la primera sentencia de la lnea. NOTAS: Tambin podramos haber usado la lnea: echo El Nombre es: <b> {$row[nombre]}</b><br>n; En lugar de: echo El Nombre es: <b>.$row[nombre].</b><br>n; El resultado habra sido el mismo. Incluso podramos haber utilizado otras funciones para acceder fila a fila, por ejemplo: mysql_fetch_object(); Pero entonces tendramos que haber escrito algo como lo siguiente, para cada lnea: echo El Nombre es: <b>.$row->nombre.</b><br>n; Al usar esta funcin, en lugar de poner el nombre del campo as $nombre_variable[nombre_del_campo] se pone $nombre_variable->nombre_del_campo.

Si queremos mostrar los resultados en forma de tabla, habra que intercalar el cdigo HTML referente a tablas entre el cdigo que muestra las variables, por ejemplo algo como: echo <table>n; // Comenzamos la tabla antes del while echo <tr><th>Nombre</th><th>Apellido</th><th>Telfono</th></tr>; // As escribimos la cabecera de la tabla while ($row = mysql_fetch_array($result)) { echo <tr><td>{$row[nombre]}</td>n; // Comenzamos una fila (<tr>) echo <td>{$row[apellido]}</td>n; echo <td>{$row[telefono]}</td></tr>n; // Acabamos una fila (</tr>) } echo </table>; // Fin de la tabla.

/************************************************************/

Como interactuar con una base de datos MySQL usando PHP


Autor: Agustn Dondo 1 . Tabla de usuarios 2 . Cdigo PHP Existe una variedad de lenguajes de script y motores de bases de datos, pero a una de las mejores alternativas en cuanto a costo y velocidad la conforman PHP y MySQL. Adems de ser extremadamente rpido, utilizo este sistema de base de datos para mis sitios por estar bien documentado. Con solo pocas lneas de cdigo PHP se pueden administrar datos guardados en una base MySQL, agregando, eliminando o actualizando campos y registros. Para comenzar con los ejemplos de este artculo debemos crear una nueva base de datos. Esto se puede hacer de diferentes maneras, ya que existen distintos programas para administrar bases de datos, como el conocido phpMyAdmin; otra forma es desde la lnea de comandos del Server haciendo un Telnet.

En este ejemplo asumo que tienes instalado y configurado phpMyAdmin adecuadamente para manejar bases y tablas. La mayora de ISP y proveedores de hosting ofrecen este servicio ya instalado para los clientes. Siguiendo las instrucciones del PhpMyAdmin fcilmente podras crear la base que utilizaremos para los ejemplos, el nombre de la base ser ejemplo.

Tabla de usuarios
Con la primera base creada pasamos a construir la tabla usuarios que estar compuesta como se muestra a continuacin en la tabla: Tipo Entero Autonumerico id Valor Default 0 Clave principal nombre Varchar 50 apellido Varchar 50 dni Entero Las propiedades de los campos se configuran en phpMyAdmin al crear la tabla. Con la base y la tabla creada adecuadamente podemos pasar a escribir cdigo PHP. Campo

Cdigo PHP
A continuacin crearemos cinco scripts que se encargaran de realizar las funciones bsicas sobre una base de datos MySQL, estos archivos sern: conexion.php, cerrar_conexion.php, guardar.php, ver.php y actualizar.php. Como primer paso crearemos la conexin con el MySQL, el script correspondiente sera conexin.php, el cual estar incluido utilizando la funcion include (nombre_archivo) de PHP, en todos los dems scripts del sitio que trabajen con la base de datos para establecer la conexin ahorrando lneas de cdigo. Sin una conexin establecida no se podr trabajar con la base de datos. En el archivo conexin.php deben ser configuradas un par de variables correspondientes a nuestro servidor: el host, usuario y password para acceder al MySQL, adems indicar que base se utilizara en la conexin. Entonces podemos abrir el bloc de notas, escribir las siguientes lneas de cdigo y guardarlas con el nombre conexin.php: Archivo conexion.php
<? $dbhost="localhost"; // host del MySQL (generalmente localhost) $dbusuario="agustin"; // aqui debes ingresar el nombre de usuario // para acceder a la base $dbpassword="mipass"; // password de acceso para el usuario de la // linea anterior $db="ejemplo"; // Seleccionamos la base con la cual trabajar

$conexion = mysql_connect($dbhost, $dbusuario, $dbpassword); mysql_select_db($db, $conexion); ?>

Con este archivo creado podemos empezar a trabajar con la base desde nuestros siguientes scripts. Seria correcto cerrar la conexin abierta al terminar de trabajar con la base, para ello creamos un nuevo archivo con solamente una lnea de cdigo: Archivo cerrar_conexion.php
<? mysql_close($conexion); ?>

Esta lnea cierra la conexin con el motor MySQL abierta en el archivo conexion.php, este archivo ser incluido en el final de todos los scripts siguientes. Es el turno ahora del archivo guardar.php que se encargara de insertar registros en la base mostrando un formulario mediante el cual el usuario ingresara los nuevos datos. Entonces creamos un nuevo documento de texto con el siguiente contenido: Archivo guardar.php
<? include "conexion.php"; if (!isset($accion)){ echo" <html> <head><title>Guardar datos en la base</title></head> <body> <h3>Guardar datos en la base</h3> <form name=\"form1\" method=\"post\" action=\"guardar.php?accion=guardar\"> <p>Nombre:<br> <input type=\"text\" name=\"nombre\"> </p> <p>Apellido:<br> <input type=\"text\" name=\"apellido\"> </p> <p>DNI:<br> <input type=\"text\" name=\"dni\"> </p> <p> <input type=\"submit\" name=\"Submit\" value=\"Guardar Datos\"> </p> </form> </body> </html>"; }elseif($accion=="guardar"){ include"conexion.php"; $result=mysql_query("INSERT INTO usuarios (id,nombre, apellido, dni) VALUES ('',$nombre,$apellido,$dni) ",$conexion); echo" <html> <head></head> <body> <h3>Los datos han sido guardados</h3> </body> </html>";

} include "cerrar_conexion.php"; ?>

Claro est que se omitieron muchas lneas de cdigo destinadas a chequear que los datos ingresados por el usuario fueron correctos y solamente nos limitamos a guardar los datos en la base. El script que escribiremos a continuacin toma los datos de la base y mediante una iteracin forma una tabla en la cual se representara la lista de datos ordenada por el campo nombre. Archivo ver.php
<? include "conexion.php"; $result=mysql_query("SELECT * FROM usuarios ORDER BY nombre", $conexion); echo"<table width=300> <tr> <td><b>Nombre</b></td><td><b>Apellido</b></td><td><b>DNI</b></td> </tr>"; while($row=mysql_fetch_row($result)){ echo"<tr> <td>$row[1]</td><td>$row[2]</td><td>$row[3] <a href=\"actualizar.php?id=$row[0]\">Actualizar</a></td> </tr>"; } echo"</table>"; include "cerrar_conexion.php"; ?>

Con los archivos creados hasta ahora podemos guardar datos en la base y ver los registros guardados. Al formarse la tabla con los resultados obtenidos de la base, notaremos que al lado de cada registro aparece un link llamado Actualizar, el cual hace referencia al archivo que crearemos a continuacin. El link pasa como parmetro la variable id que contiene el nmero correspondiente al campo autonumrico del registro que actualizaremos. El archivo siguiente muestra un formulario con los datos que actualmente contiene la base en el lugar indicado por la variable id, una vez llenado el formulario, el script actualiza la tabla de la base de datos con la nueva informacin ingresada por el usuario. Archivo actualizar.php
<? include "conexion.php"; if (!isset($accion)){ $result=mysql_query("SELECT * FROM usuarios WHERE id=$id", $conexion); $row=mysql_fetch_row($result); echo"<html> <head><title>Actualizar datos de la base</title></head> <body> <form action=\"actualizar.php?accion=guardar\" method=\"POST\"> Nombre:<br> <input type=\"text\" value=\"$row[1]\" name=\"nombre\"><br>

Apellido:<br> <input type=\"text\" value=\"$row[2]\" name=\"apellido\"><br> DNI:<br> <input type=\"text\" value=\"$row[3]\" name=\"dni\"><br> <input type=\"hidden\" name=\"id\" value=\"$row[0]\"> <input type=\"submit\" value=\"Guardar\"> </form> </body> </html>"; }elseif($accion==guardar){ $result=mysql_query("UPDATE usuarios SET nombre=$nombre, apellido=$apellido, dni=$dni WHERE id = $id",$conexion); echo" <html> <body> <h3>Los registros han sido actualizados</h3> </body> </html>"; } include "cerrar_conexion.php"; ?>

Estos scripts muestran como rpidamente se puede administrar una base de datos online. He intentado en este artculo mostrar la manera ms sencilla de hacerlo. Se puede agregar en cada archivo funciones para chequear que los datos ingresados por el usuario son correctos, adems de mostrar diferentes errores en cada caso, pero eso queda en manos de ustedes. El PHP trae incorporadas funciones para interactuar con distintos tipos de bases de datos, como Oracle, SQL Server, y ms. Si alguien tiene crticas, o cualquier tipo de comentarios sobre este articulo, le agradezco que me los haga llegar. /********************************************************************/

Conectarse a MySQL desde PHP


Artculos de Programacin Web | php

Conectarse a MySQL desde PHP Si tienen instalado MySQL en su maquina y desean aprender lo bsico de MySQL, deberian primero dirigirse a la seccion de MySQL del sitio. Alli estn explicados los comandos basicos de MySQL desde la linea de comando. Como crear bases de datos, tablas, agregar, modificar y borrar datos, crear usuarios con diferentes permisos, y mas comandos que deberamos saber antes de mezclar el PHP con MySQL. Si desean continuar con MySQL y PHP... sigamos adelante. Para conectarnos desde PHP a una base de datos en MySQL y mostrar datos contenidos en ella, debemos hacer tres pasos escenciales.

Conectarse con el servidor de datos MySQL Conectarse con la base de datos deseada Hacer la consulta SQL a una tabla especfica Veamos entonces los 3 pasos por separado. 1) Conectarnos con la Base de Datos MySQL: Para conectarnos a MySQL tenemos que tener saber host, un nombre de usuario y su contrasea... La linea de debe ser de este estilo: <? mysql_connection("host","usuario","contrasea"); ?> <?php $myconn = @mysql_connection("localhost","juan","diablo"); ?> Notar que agregue un caracter '@' antes de la linea de conexion. Esto es para que PHP ejecute la linea en forma silenciosa (si hay errores, no los mostrar). Pero si existirn claro. A continuacion evaluaremos si la conexion recien hecha, fue correcta. De modo contrario mostraremos un mensaje personalizado informando del error... Vemos como hacemos esto: <?php //Si $myconn tira un error, lo detectamos asi. //Mostramos un mensaje, y detenemos la carga de la pgina con exit() if (! $myconn){ echo "Error al intentar conectarse con el servidor MySQL"; exit(); } ?> En el caso de que $myconn haya fallado, no devuelve nada. Bsicamente lo que se hizo fue preguntar si $myconn no devolvio nada. En caso de que se cumpla, mostramos el mensaje personalizado, y detemos la carga de la pgina PHP. Hasta aqui lo que hicimos es conectar con el servidor MySQL y chequear que esa conexion sea exitosa. El paso numero 1 est completo. Veamos de que se trata el paso numero 2 y como se deberia escribir. 2) Conectarnos a la base de datos deseada: A continuacin, como dijimos al comienzo, haremos la conexion con una base de datos especfica. Para que esto pueda salir exitoso, tiene que estar la primera parte terminada. La linea de seleccion de la base de datos es de este estilo: <? mysql_select_db("base_de_datos",$variable_de_conexion); ?> <?php if (! @mysql_select_db("base1",$myconn)){ echo "No se pudo conectar correctamente con la Base de datos"; exit();

} ?> Lo que hicimos fue escribir la linea de conexion a la base de datos (tambien con '@') ya dentro del IF que nos chequea si fue correcto o incorrecto el intento. Como se puede entender, estamos intentando una Base que se llama 'base1', y usamos la variable de conexion anterior para indicar con que conexion debe ejecutarse. Esta ltimo argumente es opcional. PHP tomar por defecto la ltima conexion realizada a MySQL. Al igual que antes decimos... si todo hasta aca va bien, podremos para al paso 3, donde haremos nuestra consulta SQL y mostraremos los datos obtenidos. 3) Pedir datos a una tabla especfica, y mostrarlos: Bueno, si estn por aca, ya deben saber de sentencias SQL, al menos sentencias bsicas de SELECT. Eso utilizaremos ahora para pedir datos a una table que est dentro de la BD que conectamos recientemente. Empezemos... Les mostrar el cdigo donde se crea la consulta y se ejecuta. Ms abajo veremos como mostrar esos datos que han juntado... <?php $sql = "SELECT nombre,apellido FROM usuarios"; $result = mysql_query($sql) ?> Qu hicimos aqui? Bueno, primero simplemente guardamos la sentencia SQL en la variable $sql, en la cual le pedimos la tabla usuarios las columnas de nombre y apellido. En la segunda linea del cdigo, ejecutamos la consulta sql, guardando todos sus resultados en la variable $result Podemos volver a chequear que esa consulta est bien realizada con el mismo truco que antes. <?php if (! $result){ echo "La consulta SQL contiene errores."; exit(); } ?> Importante: Si la consulta es vlida, ese IF no se cumplira, aunque no devuelva resultados. O sea que solo se est chequeando que la sentencia se vlida o no. Ahora si finalmente mostraremos los datos pedidos, terminando con esta larga explicacin. Recordemos que todos los datos los tenemos almacenados en la variable $result. Haremos un bucle WHILE con el cual mostraremos automticamente todos los datos pedidos. <?php //Bucle WHILE para mostrar los resultados... while ($row = mysql_flech_array($result)){

echo "<P>",$row["nombre"]," - ",$row["apellido"],"</P>"; } ?> Por ltimo queda explicar este bucle que parece algo ms complicado y de echo lo es. A la funcin mysql_flech_array le pasamos como argumento la variable $result que contiene la informacion a mostrar. La funcin la extrae en forma de array la informacion que tiene la variable $result. Como se ve, se va pasando esa informacion a la variable $row (que tambin est en forma de array). Dentro del WHILE usamos echo para mostrar la info contenida en $row. Como est en forma de array, asi la mostramos. Como $row["campo"]. Espero despues de est detallada explicacin, puedan conectarse con su MySQL y mostrar toda la informacion que deseen... A continuacin tienen el cdigo detallado, todo unido... <?php $myconn = @mysql_connection("localhost","juan","diablo"); if (! $myconn){ echo "Error al intentar conectarse con el servidor MySQL"; exit(); } if (! @mysql_select_db("base1",$myconn)){ echo "No se pudo conectar correctamente con la Base de datos"; exit(); } $sql = "SELECT nombre,apellido FROM usuarios"; $result = mysql_query($sql) if (! $result){ echo "La consulta SQL contiene errores."; exit(); } while ($row = mysql_flech_array($result)){ echo "<P>",$row["nombre"]," - ",$row["apellido"],"</P>"; } ?> /*****************************************************************/ Creacin de la Pgina Web La pgina principal debe llamarse index.php, )o .php3 o .php4) .php indica que se comenzarn a introducir instrucciones de lenguaje php. Es indispensable que el archivo sea de extensin php para que la pgina se visualice correctamente.

Para la conexin desde PHP a una base de datos en MySQL y consulta de los datos almacenados, se deben realizar varios pasos, en riguroso orden: 1. Conexin con el servidor de datos MySQL 2. Conexin con la base de datos deseada 3. Hacer la consulta SQL a una tabla especfica y recuperar su resultado. 4. Extraer la informacin de $variable_resultados 5. Cerrar la conexin En cdigo PHP: 1. Conexin con el servidor de datos MySQL <? mysql_connect("host","usuario","passwd"); ?> Dentro del script: $variable:conexion= @mysql_connect("host","usuario","passwd"); $variable_de_conexion: se refiere a la variable donde se almacenara la salida de la instruccin. host: nombre o direcccion IP del servidor usuario: Usuario valido MySQL passwd: Contrasea del usuario. Se ha agregado el caracter '@' antes de la lnea de conexin, para que PHP ejecute la lnea en forma silenciosa (si hay errores, no los mostrar). 2. Conexin con la base de datos deseada. <? mysql_select_db("base_de_datos",$variable_de_conexion); ?> Dentro del script: $conex_bd= @ mysql_select_db("base_de_datos",$variable_de_conexion); 3. Hacer la consulta SQL a una tabla especfica y recuperar su resultado. <? mysql_query($variable_Isql); ?> $variable_Isql: Variable donde se almaceno la instruccin SQL. Dentro del script: $variable_Isql = "aqu va la consulta SQL"; $variable_resultados = mysql_query($sql) 4. Extraer la informacin de $variable_resultados <? mysql_fetch_array ($variable_resultados) ; ?> Dentro del script: $variable_row = mysql_fetch_array ($variable_resultados) ; 5. Cerrar la conexin

<? mysql_close ($variable_de_conexion); ?> Script Completo. <html> <head> <title> Ejemplo de PHP con MySQLs</title> </head> <body> <center><h1>Tabla de Clientes </h1></center> <?php //conectarse al servidor mysql. $link = @mysql_connect ("localhost", "root"); if($link==TRUE) printf ("Conexin Satisfactoria al servidor mysql"); else { printf ("<BR>No hay conexin al servidor mysql"); exit(); } //abrir la base de datos $conex=@mysql_select_db("comercial",$link); if($conex==FALSE) { echo "<BR>No se pudo conectar correctamente con la Base de datos"; exit(); } else echo "<BR>Se ha conectado a la base de datos comercias"; //consulta sql $sql = "SELECT * FROM clientes"; $result = mysql_query($sql); if($result==FALSE) echo "<BR>Hay errores en la consulta sql"; else echo "<BR>Consulta sql satisfactoria<P>"; //ciclo para escribir los datos de la consulta // Se presentara en forma de tabla

echo "<table border=1 width=90% align=center> <TR> <TH WIDTH=10%>CODIGO</TH> <TH>NOMBRE</TH> <TH WIDTH=20%>NOMBRE</TH> <TH WIDTH=25%>CIUDAD</TH> </TR>"; while($row = mysql_fetch_array ($result)) { echo "<TR> <TD WIDTH=10% ALIGN=CENTER>$row[codcliente]</TD> <TD>$row[nombre]</TD> <TD WIDTH=20% ALIGN=RIGHT>$row[nombrecliente]</TD> <TD WIDTH=25% ALIGN=CENTER>$row[ciudad]</TD> </TR>"; } echo "</TABLE>"; //cerrar la conexin @mysql_close ($link); Resumen de Funciones: mysql_connect() Establece una conexin a un servidor MySQL. mysql_close() Cierra el enlace con MySQL. mysql_query() Envia una sentencia SQL a MySQL. mysql_affected_rows() Devuelve el nmero de filas afectadas de la ltima operacin MySQL. mysql_fetch_array() Extrae la fila de resultado como una matriz asociativa. mysql_fetch_row() Devuelve una fila de resultado como matriz. mysql_select_db() Selecciona un base de datos MySQL. mysql_result() Devuelve datos de un resultado.

Este es el cdigo necesario para hacer la conexin entre PHP y una base de datos MySQL. Con la instruccin mysql_connect realizamos la conexin con el servidor, los parametros sn...

El nombre del servidor (obligatorio) El nombre de usuario (obligatorio) El password del usuario (si tiene)

Despus se ha de conectar con la base de datos utilizando la instruccin mysql_select_db con los parametros...

Nombre de la base de datos. Nombre de la conexin con el servidor utilizado.

La instruccin mysql_query devuelve el resultado de la busqueda SQL...


<? $conexio = mysql_connect("localhost","root",""); mysql_select_db ("bd_agenda", $conexio) OR die ("No se puede conectar"); $sql="SELECT * FROM agenda"; $result=mysql_query($sql,$conexio); if ($row= mysql_fetch_array($result)) { echo "<TABLE BORDER='1'>"; echo "<TR><TD>Nombre</TD><TD>Telfono</TD></TR>"; DO { echo "<TR><TD>".$row["nombre"]."</TD><TD>".$row["tel"]."</TD></TR>"; } WHILE ($row=mysql_fetch_array($result)); echo "</TABLE>"; } ?>

http://www.mclibre.org/consultar/php/lecciones/php_db_mysql_1.html http://soleup.eup.uva.es/mediawiki/index.php/Curso_PHP-MySQL 1. Conectar a MySQL desde PHP --------------------------------Conexin al MySQL <html> <body> <?php $link = mysql_connect("localhost", "nobody"); mysql_select_db("mydb", $link); $result = mysql_query("SELECT * FROM agenda", $link); echo "Nombre: ".mysql_result($result, 0, "nombre")."<br>"; echo "Direccin: ".mysql_result($result, 0, "direccion")."<br>"; echo "Telfono :".mysql_result($result, 0, "telefono")."<br>"; echo "E-Mail :".mysql_result($result, 0, "email")."<br>"; ?> </body> </html>

2. Aadir registros a nuestra base de datos ----------------------------------------------Formulario inicial aadir BD <html> <body> <form method="post" action="add_reg.php3"> Nombre :<input type="Text" name="nombre"><br> Direccin:<input type="Text" name="direccion"><br> Telfono :<input type="Text" name="telefono"><br> E-mail :<input type="Text" name="email"><br> <input type="Submit" name="enviar" value="Aceptar informacin"> </form> </body> </html> Hemos creado un formulario donde recoger los datos, y una vez introducidos ejecutamos un script llamado add_reg.php3, pues veamos como es este script. aadir registros <html> <body> <?php // process form $link = mysql_connect("localhost", "root"); mysql_select_db("mydb",$db); $sql = "INSERT INTO agenda (nombre, direccion, telefono, email) ". "VALUES ('$nombre', '$direccion', '$telefono', '$email')"; $result = mysql_query($sql); echo "Gracias! Hemos recibido sus datos.\n"; </body> </html> Como se puede ver, para introducir un nuevo registro, utilizamos la ya conocida funcin mysql_query(), la cal tambin usamos para las consultas, y usaremos para las actualizaciones, es decir una seora funcin. Aaah!, una cosa muy importante, para poder aadir o modificar registros debemos tener permiso para ello en el servidor MySQL, por eso en este caso me conecto como root, pero podra ser cualquier otro usuario. Para terminar esta leccin, una pequea frivolidad, vamos a combinar la pgina web de formulario y el fichero de script php3, en un solo fichero que llamaremos add_reg.php3 (este script no lo comentar, !algo tendran

que hacer ustedes). Combinacion de formulario y script <html> <body> <?php if ($enviar) { // process form $link = mysql_connect("localhost", "root"); mysql_select_db("mydb",$db); $sql = "INSERT INTO agenda (nombre, direccion, telefono, email) ". "VALUES ('$nombre', '$direccion', '$telefono', '$email')"; $result = mysql_query($sql); echo "Gracias! Hemos recibido sus datos.\n"; }else{ ?> <form method="post" action="add_reg.php3"> Nombre :<input type="Text" name="nombre"><br> Direccin:<input type="Text" name="direccion"><br> Telfono :<input type="Text" name="telefono"><br> E-mail :<input type="Text" name="email"><br> <input type="Submit" name="enviar" value="Aceptar informacin"> </form> <?php } //end if ?> </body> </html> 3.Mostrar los datos de una consulta ---------------------------------------Consulta de la BD <html> <body> <?php $link = mysql_connect("localhost", "nobody"); mysql_select_db("mydb", $link); $result = mysql_query("SELECT nombre, email FROM agenda", $link); echo "<table border = '1'> \n"; echo "<tr><td>Nombre</td><td>E-Mail</td></tr> \n"; while ($row = mysql_fetch_row($result)){ echo ""<tr><td>$row[0]</td><td>$row[1]</td></tr> \n";

} echo "</table> \n"; ?> </body> </html> En este script hemos introducido dos novedades, la ms obvia es la sentencia de control while(), que tiene un funcionamiento similar al de otros lenguajes, ejecuta una cosa mientras la condicin sea verdadera. En esta ocasin while() evalua la funcin mysql_fetch_row(), que devuelve un array con el contenido del registro actual (que se almacena en $row) y avanza una posicin en la lista de registros devueltos en la consulta SQL. La funcin mysql_fetch_row() tiene un pequeo problema, es que el array que devuelve slo admite referencias numricas a los campos obtenidos de la consulta. El primer campo referenciado es el 0, el segundo el 1 y as sucesivamente. En el siguiente script solucionaremos este pequeo inconveniente. Consulta modificada de BD <html> <body> <?php $link = mysql_connect("localhost", "nobody"); mysql_select_db("mydb", $link); $result = mysql_query("SELECT nombre, email FROM agenda", $link); if ($row = mysql_fetch_array($result)){ echo "<table border = '1'> \n"; echo "<tr><td>Nombre</td><td>E-Mail</td></tr> \n"; do { echo "<tr><td>".$row["nombre"]."</td><td>". $row["email"]."</td></tr> \n"; } while ($row = mysql_fetch_array($result)); echo "</table> \n"; } else { echo " No se ha encontrado ningn registro !"; } ?> </body> </html> Esencialmente, este script hace lo mismo que el anterior. Almacenamos en $row el registro actual con la funcin mysql_fetch_array() que hace exactamente lo mismo que mysql_fetch_row(), con la exepcin que podemos referenciar a los campos por su nombre ($row["email"]), en vez de por un nmero.

Con la sentencia if/else, asignamos a $row el primer registro de la consulta, y en caso de no haber ninguno (else) mostramos un mensaje ("No se ha encontrado..."). Mientras que con la sentencia do/while, nos aseguramos que se nos muestren todos los registros devueltos por la consulta en caso de haber ms de uno.

Você também pode gostar