Copy Link
Add to Bookmark
Report

3x06: Programacion en PHP/MySQL

eZine's profile picture
Published in 
0ri0n Team Venezuela
 · 2 hours ago

-[ 3x06.txt ]---------------------------------------------------------------- 
-[ Programacion en PHP/MySQL
]--------------------------[ Mr. kl0nk Manson ]-
-------------------------------------------------------[ kl0nk@uole.com.ve ]-

Indice
ññññññ

1.- Preparando el MySQL
2.- Creando una tabla llamada Ejemplo
3.- Conectandonos con PHP al MySQL
a.- Conexion al MySQL

4.- Mostrar los datos de una consulta
a.- Consultando la Base de Datos.
b.- Consulta modificada de la DataBase

5.- Buscando en nuestra base de datos
a.- Formulario.html
b.- Script de Busqueda

6.- Agregando datos a nuestra base de datos
a.- Formulario agregar.php
b.- Combinacion de formulario y script

7.- Modificando Datos en Nuestra Base de Datos
a.- Modificar registros A.
b.- Modificar registros B.

8.- Borrar registros de nuestra base de datos
a.- Borrado registros de BD

9.- Conclusiones y Recomendaciones.


Introduccion
ññññññññññññ

Hola People's, nos volvemos a ver en este paper, bueno lo escribi para
complementar el articulo anterior (Programacion Basica en PHP - Ezine2 de
0ri0n); en este paper vamos a conbinar dos poderosas herramientas como
lo son: un lenguje pre-compilado (PHP) y un manejador de base de datos
(MySQL); bueno les voy a explicar en forma sencilla como insertar,
modificar, buscar, eliminar datos trabajando con PHP como intermediario
entre las salidas en HTML y el manejador de base de datos, pero para ello
debemos tener instalados PHP y MySQL, y tambien el servidor Apache
configurado para poder usarlos ...ah, por lo menos saber las instrucciones
basicas del PHP, como el manejo de funciones, llamados, etc ... bueno sin
mucho prologo ... preparecen porque vamos a comenzar:


1.- Preparando el MySQL
ñññññññññññññññññññ

Antes de seguir con PHP, vamos a preparar la base de datos que vamos a
utilizar. Una vez instalado MySQL, vamos a crear nuestra Base de Datos.

EL MySQL utiliza una tabla de permisos de usuarios, por defecto, en la
instalacion crea el usuario root sin password. Debes crear distintos
usuarios con distintos permisos. Entre ellos, el usuario administrador de
MySQL, con todos los permisos, y como recomendacion de seguridad, el
usuario "nobody" solo con el permiso de ver (SELECT), que es el que
utilizaremos para conectarnos al servidor de Base de Datos en nuestros
script.

Para crear nuestra Base de Datos, debemos ser el administrador de MySQL o
el root, para ello haremos lo siguiente:

#mysqladmin create ejemplo

NOTA: Si ya utilizas password entoces haz:
#mysqladmin -uroot -p tupassword create ejemplo

Ya hemos creado una Base de Datos, ahora le añadiremos una tabla y algunos
registros, para lo cual copia el siguiente texto y salvalo en un archivo,
que podriamos llamar prueba.sql .


2.- Creando una tabla llamada Ejemplo
ñññññññññññññññññññññññññññññññññ

NOTA: Ver las tablas de la DataBase en el articulo 3x13.txt, en la
seccion de PHP/MYSQL (Archivo database.mysql).


Ahora para agregarla solo nos queda hacer:

#mysql ejemplo < database.mysql

Cabe destacar el campo id, que no puede estar vacio, y ademas es
autoincrementable, lo cual deberemos tener en cuenta a la hora de
actualizar y añadir registros. Si no hemos cometido ningun error, ya
tenemos nuestra base de datos de ejemplo en el servidor MySQL.


3.- Conectandonos con PHP al MySQL
ññññññññññññññññññññññññññññññ

Ya tenemos los datos en nuestra DataBase, asi que con el siguiente
script nos conectaremos a la DataBase del servidor MySQL para obtener
los datos de un registro.


a.- Conexion al MySQL
ñññññññññññññññññ

Con este script podemos accesar a los registros de nuestra DataBase.

[++]
php-mysql/conectar.php
<html>
<body>

<?php

$conexion = mysql_connect("localhost", "root");
mysql_select_db("ejemplo", $conexion);

$resultado = mysql_query("SELECT * FROM datos", $conexion);
echo "Nombre :".mysql_result($resultado, 0, "nombre")."<br>";
echo "Direccion:".mysql_result($resultado, 0, "direccion")."<br>";
echo "Telefono :".mysql_result($resultado, 0, "telefono")."<br>";
echo "E-Mail :".mysql_result($resultado, 0, "email")."<br>";
?>

</body>
</html>
[--]


En la primera linea del script nos encontramos con la funcion
mysql_connect(), que abre una conexion con el servidor MySQL en el Host
especificado. Tambien debemos especificar un usuario (nobody, root,
etc. ), y si fuera necesario un password para el usuario indicado
(mysql_connect("localhost", "root", "password")). El resultado de la
conexion es almacenado en la variable $conexion.

Con mysql_select_db(), PHP le dice al servidor que en la conexion
$conexion nos queremos conectar a la base de datos ejemplo.

Podriamos establecer distintas conexiones a la DB en diferentes
servidores, pero nos conformaremos con una.

La siguiente funcion mysql_query(), es la que hace el trabajo duro, usando
el identificador de la conexion ($conexion), envia una instruccion SQL
al servidor MySQL para que este la procese. El resultado de esta operacion
es almacenado en la variable $resultado.

Finalmente, mysql_result() es usado para mostrar los valores de los campos
devueltos por la consulta ($resultado). En este ejemplo mostramos los
valores
del registro 0, que es el primer registro, y mostramos el valor de
los
campos especificados.


3.- Mostrar los datos de una consulta
ñññññññññññññññññññññññññññññññññ

Ahora que ya sabemos conectar con el servidor de BD, veremos como mostrar
los datos por pantalla.


a.- Consultando la Base de Datos
ññññññññññññññññññññññññññññ


[++] php-mysql/consulta.php
<html>
<body>

<?php

$conexion = mysql_connect("localhost", "root");
mysql_select_db("ejemplo", $conexion);
$result = mysql_query("SELECT nombre, email FROM datos", $conexion);

echo "<table>\n";
echo "<tr><td>Nombre</td><td>E-Mail</td></tr> \n";
while ($lista = mysql_fetch_row($result)){
echo ""<tr><td>$lista[0]</td><td>$lista[1]</td></tr> \n";
}
echo "
</table> \n";
?>

</body>
</html>
[--]


En este script se ha introducido el while(), que tiene un funcionamiento
similar al de otros lenguajes, ejecuta una cosa mientras la condicion sea
verdadera. En este caso, el while() evalua la funcion mysql_fetch_row(),
que devuelve un array con el contenido del registro actual (que se
almacena en $lista) y avanza una posicion en la lista de registros
devueltos en la consulta SQL.


b.- Consulta modificada de la DataBase
ññññññññññññññññññññññññññññññññññ


[++] php-mysql/consulta-m.php
<html>
<body>

<?php
$conexion = mysql_connect("
localhost", "root");
mysql_select_db("
ejemplo", $conexion);
$result = mysql_query("
SELECT nombre, email FROM datos", $conexion);
if ($lista = mysql_fetch_array($result))
{
echo "
<table> \n";
echo "
<tr><td>Nombre</td><td>E-Mail</td></tr> \n";
do
{
echo "
<tr><td>".$lista["nombre"]."</td><td>".$lista["email"]."</td></tr> \n";
}
while ($lista = mysql_fetch_array($result));
echo "
</table> \n";
} else {
echo "
No se ha encontrado ningun registro";
}
?>

</body>
</html>
[--]

Esencialmente, este script hace lo mismo que el anterior. Almacenamos en
$lista el registro actual con la funcion mysql_fetch_array() que hace
exactamente lo mismo que mysql_fetch_row(), con la exepcion que podemos
referenciar a los campos por su nombre ($lista["
email"]), en vez de por
un
numero.

Con la sentencia if/else, asignamos a $lista 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 mas de uno.


4.- Buscando en nuestra base de datos
ñññññññññññññññññññññññññññññññññ

Vamos a ver una aplicacion, un ejemplo, de todo lo visto hasta ahora.

Escribiremos un script que sirva para buscar una determinada cadena (que
recibiremos de un formulario, y la almacenamos en la variable $buscar),
dentro de nuestra base de datos, concretamente dentro del campo "
nombre".

En primer lugar escribiremos el texto HTML de la pagina web que nos
servira como formulario de entrada, la llamaremos formulario.html.


a.- Formulario.html
ñññññññññññññññ


[++] php-mysql/formulario.html
<html>
<body>
<form method="
POST" action="buscar.php">
<strong>Palabra clave:</strong>
<input type="
text" name="buscar" size="20"><br><br>
<input type="
submit" value="buscar" name="buscar">
</form>
</body>
</html>
[--]


El siguiente script de busqueda lo llamaremos buscar.php, y sera el
encargado de hacer la busqueda en la Base de Datos, y devolver por
pantalla los registros encontrados.


b.- Script de Busqueda
ññññññññññññññññññ


[++] php-mysql/buscar.php
<html>
<body>

<?php
if (!isset($buscar)){
echo "
Debe especificar una cadena a buscar";
echo "
</html></body> \n";
exit;
}

$conexion = mysql_connect("
localhost", "root");
mysql_select_db("
ejemplo", $conexion);
$result = mysql_query("
SELECT * FROM datos WHERE nombre LIKE '%$buscar%' ORDER BY nombre", $conexion);
if ($lista = mysql_fetch_array($result))
{
echo "
<table border = '1'> \n";
echo "
<tr> \n";
while ($field = mysql_fetch_field($result))
{
echo "
<td>$field->name</td> \n";
}
echo "
</tr> \n";
do
{
echo "
<tr> \n";
echo "
<td>".$lista["id"]."</td> \n";
echo "
<td>".$lista["nombre"]."</td> \n";
echo "
<td>".$lista["direccion"]."</td> \n";
echo "
<td>".$lista["telefono"]."</td> \n";
echo "
<td><a href='mailto:".$lista["email"]."'>".$lista["email"]."</a></td> \n";
echo "
</tr> \n";
}
while ($lista = mysql_fetch_array($result));
echo "
</table> \n";
} else
{
echo "
No se ha encontrado ningun registro";
}
?>

</body>
</html>
[--]


Lo primero que comprobamos es que el contenido de la variable $buscar que
recibimos del la pagina web formulario.html no es una cadena vacia,y esto
lo hacemos con la funcion isset() que devuelve 'falso' si la variable que
recibe esta vacia. A la funcion le anteponemos el signo admiracion (!) que
es equivalente a un NOT, para convertirlo en 'verdadero' en caso de que
la variable este vacia, y en es caso terminamos la ejecucion del script
con exit.

Lo mas importante de este script, es sin duda la sentencia SQL que le
enviamos al servidor MySQL, y mas concretamente la condicion que le
imponemos, WHERE nombre LIKE '%$buscar%'. Con la sentencia LIKE buscamos
cualquier ocurrencia de la cadena contenida en $buscar, mientras que con
los signos de porcentaje (%) indicamos el lugar de la coincidencia, por
ejemplo, si hubiesemos puesto nombre LIKE '%$buscar', buscariamos cualquier
ocurrencia al final del campo"
nombre", mientras que si hubiesemos puesto
nombre LIKE '$buscar%', buscariamos cualquier ocurrencia al principio del
campo "
nombre".


5.- Agregando datos a nuestra base de datos
ñññññññññññññññññññññññññññññññññññññññ

En esta leccion vamos ver como podemos añadir nuevos registros a nuesta
DB. La recogida de datos la vamos a hacer a traves de un interfaz de web.
En primer lugar vamos a crear una pagina web con un simple formulario,
con los campos que deseamos.


a.- Formulario agregar.php
ññññññññññññññññññññññ


[++] php-mysql/agregar.html
<html>
<body>

<form method="
post" action="agregar.php">
Nombre :<input type="
text" name="nombre"><br>
Direccion:<input type="
text" name="direccion"><br>
Telefono :<input type="
text" name="telefono"><br>
E-mail :<input type="
text" name="email"><br>
<input type="
Submit" name="enviar" value="Agregar Informacion">
</form>

</body>
</html>
[--]


Hemos creado un formulario donde recoger los datos, y una vez introducidos
ejecutamos un script llamado agregar.php, pues veamos como es este script.


[++] php-mysql/agregar.php
<html>
<body>

<?php
$conexion = mysql_connect("
localhost", "root");
mysql_select_db("
ejemplo",$db);

$sql = "
INSERT INTO datos (nombre, direccion, telefono, email) " +
"
VALUES ('$nombre', '$direccion', '$telefono', '$email')";
$result = mysql_query($sql);
echo "
Hemos recibidos sus datos\n";

</body>
</html>
[--]


Como se puede ver, para introducir un nuevo registro, utilizamos la ya
conocida funcion mysql_query(), la cual tambien usamos para las consultas,
y usaremos para las actualizaciones, es decir una señora funcion. °Aaah!,
una cosa muy importante, para poder añadir o modificar registros debemos
tener permiso para ello en el servidor MySQL, por eso en este caso me
conecto como root, pero podria ser cualquier otro usuario.


b.- Combinacion de formulario y script
ññññññññññññññññññññññññññññññññññ

[++] php-mysql/agregar2.php
<html>
<body>

<?php
if ($enviar) {

$conexion = mysql_connect("
localhost", "root");
mysql_select_db("
ejemplo",$db);
$sql = "
INSERT INTO datos (nombre, direccion, telefono, email) ".
"
VALUES ('$nombre', '$direccion', '$telefono', '$email')";
$result = mysql_query($sql);
echo "
Hemos recibido sus datos.\n";
}else{
?>

<form method="
post" action="agregar2.php">
Nombre :<input type="
text" name="nombre"><br>
Direccion:<input type="
text" name="direccion"><br>
Telefono :<input type="
text" name="telefono"><br>
E-mail :<input type="
text" name="email"><br>
<input type="
Submit" name="enviar" value="Agregar informacion">
</form>

<?php
}
?>

</body>
</html>
[--]


6.- Modificando Datos en Nuestra Base de Datos
ññññññññññññññññññññññññññññññññññññññññññ

Lo primero es modificar hay que tener permiso para ello en el servidor de
BD, el resto nos viene de corrido. Primero seleccionamos el registro que
deseamos modificar, y luego, mandamos una consulta con la modificaciones,
o ambas cosas a la vez. Suponemos que las modificaciones las recogemos de
un formulario como el de la leccion anterior .


a.- Modificar Registros A
ñññññññññññññññññññññ

[++] php-mysql/modificar.php
<html>
<body>

<?php
if (isset($id)){
$conexion = mysql_connect("
localhost", "root");
mysql_select_db("
ejemplo",$db);
$sql = "
SELECT * FROM datos WHERE id = $id"
$result = mysql_query($sql);
$sql = "
UPDATE datos SET nombre='$nombre', direccion='$direccion',".
"
telefono='$telefono', email='$email'";
$result = mysql_query($sql);
}else{
echo "
Debe especificar un 'id'.\n";
}

</body>
</html>

[--]

O bien,


b.- Modificar Registros B
ñññññññññññññññññññññ

[++] php-mysql/modificar2.php
<html>
<body>

<?php
if (isset($id)){
$conexion = mysql_connect("
localhost", "root");
mysql_select_db("
ejemplo",$db);
$sql = "
UPDATE datos SET nombre='$nombre', direccion='$direccion',".
"
telefono='$telefono', email='$email' WHERE id=$id";
$result = mysql_query($sql);
}else{
echo "
Debe especificar un 'id'.\n";
}

</body>
</html>

[--]


7.- Borrar registros de nuestra base de datos
ñññññññññññññññññññññññññññññññññññññññññ

El proceso de borrar un registro es identico al de modificar, solo
que
en vez de utilizar UPDATE utilizamos DELETE en la sentenica SQL. Por
tanto
el script quedaria como sigue.


a.- Borrado registros de BD
ñññññññññññññññññññññññ

[++] php-mysql/borrar.php
<html>
<body>

<?php
if (isset($id)){
$conexion = mysql_connect("
localhost", "root");
mysql_select_db("
ejemplo",$db);
mysql_query("
DELETE datos WHERE id=$id", $db);
}else{
echo "
Debe especificar un 'id'.\n";
}

</body>
</html>
[--]

9.- Conclusiones y Recomendaciones
ññññññññññññññññññññññññññññññ

Para concluir solo les digo que estos son unos pequeños scripts para
agregar/borrar/modificar/buscar en una Dase de Datos en MySQL; si quieres
profundizar mas sobre este temas pues solo visita los siguientes URL's:

http://es.php.net => Documentacion en Español sobre PHP.
http://www.mysql.com => Para mi el mejor Manejador de Base de
Datos al Estilo SQL.
http://php.cgi-resources.com => Recursos en PHP.
http://www.phpnuke.org => El Mejor Sistema de Portales Web hecho
en PHP y MySQL.
http://yerba.sourceforge.net => Proyecto Yerba, un Sistema de Portales
Web hecho con PHP/MySQL totalmente
Latinoamericano (Soporte totalmente en
Español).
http://www.postnuke.org => Sistema de Portal Web basado en PHP-Nuke,
este sistema optimiza muchas lineas de
codigo del PHP-Nuke.

Bueno, en el archivo 3x13.txt pueden encontar un pequeño sistemita que
estoy haciendo para llevar datos de personas, es muy simple pero alli
se puede apreciar mas a fondo como trabajar con PHP y MySQL, este
programita esta bajo licencia GPL y esta en periodo de desarrollo, las
proximas versiones las podran encontar en http://pleyades.sourceforge.net,
en la seccion de software; las proximas versiones estara incluido una
area de administracion, mejorar el buscador, soporte a multi-lenguaje,
etc, pues lo que se me ocurra meterle.

Ha, se me olvidaba decirles, este texto fue escrito primeramente para:

roots : Que Necesita hacerle el sitio Web a su Jefe.
ElNomis : Que lo tiene loco la programacion Web.
Jess : Que quiere aprender a programar en PHP/MySQL

Y a todas las personas que me pidieron via email que terminara el curso
de programacion en PHP en el articulo pasado.

Nos Vemos y ... Enjoy.


--Mr. kl0nk Manson


--EOF--

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT