SlideShare ist ein Scribd-Unternehmen logo
1 von 15
Downloaden Sie, um offline zu lesen


[ 
 h t t p : / / w w w . o p e n b o x e r . 2 6 0 m b . c o m / p h p . p h p ] 

Guía
rápida



Julio

09



[
Programación en PHP ]

Programación en PHP
Guía rápida
PHP, acrónimo de "PHP: Hypertext Preprocessor", es un
lenguaje "Open Source" interpretado de alto nivel,
especialmente pensado para desarrollos web y el cual puede ser embebido en páginas HTML. La
mayoría de su sintaxis es similar a C, Java y Perl y es fácil de aprender. La meta de este lenguaje
es permitir escribir a los creadores de páginas web, páginas dinámicas de una manera rápida y
fácil, aunque se puede hacer mucho más con PHP.
Un manual más completo y en diferentes formatos lo puedes conseguir en
http://www.php.net/docs.php u otros en los links de esta web.
¿Qué se puede hacer con PHP?
PHP puede hacer cualquier cosa que se pueda hacer con un script CGI, como procesar la
información de formularios, generar páginas con contenidos dinámicos, o mandar y recibir
cookies. Y esto no es todo, se puede hacer mucho más.
Existen tres campos en los que scripts escritos en PHP son usados.
• Scripts en la parte del servidor. Este es el campo más tradicional y el principal campo
de trabajo. Se necesitan tres cosas para que esto funcione. El parseador PHP (CGI ó
módulo), un servidor web y un navegador. Se necesita correr el servidor web con
PHP instalado. El resultado del programa PHP se puede obtener a través del
navegador, conectando con el servidor web.
• Scripts en línea de comandos. Podemos crear un script PHP y correrlo sin ningún
servidor web ó navegador. Solamente necesitas el parseador PHP para usarlo de
esta manera. Este tipo de uso es ideal para scripts ejecutados regularmente desde
cron (en unix ó Linux) ó el planificador de tareas (en Windows). Estos scripts
también pueden ser usados para tareas simples de procesado de texto.
• Escribir aplicaciones gráficas clientes. PHP no es probablemente el mejor lenguaje
para escribir aplicaciones gráficas, pero si sabes bien PHP, y te gustaría utilizar
algunas características avanzadas en programas clientes, puedes utilizar PHP-GTK
para escribir dichos programas. Es también posible escribir aplicaciones
independientes de una plataforma. PHP-GTK es una extensión de PHP, no
disponible en la distribución principal. Si te interesa PHP-GTK, puedes visitar las
páginas web del proyecto http://gtk.php.net/.
PHP puede ser utilizado en cualquiera de los principales sistemas operativos del mercado,
incluyendo Linux, muchas variantes Unix (incluido HP-UX, Solaris y OpenBSD), Microsoft
Windows, Mac OS X, RISC OS y probablemente alguno más. PHP soporta la mayoría de
servidores web de hoy en día, incluyendo Apache, Microsoft Internet Information Server (IIS),
Personal Web Server, Oreilly Website Pro server, Caudium, Xitami, OmniHTTPd y muchos otros.
Con PHP no estás limitados a resultados en HTML. Entre las habilidades de PHP se incluyen,
creación de imágenes, ficheros PDF y películas Flash (usando libswf y Ming) sobre la marcha.
También puedes presentar otros resultados, como XHTM y ficheros XML. PHP puede
autogenerar estos ficheros y grabarlos en el sistema de ficheros en vez de presentarlos en la
pantalla. Quizás la característica más potente y destacable de PHP es su soporte para una gran
cantidad de bases de datos. Escribir un interfaz vía web para una base de datos es una tarea
un tanto simple con PHP.
Requerimientos
Lo primero que debemos hacer es conseguirnos los programas necesarios, y que mejor para
ello que dirigirnos a las páginas web de los programas en cuestión, estos programas serán
necesarios si queremos ejecutar nuestros scripts en el servidor.
• APACHE: http://www.apache.org
• PHP: http://www.php.net
• MySQL: http://www.mysql.com
Para poder instalar cada uno de estos programas anexo las guías de instalación de Apache y
PHP.
Existe una forma más fácil, rápida y cómoda de instalar estos tres programas, y para ello
podemos hacer uso de XAMPP.
XAMPP, un servidor web completo.
Una forma fácil de instalar un servidor web en Windows con
Apache, PHP y MySQL es XAMPP. Este servidor permite hacer
pruebas con PHP sin necesidad de contratar un hosting. Con
XAMPP se puede instalar Apache, PHP5 y MySQL de forma fácil y
muy rápida. Sólo debes dirigirte a la sección de descargas de
XAMPP y elegir la opción XAMPP Windows x.x.x "installer" para
comenzar a bajarla. http://www.apachefriends.org
Los pasos de instalación son muy sencillos, solo recuerda que cada vez que quieras hacer uso
del servidor de Apache tendrás que inicializarlo manualmente.
Ahora sólo tienes que guardar tus archivos del sitio dentro de la carpeta c:...xampphtdocs
para que puedan ser vistos desde http://localhost/ en tus navegadores. Por ejemplo si yo
tengo el archivo c:xampphtdocsindex.php, lo voy a poder visualizar desde Internet Explorer
o Firefox sin problemas escribiendo http://localhost/index.php.
PHP y MySQL
Un primer Script
Una vez que ya tenemos instalados PHP y MySQL, y el servidor Apache configurado para
usarlos, podemos comenzar a escribir nuestro primer Script en PHP.
Ejemplo script php:
<html>
<body>
<?php
$var = "Hola Mundo. Este es mi primer script en PHP";
//Esto es un comentario
echo $var;
?>
</body>
</html>
Una vez escrito esto lo guardamos en un fichero con la extensión .php, y lo colocamos en
nuestro servidor, http://localhost/holaMundo.php. Ahora si ponemos esta URL en nuestro
navegador veremos una línea con el texto "Hola Mundo. Este es mi primer script en
PHP".
Lo primero que vemos en el script son sus delimitadores. En la primera línea del script vemos
<?php que nos indica que comienza un script en PHP, y en la última colocamos ?> para indicar
el final del script. Hay que destacar que todas las líneas que se encuentre entre estos
delimitadores deben acabar en punto y coma, excepto las sentencias de control (if, swich,
while, etc.).
Como en toda programación, es importante poner comentarios, para lo cual si queremos
comentar una sola línea tenemos que poner al principio de la línea //, si lo que queremos es
comentar varias utilizaremos los delimitadores /* y */.
Para que el servidor envié texto utilizaremos la instrucción echo, aunque también podemos
utilizar printf de uso similar al del C ó Perl.
Finalmente, vemos que la palabra var comienza con el signo dólar $. Este símbolo le indica a
PHP que es una variable. Nosotros le hemos asignado un texto a esta variable, pero también
pueden contener números o arrays, PHP definirá automáticamente el tipo de variable según el
valor que se le asigne. Es importante recordar que todas las variables comienzan con el signo
de dólar.
Una pequeña BD con MySQL
Antes de seguir con PHP, vamos a preparar la base de datos (BD) que vamos a utilizar como
ejemplo. Como servidor de BD, usaremos MySQL un pequeño y compacto servidor de BD, ideal
para pequeñas y medianas aplicaciones. MySQL soporta el estándar SQL (ANSI), y además está
disponible para distintas plataformas.
Una vez instalado MySQL, vamos a crear nuestra BD ejemplo. MySQL utiliza una tabla de
permisos de usuarios, por defecto, en la instalación 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 recomendación de seguridad, el usuario nobody sólo
con el permiso de ver (SELECT), que es el que utilizaremos para conectarnos al servidor de BD
en nuestros script.
Para crear nuestra BD, debemos ser el administrador de MySQL o el root, para ello haremos lo
siguiente:
Crear BD "mybd"
CREATE DATABASE `mybd`;
Ya hemos creado una BD, ahora le añadiremos una tabla, para lo cual copia el siguiente texto
en el cuadro de consulta SQL.
Crear tabla "agenda"
CREATE TABLE agenda (id INT NOT NULL AUTO_INCREMENT, nombre CHAR(50),
direccion CHAR(50), telefono CHAR(15), email CHAR(30), KEY (id) )
Añadiremos algunos registros:
INSERT INTO agenda VALUES (0, 'Jose Gomez', 'C/ San Federico , 16. Coyoacan',
'55.45.13.05', 'joseG@boxer.com' )
INSERT INTO agenda VALUES (1, 'Mauricio Garces', 'C/ Opera, 25. Tlalpan',
'55.23.76.83', 'mauG@boxer.com' )
INSERT INTO agenda VALUES (2, 'Roger Traus', 'C/ Italia, 6. Miguel Hidalgo',
'55.43.76.83', 'rogerT@boxer.com' )
Cabe destacar el campo id, no puede estar vacio, y además es autoincrementable, lo cual
deberemos tener en cuenta a la hora de actualizar y añadir registros. Si no hemos cometido
ningún error, ya tenemos nuestra base de datos de ejemplo en el servidor MySQL.
Conectar a MySQL con PHP
Ya tenemos datos en nuestra BD, así que con el siguiente script nos conectaremos a la BD del
servidor MySQL para obtener los datos de un registro.
Conexión a MySQL
<html>
<body>
<?php
$link = mysql_connect("localhost", "root", "root");
mysql_select_db("mybd", $link);
$result = mysql_query("SELECT * FROM agenda", $link);
echo "Nombre: ".mysql_result($result, 0, "nombre")."<br>";
echo "Dirección: ".mysql_result($result, 0, "direccion")."<br>";
echo "Teléfono :".mysql_result($result, 0, "telefono")."<br>";
echo "E-Mail :".mysql_result($result, 0, "email")."<br<";
?>
</body>
</html>
En la primera línea del script nos encontramos con la función mysql_connect(), que abre
una conexión con el servidor MySQL en el Host especificado (en este caso la misma máquina
en la que está alojada el servidor MySQL, localhost). También debemos especificar un usuario
(nobody, root, etc. ), y si fuera necesario un password para el usuario indicado
(mysql_connect("localhost", "root", "clave_del_root")). El resultado de la
conexión es almacenado en la variable $link.
Con mysql_select_db() PHP le dice al servidor que en la conexión $link nos queremos
conectar a la base de datos mybd. Podríamos establecer distintas conexiones a la BD en
diferentes servidores, pero nos conformaremos con una.
La siguiente función mysql_query(), es la que hace el trabajo duro, usando el identificador
de la conexión ($link), envía una instrucción SQL al servidor MySQL para que éste la procese.
El resultado de ésta operación es almacenado en la variable $result.
Finalmente, mysql_result() es usado para mostrar los valores de los campos devueltos por
la consulta ($result). En este ejemplo mostramos los valores del registro 0, que es el primer
registro, y mostramos el valor de los campos especificados.
Mostrar los datos de una consulta
Ahora que ya sabemos conectar con el servidor de BD, veremos como mostrar los datos por
pantalla.
Consulta de la BD
<html>
<body>
<?php
$link = mysql_connect("localhost", "root", "root");
mysql_select_db("mybd", $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 más obvia es la sentencia de control
while(), que tiene un funcionamiento similar al de otros lenguajes, ejecuta una sentencia
mientras la condición sea verdadera. En esta ocasión while() evalúa la función
mysql_fetch_row(), que devuelve un array con el contenido del registro actual (que se
almacena en $row) y avanza una posición en la lista de registros devueltos en la consulta SQL.
La función mysql_fetch_row() tiene un pequeño problema, es que el array que devuelve
sólo admite referencias numéricas 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 pequeño inconveniente.
Consulta modificada de BD
<html>
<body>
<?php
$link = mysql_connect("localhost", "root", "root");
mysql_select_db("mybd", $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 ningún registro !";
}
?>
</body>
</html>
Esencialmente, este script hace lo mismo que el anterior. Almacenamos en $row el registro
actual con la función mysql_fetch_array() que hace exactamente lo mismo que
mysql_fetch_row(), con la exepción que podemos referenciar a los campos por su nombre
($row["email"]), en vez de por un número.
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. Mientras que con la sentencia do/while, nos
aseguramos que se muestren todos los registros devueltos por la consulta en caso de haber
más de uno.
Hay que destacar la utilización del punto (.), como operador para concatenar cadenas.
Un buscador para nuestra base de datos
Vamos a ver una aplicación, 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 página web que nos servirá como formulario
de entrada, la llamaremos formulario.html.
Formulario de entrada de datos
<html>
<body>
<?php
$buscar=$_POST["buscar"];
$nombr=$_POST["nombr"];
if (!isset($buscar))
{
echo "Debe especificar una cadena a buscar <br />";
echo "<a href=buscador.php>Regresar al formulario</a>";
}
elseif(!$nombr)
{
echo "Debe especificar un nombre a buscar<br />";
echo "<a href=buscador.php>Regresar al formulario</a>";
}
else
{
$link = mysql_connect("localhost", "root", "root");
mysql_select_db("mybd", $link);
$result = mysql_query("SELECT * FROM agenda WHERE nombre LIKE '%$nombr%'
ORDER BY nombre", $link);
if ($row = mysql_fetch_array($result))
{
echo "<table border='1'> n";
do
{
echo "<tr> n";
echo "<td>".$row["id"]."</td> n";
echo "<td>".$row["nombre"]."</td> n";
echo "<td>".$row["direccion"]."</td> n";
echo "<td>".$row["telefono"]."</td> n";
echo "<td><a href='mailto:".$row["email"]."'>".$row["email"].
"</a></td> n";
echo "</tr> n";
} while ($row = mysql_fetch_array($result));
echo "</table> n";
}
else
{
echo "No se ha encontrado ningún registro !<br />";
echo "<a href=buscador.php>Regresar al formulario</a>";
}
}
?>
</body>
</html>
A través de $buscar=$_POST["buscar"]; y $nombr=$_POST["nombr"]; recuperamos los
valores contenidos en los campos y que son enviados por el metodo POST en
formulario.html. Obseva que en $_POST["..."] colocamos como parametro
el nombre del parametro de la consulta que queremos recuperar.
Lo primero que comprobamos es que el contenido de la variable $buscar que recibimos del la
página web formulario.html no es una cadena vacia, y esto lo hacemos con la función
isset() que devuelve 'falso' si la variable que recibe está vacia. A la función le anteponemos
el signo admiración (!) que es equivalente a un NOT, para convertirlo en 'verdadero' en caso de
que la variable esté vacia, y en es caso terminamos la ejecución del script. En esta parte
podríamos haber verificado de esta manera if(!$buscar) que es equivalente al ejemplo
anterior. Tambien verificamos que el contenido de la variable $nombr no este vacía.
Lo más importante de este script, es sin duda la sentencia SQL que le enviamos al servidor
MySQL, y más concretamente la condición que le imponemos, WHERE nombre LIKE
'%$buscar%'. Con la sentencia LIKE buscamos cualquier ocurrencia de la cadena contenida
en $nombr, 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%', buscaríamos cualquier ocurrencia al principio del campo "nombre".
Añadir registros a nuestra base de datos
En esta parte vamos a ver como podemos añadir nuevos registros a nuesta BD. La recolección
de datos la vamos a hacer a través de un interfaz de web. En primer lugar vamos a crear una
página con un simple formulario, con los campos que deseamos.
Formulario para recolectar datos
<html>
<body>
<form method="post" action="add_reg.php">
Nombre :<input type="Text" name="nombre"><br>
Dirección:<input type="Text" name="direccion"><br>
Teléfono :<input type="Text" name="telefono"><br>
E-mail :<input type="Text" name="email"><br>
<input type="Submit" name="enviar" value="Aceptar informaci#243n">
</form>
</body>
</html>
Hemos creado un formulario donde recoger los datos, y una vez introducidos ejecutamos un
script llamado add_reg.php, veamos como es este script.
Añadir registros
<html>
<body>
<?php
$nombre=$_POST["nombre"];
$direccion=$_POST["direccion"];
$telefono=$_POST["telefono"];
$email=$_POST["email"];
$link = mysql_connect("localhost", "root", "root");
mysql_select_db("mybd",$link);
$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 función
mysql_query(), la cúal tambiún usamos para las consultas, y usaremos para las
actualizaciones. 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 podría ser cualquier otro usuario.
Para reforzar este parte, vamos a combinar la página web de formulario y el fichero de script
php, en un sólo fichero que llamaremos add_regFull.php
Combinación de formulario y script
<html>
<body>
<?php
$enviar=$_POST["enviar"];
$nombre=$_POST["nombre"];
$direccion=$_POST["direccion"];
$telefono=$_POST["telefono"];
$email=$_POST["email"];
if ($enviar)
{
$link = mysql_connect("localhost", "root", "root");
mysql_select_db("mybd",$link);
$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_regFull.php">
Nombre :<input type="Text" name="nombre"><br>
Dirección:<input type="Text" name="direccion"><br>
Teléfono :<input type="Text" name="telefono"><br>
E-mail :<input type="Text" name="email"><br>
<input type="Submit" name="enviar" value="Aceptar información">
</form>
<?php
} //end else
?>
</body>
</html>
Modificar registros de nuestra BD
Para realizar modificaciones mecesitamos tener permisos en el servidor de BD, par lo cual nos
conectaremos como usuario "root" o desde cualquier otro usuario siempre y cuando tenga
ciertos privilegios.
Primero obtenemos el ID del registro a modificar y los datos de los campos a través de un
formulario que ya realizamos en la otra sección, luego mandamos una consulta con las
modificaciones realizadas. Llamaremos a este archivo modifyReg.php
Modificar registros
<html>
<body>
<?php
$enviar=$_POST["enviar"];
$id=$_POST["id"];
$nombre=$_POST["nombre"];
$direccion=$_POST["direccion"];
$telefono=$_POST["telefono"];
$email=$_POST["email"];
if($id && $enviar)
{
$link = mysql_connect("localhost", "root", "root");
mysql_select_db("mybd",$link);
$sql = "UPDATE agenda SET nombre='$nombre', direccion='$direccion',".
"telefono='$telefono', email='$email' WHERE id=$id";
$result = mysql_query($sql);
echo "Gracias! Hemos recibido sus datos.";
echo "<a href=modifyReg.php>Regresar al Formulario</a>";
}
else
{
?>
<h1>Modificar un Registro</h1>
<p>Por favor especifíque un ID e introduzca datos</p>
<form method="post" action="modifyReg.php">
ID : <input type="Text" name="id"> Obligatorio<br />
Nombre : <input type="Text" name="nombre"><br />
Dirección: <input type="Text" name="direccion"><br />
Teléfono : <input type="Text" name="telefono"><br />
E-mail : <input type="Text" name="email"><br />
<input type="Submit" name="enviar" value="Aceptar información">
</form>
<?php
} //end else
?>
</body>
</html>
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. Este archivo lo llamaremos deleteReg.php. Por tanto
el script quedaría como sigue.
Borrado de un registro de la BD
<html>
<body>
<?php
$enviar=$_POST["enviar"];
$id=$_POST["id"];
if ($id && $enviar)
{
$link = mysql_connect("localhost", "root", "root");
mysql_select_db("mybd",$link);
$sql = "DELETE FROM agenda WHERE id=$id";
$result = mysql_query($sql);
echo "El registro ha sido eliminado";
echo "<a href=deleteReg.php>Regresar al Formulario</a>";
}
else
{
?>
<h1>Eliminar un Registro</h1>
<p>Por favor especifíque un ID </p>
<form method="post" action="deleteReg.php">
ID : <input type="Text" name="id"> Obligatorio<br />
<input type="Submit" name="enviar" value="Aceptar información">
</form>
<?PHP
}
?>
</body>
</html>
Un Resumen de todo lo visto
Como resumen de todo lo visto hasta ahora, vamos a hacer un script donde hagamos una
combinación de todo lo visto hasta ahora.
formularioFull.php
<html>
<body>
<h1>Control de registros</h1>
<?php
//Parametros enviados por URL
$delete=$_GET["delete"];
$id=$_GET["id"];
$add=$_GET["add"];
$modify=$_GET["modify"];
//Parametros enviados en el cuerpo de la consulta
$ID=$_POST["ID"];
$enviar=$_POST["enviar"];
$nombre=$_POST["nombre"];
$direccion=$_POST["direccion"];
$telefono=$_POST["telefono"];
$email=$_POST["email"];
//Conexión con MySQL
$link = mysql_connect("localhost", "root", "root");
mysql_select_db("mybd",$link);
//Comprobamos si hemos recibido datos del formulario (enviar)
if ($enviar)
{
// Si recibimos un ID, modificamos, sino añadimos un registro
if ($ID)
{
$sql="UPDATE agenda SET nombre='$nombre',direccion='$direccion',".
"telefono='$telefono',email='$email' WHERE id=$ID";
echo "Registro Actualizado<br />";
echo "<a href=formularioFull.php>Página de Inicio</a><br />";
}
else
{
$sql = "INSERT INTO agenda (nombre, direccion, telefono, email)
VALUES ('$nombre', '$direccion', '$telefono', '$email')";
echo "Registro Añadido<br />";
echo "<a href=formularioFull.php>Página de Inicio<br />";
}
//Enviamos la sentencia SQL al servidor de BD
$result = mysql_query($sql);
}
// Borramos un registro
elseif ($delete)
{
$sql = "DELETE FROM agenda WHERE id=$id";
$result = mysql_query($sql);
echo "Registro Borrado<br />";
echo "<a href=formularioFull.php>Página de Inicio</a>";
}
else
{
// Esta parte se ejecuta si no hemos presionado el boton enviar,
// es decir no venimos de un formulario
if (!$id && !$add) //$id y $add Nulos?
{
// Mostramos todos los registros actuales de nuestra BD
$result = mysql_query("SELECT * FROM agenda",$link);
echo "<h2>Registros actuales</h2>";
echo "<table>";
echo "<tr><th>Nombre</th><th>Direccion</th>
<th>Telefono</th><th>E-mail</th></tr>";
while ($myrow = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>".$myrow["nombre"]."</td>";
echo "<td>".$myrow["direccion"]."</td>";
echo "<td>".$myrow["telefono"]."</td>";
echo "<td>".$myrow["email"]."</td>";
//Enviamos Valores por URL
echo "<tr><td><a href=$_SERVER[PHP_SELF]?id=".$myrow["id"].
"&delete=yes> Borrar </a></td>";
echo "<td><a href=$_SERVER[PHP_SELF]?id=".$myrow["id"].
"&modify=yes> Modificar </a></td></tr>";
echo "</tr>";
}
echo "<tr><td colspan=2><a href='$_SERVER[PHP_SELF]?add=yes'>
Añadir un registro Nuevo</a></td></tr>";
echo "</table>";
}
?>
<!--Formulario-->
<form method="post" action="<?php echo $_SERVER[$PHP_SELF]?>">
<?php
//Esta parte se ejecuta sólo cuando modificamos
//o añadios un registro
if($add || $modify)
{
if($id)
{
// Editamos el registro seleccionado
$sql = "SELECT * FROM agenda WHERE id=$id";
$result = mysql_query($sql);
$myrow = mysql_fetch_array($result);
$ID=$myrow["id"];
$nombre = $myrow["nombre"];
$direccion = $myrow["direccion"];
$telefono = $myrow["telefono"];
$email = $myrow["email"];
//Enviamos el ID para poder editar el registro
echo "<input type=hidden name=ID value=$ID<";
echo "<h2>Edición de registro.</h2>";
}
else
echo "<h2>Nuevo registro.</h2>";
?>
<table>
<tr><td width="23%">Nombre: </td><td><input type="Text" size=50
name="nombre" value="<?php echo $nombre ?>"></td></tr>
<tr><td>Dirección: </td><td><input type="Text" size=50
name="direccion" value="<?php echo $direccion ?>"></td></tr>
<tr><td>Teléfono: </td><td><input type="Text" name="telefono"
value="<?php echo $telefono ?>"></td></tr>
<tr><td>E-mail: </td><td><input type="Text" size=50 name="email"
value="<?php echo $email ?>"></td></tr>
<tr><td colspan="2" align="center"><input type="Submit"
name="enviar" value="Enviar Información"></td></tr>
</table>
</form>
<?php
}//End if ($add || $modify)
}// End else ($enviar)
?>
</body>
</html>
Cabe destacar el uso de $PHP_SELF, esta es una función interna de PHP que nos devuelve la
dirección del script en el que se ejecuta. Por razones de seguridad recomiendo usarlo de esta
manera $_SERVER[$PHP_SELF].
Espero que este pequeño tutorial te haya ayudado un poco sobre el manejo de PHP y MySQL,
cabe aclarar que es necesario implementar código más seguro en cuanto al manejo de
nuestras consultas y sobre todo validar que los datos de los formularios sean correctos,
tambien es necesario capturar excepciones en PHP y manejar de una manera más fluida el uso
de HTML y CSS para reforzar nuestras páginas web dinámicas. Dejo a tu disposicion unos
tutoriales en http://www.openboxer.260mb.com/php.html para reforzar mas el manejo
de PHP, aunque sabiendo programar en C ó Java podras manejar mas fácilmente este lenguaje
de programación.



Weitere ähnliche Inhalte

Was ist angesagt?

Curso Avanzado PHP para EHU/UPV
Curso Avanzado PHP para EHU/UPVCurso Avanzado PHP para EHU/UPV
Curso Avanzado PHP para EHU/UPV
Irontec
 
Tutorial de php y my sql completo
Tutorial de php y my sql completoTutorial de php y my sql completo
Tutorial de php y my sql completo
Andrés Amaya
 
Curso TIC de PHP y MSQL
Curso TIC de PHP y MSQLCurso TIC de PHP y MSQL
Curso TIC de PHP y MSQL
Wilian
 
Presentación de zan php
Presentación de zan phpPresentación de zan php
Presentación de zan php
Carlos Zantana
 

Was ist angesagt? (16)

Introducción a PHP
Introducción a PHPIntroducción a PHP
Introducción a PHP
 
Apache
ApacheApache
Apache
 
Curso Avanzado PHP para EHU/UPV
Curso Avanzado PHP para EHU/UPVCurso Avanzado PHP para EHU/UPV
Curso Avanzado PHP para EHU/UPV
 
Php
PhpPhp
Php
 
Manual de php
Manual de phpManual de php
Manual de php
 
PHP
PHPPHP
PHP
 
Curso php - capitulo 1 (introducción)
Curso php - capitulo 1 (introducción)Curso php - capitulo 1 (introducción)
Curso php - capitulo 1 (introducción)
 
MAnual de php básico
MAnual de php básicoMAnual de php básico
MAnual de php básico
 
Desarrollo de aplicaciones web con PHP y symfony
Desarrollo de aplicaciones web con PHP y symfonyDesarrollo de aplicaciones web con PHP y symfony
Desarrollo de aplicaciones web con PHP y symfony
 
QUE ES PHP
QUE ES PHPQUE ES PHP
QUE ES PHP
 
Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2
 
Manual Completo Php 5
Manual Completo Php 5Manual Completo Php 5
Manual Completo Php 5
 
Tutorial de php y my sql completo
Tutorial de php y my sql completoTutorial de php y my sql completo
Tutorial de php y my sql completo
 
Curso TIC de PHP y MSQL
Curso TIC de PHP y MSQLCurso TIC de PHP y MSQL
Curso TIC de PHP y MSQL
 
Presentación de zan php
Presentación de zan phpPresentación de zan php
Presentación de zan php
 
Manual De Php
Manual De PhpManual De Php
Manual De Php
 

Andere mochten auch (20)

CPPM Certificate
CPPM CertificateCPPM Certificate
CPPM Certificate
 
Tensiones pedagog diana navia
Tensiones pedagog diana naviaTensiones pedagog diana navia
Tensiones pedagog diana navia
 
Presentación1
Presentación1Presentación1
Presentación1
 
Musica
MusicaMusica
Musica
 
Grande artista
Grande artistaGrande artista
Grande artista
 
Docente
DocenteDocente
Docente
 
Test1
Test1Test1
Test1
 
Memorial for dad
Memorial for dadMemorial for dad
Memorial for dad
 
Coding unplugged "Mosse Spaziali"
Coding unplugged "Mosse Spaziali"Coding unplugged "Mosse Spaziali"
Coding unplugged "Mosse Spaziali"
 
Musica als parc
Musica als parcMusica als parc
Musica als parc
 
Lourdes chocon 4to 6
Lourdes chocon 4to 6Lourdes chocon 4to 6
Lourdes chocon 4to 6
 
Bouzouki solo
Bouzouki soloBouzouki solo
Bouzouki solo
 
CulinART Offer
CulinART OfferCulinART Offer
CulinART Offer
 
La economia metodo por oriana gimenez
La economia metodo por oriana gimenezLa economia metodo por oriana gimenez
La economia metodo por oriana gimenez
 
Doc 25 de jul de 2015 10:48
Doc 25 de jul de 2015 10:48Doc 25 de jul de 2015 10:48
Doc 25 de jul de 2015 10:48
 
Bujari 2
Bujari 2Bujari 2
Bujari 2
 
Evaluacion regionalización
Evaluacion regionalizaciónEvaluacion regionalización
Evaluacion regionalización
 
Publicación1
Publicación1Publicación1
Publicación1
 
Pæmövg wmw u 1
Pæmövg  wmw u 1Pæmövg  wmw u 1
Pæmövg wmw u 1
 
Cre Email Flier Template
Cre Email Flier TemplateCre Email Flier Template
Cre Email Flier Template
 

Ähnlich wie Programacion - Php

Trabajo especial (php)
Trabajo especial (php)Trabajo especial (php)
Trabajo especial (php)
Margie Dearce
 
Trabajo especial copy
Trabajo especial   copyTrabajo especial   copy
Trabajo especial copy
Margie Dearce
 
Manual de php
Manual de phpManual de php
Manual de php
Esther
 
Manual de php
Manual de phpManual de php
Manual de php
Esther
 
Manual de php
Manual de phpManual de php
Manual de php
unad
 

Ähnlich wie Programacion - Php (20)

Phpmyadmin
PhpmyadminPhpmyadmin
Phpmyadmin
 
Manual de php
Manual de phpManual de php
Manual de php
 
Trabajo especial (php)
Trabajo especial (php)Trabajo especial (php)
Trabajo especial (php)
 
Trabajo especial copy
Trabajo especial   copyTrabajo especial   copy
Trabajo especial copy
 
Qué es php
Qué es phpQué es php
Qué es php
 
Php y MySqul
Php y MySqul  Php y MySqul
Php y MySqul
 
Diseño e instalación de sitios web (PHP hypertext preprocessor)
Diseño e instalación de sitios web (PHP hypertext preprocessor)Diseño e instalación de sitios web (PHP hypertext preprocessor)
Diseño e instalación de sitios web (PHP hypertext preprocessor)
 
Practica09
Practica09Practica09
Practica09
 
Programación web con PHP con Tecnología Bootstrap.
Programación web con PHP con Tecnología Bootstrap.Programación web con PHP con Tecnología Bootstrap.
Programación web con PHP con Tecnología Bootstrap.
 
Servidor PHP
Servidor PHPServidor PHP
Servidor PHP
 
Servidor PHP
Servidor PHPServidor PHP
Servidor PHP
 
Manual de php
Manual de phpManual de php
Manual de php
 
Manual de php
Manual de phpManual de php
Manual de php
 
Manual de php
Manual de phpManual de php
Manual de php
 
Manual de php
Manual de phpManual de php
Manual de php
 
2407057 manual-de-php
2407057 manual-de-php2407057 manual-de-php
2407057 manual-de-php
 
Manual de php
Manual de phpManual de php
Manual de php
 
Manual de php
Manual de phpManual de php
Manual de php
 
M1 introduccion a php
M1   introduccion a phpM1   introduccion a php
M1 introduccion a php
 
Mi pesentacion pdf
Mi pesentacion pdfMi pesentacion pdf
Mi pesentacion pdf
 

Kürzlich hochgeladen

Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Francisco158360
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
patriciaines1993
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
El Fortí
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 

Kürzlich hochgeladen (20)

Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdf
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VSSEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
 

Programacion - Php

  • 1. 
 [ 
 h t t p : / / w w w . o p e n b o x e r . 2 6 0 m b . c o m / p h p . p h p ] 
 Guía
rápida
 
 Julio
 09
 
 [
Programación en PHP ]

  • 2. Programación en PHP Guía rápida PHP, acrónimo de "PHP: Hypertext Preprocessor", es un lenguaje "Open Source" interpretado de alto nivel, especialmente pensado para desarrollos web y el cual puede ser embebido en páginas HTML. La mayoría de su sintaxis es similar a C, Java y Perl y es fácil de aprender. La meta de este lenguaje es permitir escribir a los creadores de páginas web, páginas dinámicas de una manera rápida y fácil, aunque se puede hacer mucho más con PHP. Un manual más completo y en diferentes formatos lo puedes conseguir en http://www.php.net/docs.php u otros en los links de esta web. ¿Qué se puede hacer con PHP? PHP puede hacer cualquier cosa que se pueda hacer con un script CGI, como procesar la información de formularios, generar páginas con contenidos dinámicos, o mandar y recibir cookies. Y esto no es todo, se puede hacer mucho más. Existen tres campos en los que scripts escritos en PHP son usados. • Scripts en la parte del servidor. Este es el campo más tradicional y el principal campo de trabajo. Se necesitan tres cosas para que esto funcione. El parseador PHP (CGI ó módulo), un servidor web y un navegador. Se necesita correr el servidor web con PHP instalado. El resultado del programa PHP se puede obtener a través del navegador, conectando con el servidor web. • Scripts en línea de comandos. Podemos crear un script PHP y correrlo sin ningún servidor web ó navegador. Solamente necesitas el parseador PHP para usarlo de esta manera. Este tipo de uso es ideal para scripts ejecutados regularmente desde cron (en unix ó Linux) ó el planificador de tareas (en Windows). Estos scripts también pueden ser usados para tareas simples de procesado de texto. • Escribir aplicaciones gráficas clientes. PHP no es probablemente el mejor lenguaje para escribir aplicaciones gráficas, pero si sabes bien PHP, y te gustaría utilizar algunas características avanzadas en programas clientes, puedes utilizar PHP-GTK para escribir dichos programas. Es también posible escribir aplicaciones independientes de una plataforma. PHP-GTK es una extensión de PHP, no disponible en la distribución principal. Si te interesa PHP-GTK, puedes visitar las páginas web del proyecto http://gtk.php.net/. PHP puede ser utilizado en cualquiera de los principales sistemas operativos del mercado, incluyendo Linux, muchas variantes Unix (incluido HP-UX, Solaris y OpenBSD), Microsoft Windows, Mac OS X, RISC OS y probablemente alguno más. PHP soporta la mayoría de servidores web de hoy en día, incluyendo Apache, Microsoft Internet Information Server (IIS), Personal Web Server, Oreilly Website Pro server, Caudium, Xitami, OmniHTTPd y muchos otros.
  • 3. Con PHP no estás limitados a resultados en HTML. Entre las habilidades de PHP se incluyen, creación de imágenes, ficheros PDF y películas Flash (usando libswf y Ming) sobre la marcha. También puedes presentar otros resultados, como XHTM y ficheros XML. PHP puede autogenerar estos ficheros y grabarlos en el sistema de ficheros en vez de presentarlos en la pantalla. Quizás la característica más potente y destacable de PHP es su soporte para una gran cantidad de bases de datos. Escribir un interfaz vía web para una base de datos es una tarea un tanto simple con PHP. Requerimientos Lo primero que debemos hacer es conseguirnos los programas necesarios, y que mejor para ello que dirigirnos a las páginas web de los programas en cuestión, estos programas serán necesarios si queremos ejecutar nuestros scripts en el servidor. • APACHE: http://www.apache.org • PHP: http://www.php.net • MySQL: http://www.mysql.com Para poder instalar cada uno de estos programas anexo las guías de instalación de Apache y PHP. Existe una forma más fácil, rápida y cómoda de instalar estos tres programas, y para ello podemos hacer uso de XAMPP. XAMPP, un servidor web completo. Una forma fácil de instalar un servidor web en Windows con Apache, PHP y MySQL es XAMPP. Este servidor permite hacer pruebas con PHP sin necesidad de contratar un hosting. Con XAMPP se puede instalar Apache, PHP5 y MySQL de forma fácil y muy rápida. Sólo debes dirigirte a la sección de descargas de XAMPP y elegir la opción XAMPP Windows x.x.x "installer" para comenzar a bajarla. http://www.apachefriends.org Los pasos de instalación son muy sencillos, solo recuerda que cada vez que quieras hacer uso del servidor de Apache tendrás que inicializarlo manualmente. Ahora sólo tienes que guardar tus archivos del sitio dentro de la carpeta c:...xampphtdocs para que puedan ser vistos desde http://localhost/ en tus navegadores. Por ejemplo si yo tengo el archivo c:xampphtdocsindex.php, lo voy a poder visualizar desde Internet Explorer o Firefox sin problemas escribiendo http://localhost/index.php. PHP y MySQL Un primer Script Una vez que ya tenemos instalados PHP y MySQL, y el servidor Apache configurado para usarlos, podemos comenzar a escribir nuestro primer Script en PHP.
  • 4. Ejemplo script php: <html> <body> <?php $var = "Hola Mundo. Este es mi primer script en PHP"; //Esto es un comentario echo $var; ?> </body> </html> Una vez escrito esto lo guardamos en un fichero con la extensión .php, y lo colocamos en nuestro servidor, http://localhost/holaMundo.php. Ahora si ponemos esta URL en nuestro navegador veremos una línea con el texto "Hola Mundo. Este es mi primer script en PHP". Lo primero que vemos en el script son sus delimitadores. En la primera línea del script vemos <?php que nos indica que comienza un script en PHP, y en la última colocamos ?> para indicar el final del script. Hay que destacar que todas las líneas que se encuentre entre estos delimitadores deben acabar en punto y coma, excepto las sentencias de control (if, swich, while, etc.). Como en toda programación, es importante poner comentarios, para lo cual si queremos comentar una sola línea tenemos que poner al principio de la línea //, si lo que queremos es comentar varias utilizaremos los delimitadores /* y */. Para que el servidor envié texto utilizaremos la instrucción echo, aunque también podemos utilizar printf de uso similar al del C ó Perl. Finalmente, vemos que la palabra var comienza con el signo dólar $. Este símbolo le indica a PHP que es una variable. Nosotros le hemos asignado un texto a esta variable, pero también pueden contener números o arrays, PHP definirá automáticamente el tipo de variable según el valor que se le asigne. Es importante recordar que todas las variables comienzan con el signo de dólar. Una pequeña BD con MySQL Antes de seguir con PHP, vamos a preparar la base de datos (BD) que vamos a utilizar como ejemplo. Como servidor de BD, usaremos MySQL un pequeño y compacto servidor de BD, ideal para pequeñas y medianas aplicaciones. MySQL soporta el estándar SQL (ANSI), y además está disponible para distintas plataformas. Una vez instalado MySQL, vamos a crear nuestra BD ejemplo. MySQL utiliza una tabla de permisos de usuarios, por defecto, en la instalación 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 recomendación de seguridad, el usuario nobody sólo
  • 5. con el permiso de ver (SELECT), que es el que utilizaremos para conectarnos al servidor de BD en nuestros script. Para crear nuestra BD, debemos ser el administrador de MySQL o el root, para ello haremos lo siguiente: Crear BD "mybd" CREATE DATABASE `mybd`; Ya hemos creado una BD, ahora le añadiremos una tabla, para lo cual copia el siguiente texto en el cuadro de consulta SQL. Crear tabla "agenda" CREATE TABLE agenda (id INT NOT NULL AUTO_INCREMENT, nombre CHAR(50), direccion CHAR(50), telefono CHAR(15), email CHAR(30), KEY (id) ) Añadiremos algunos registros: INSERT INTO agenda VALUES (0, 'Jose Gomez', 'C/ San Federico , 16. Coyoacan', '55.45.13.05', 'joseG@boxer.com' ) INSERT INTO agenda VALUES (1, 'Mauricio Garces', 'C/ Opera, 25. Tlalpan', '55.23.76.83', 'mauG@boxer.com' ) INSERT INTO agenda VALUES (2, 'Roger Traus', 'C/ Italia, 6. Miguel Hidalgo', '55.43.76.83', 'rogerT@boxer.com' ) Cabe destacar el campo id, no puede estar vacio, y además es autoincrementable, lo cual deberemos tener en cuenta a la hora de actualizar y añadir registros. Si no hemos cometido ningún error, ya tenemos nuestra base de datos de ejemplo en el servidor MySQL. Conectar a MySQL con PHP Ya tenemos datos en nuestra BD, así que con el siguiente script nos conectaremos a la BD del servidor MySQL para obtener los datos de un registro. Conexión a MySQL <html> <body> <?php $link = mysql_connect("localhost", "root", "root"); mysql_select_db("mybd", $link); $result = mysql_query("SELECT * FROM agenda", $link); echo "Nombre: ".mysql_result($result, 0, "nombre")."<br>"; echo "Dirección: ".mysql_result($result, 0, "direccion")."<br>"; echo "Teléfono :".mysql_result($result, 0, "telefono")."<br>";
  • 6. echo "E-Mail :".mysql_result($result, 0, "email")."<br<"; ?> </body> </html> En la primera línea del script nos encontramos con la función mysql_connect(), que abre una conexión con el servidor MySQL en el Host especificado (en este caso la misma máquina en la que está alojada el servidor MySQL, localhost). También debemos especificar un usuario (nobody, root, etc. ), y si fuera necesario un password para el usuario indicado (mysql_connect("localhost", "root", "clave_del_root")). El resultado de la conexión es almacenado en la variable $link. Con mysql_select_db() PHP le dice al servidor que en la conexión $link nos queremos conectar a la base de datos mybd. Podríamos establecer distintas conexiones a la BD en diferentes servidores, pero nos conformaremos con una. La siguiente función mysql_query(), es la que hace el trabajo duro, usando el identificador de la conexión ($link), envía una instrucción SQL al servidor MySQL para que éste la procese. El resultado de ésta operación es almacenado en la variable $result. Finalmente, mysql_result() es usado para mostrar los valores de los campos devueltos por la consulta ($result). En este ejemplo mostramos los valores del registro 0, que es el primer registro, y mostramos el valor de los campos especificados. Mostrar los datos de una consulta Ahora que ya sabemos conectar con el servidor de BD, veremos como mostrar los datos por pantalla. Consulta de la BD <html> <body> <?php $link = mysql_connect("localhost", "root", "root"); mysql_select_db("mybd", $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>
  • 7. En este script hemos introducido dos novedades, la más obvia es la sentencia de control while(), que tiene un funcionamiento similar al de otros lenguajes, ejecuta una sentencia mientras la condición sea verdadera. En esta ocasión while() evalúa la función mysql_fetch_row(), que devuelve un array con el contenido del registro actual (que se almacena en $row) y avanza una posición en la lista de registros devueltos en la consulta SQL. La función mysql_fetch_row() tiene un pequeño problema, es que el array que devuelve sólo admite referencias numéricas 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 pequeño inconveniente. Consulta modificada de BD <html> <body> <?php $link = mysql_connect("localhost", "root", "root"); mysql_select_db("mybd", $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 ningún registro !"; } ?> </body> </html> Esencialmente, este script hace lo mismo que el anterior. Almacenamos en $row el registro actual con la función mysql_fetch_array() que hace exactamente lo mismo que mysql_fetch_row(), con la exepción que podemos referenciar a los campos por su nombre ($row["email"]), en vez de por un número. 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. Mientras que con la sentencia do/while, nos aseguramos que se muestren todos los registros devueltos por la consulta en caso de haber más de uno. Hay que destacar la utilización del punto (.), como operador para concatenar cadenas.
  • 8. Un buscador para nuestra base de datos Vamos a ver una aplicación, 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 página web que nos servirá como formulario de entrada, la llamaremos formulario.html. Formulario de entrada de datos <html> <body> <?php $buscar=$_POST["buscar"]; $nombr=$_POST["nombr"]; if (!isset($buscar)) { echo "Debe especificar una cadena a buscar <br />"; echo "<a href=buscador.php>Regresar al formulario</a>"; } elseif(!$nombr) { echo "Debe especificar un nombre a buscar<br />"; echo "<a href=buscador.php>Regresar al formulario</a>"; } else { $link = mysql_connect("localhost", "root", "root"); mysql_select_db("mybd", $link); $result = mysql_query("SELECT * FROM agenda WHERE nombre LIKE '%$nombr%' ORDER BY nombre", $link); if ($row = mysql_fetch_array($result)) { echo "<table border='1'> n"; do { echo "<tr> n"; echo "<td>".$row["id"]."</td> n"; echo "<td>".$row["nombre"]."</td> n"; echo "<td>".$row["direccion"]."</td> n"; echo "<td>".$row["telefono"]."</td> n"; echo "<td><a href='mailto:".$row["email"]."'>".$row["email"]. "</a></td> n"; echo "</tr> n"; } while ($row = mysql_fetch_array($result)); echo "</table> n"; } else { echo "No se ha encontrado ningún registro !<br />"; echo "<a href=buscador.php>Regresar al formulario</a>";
  • 9. } } ?> </body> </html> A través de $buscar=$_POST["buscar"]; y $nombr=$_POST["nombr"]; recuperamos los valores contenidos en los campos y que son enviados por el metodo POST en formulario.html. Obseva que en $_POST["..."] colocamos como parametro el nombre del parametro de la consulta que queremos recuperar. Lo primero que comprobamos es que el contenido de la variable $buscar que recibimos del la página web formulario.html no es una cadena vacia, y esto lo hacemos con la función isset() que devuelve 'falso' si la variable que recibe está vacia. A la función le anteponemos el signo admiración (!) que es equivalente a un NOT, para convertirlo en 'verdadero' en caso de que la variable esté vacia, y en es caso terminamos la ejecución del script. En esta parte podríamos haber verificado de esta manera if(!$buscar) que es equivalente al ejemplo anterior. Tambien verificamos que el contenido de la variable $nombr no este vacía. Lo más importante de este script, es sin duda la sentencia SQL que le enviamos al servidor MySQL, y más concretamente la condición que le imponemos, WHERE nombre LIKE '%$buscar%'. Con la sentencia LIKE buscamos cualquier ocurrencia de la cadena contenida en $nombr, 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%', buscaríamos cualquier ocurrencia al principio del campo "nombre". Añadir registros a nuestra base de datos En esta parte vamos a ver como podemos añadir nuevos registros a nuesta BD. La recolección de datos la vamos a hacer a través de un interfaz de web. En primer lugar vamos a crear una página con un simple formulario, con los campos que deseamos. Formulario para recolectar datos <html> <body> <form method="post" action="add_reg.php"> Nombre :<input type="Text" name="nombre"><br> Dirección:<input type="Text" name="direccion"><br> Teléfono :<input type="Text" name="telefono"><br> E-mail :<input type="Text" name="email"><br> <input type="Submit" name="enviar" value="Aceptar informaci#243n"> </form> </body> </html>
  • 10. Hemos creado un formulario donde recoger los datos, y una vez introducidos ejecutamos un script llamado add_reg.php, veamos como es este script. Añadir registros <html> <body> <?php $nombre=$_POST["nombre"]; $direccion=$_POST["direccion"]; $telefono=$_POST["telefono"]; $email=$_POST["email"]; $link = mysql_connect("localhost", "root", "root"); mysql_select_db("mybd",$link); $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 función mysql_query(), la cúal tambiún usamos para las consultas, y usaremos para las actualizaciones. 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 podría ser cualquier otro usuario. Para reforzar este parte, vamos a combinar la página web de formulario y el fichero de script php, en un sólo fichero que llamaremos add_regFull.php Combinación de formulario y script <html> <body> <?php $enviar=$_POST["enviar"]; $nombre=$_POST["nombre"]; $direccion=$_POST["direccion"]; $telefono=$_POST["telefono"]; $email=$_POST["email"]; if ($enviar) { $link = mysql_connect("localhost", "root", "root"); mysql_select_db("mybd",$link); $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
  • 11. { ?> <form method="post" action="add_regFull.php"> Nombre :<input type="Text" name="nombre"><br> Dirección:<input type="Text" name="direccion"><br> Teléfono :<input type="Text" name="telefono"><br> E-mail :<input type="Text" name="email"><br> <input type="Submit" name="enviar" value="Aceptar información"> </form> <?php } //end else ?> </body> </html> Modificar registros de nuestra BD Para realizar modificaciones mecesitamos tener permisos en el servidor de BD, par lo cual nos conectaremos como usuario "root" o desde cualquier otro usuario siempre y cuando tenga ciertos privilegios. Primero obtenemos el ID del registro a modificar y los datos de los campos a través de un formulario que ya realizamos en la otra sección, luego mandamos una consulta con las modificaciones realizadas. Llamaremos a este archivo modifyReg.php Modificar registros <html> <body> <?php $enviar=$_POST["enviar"]; $id=$_POST["id"]; $nombre=$_POST["nombre"]; $direccion=$_POST["direccion"]; $telefono=$_POST["telefono"]; $email=$_POST["email"]; if($id && $enviar) { $link = mysql_connect("localhost", "root", "root"); mysql_select_db("mybd",$link); $sql = "UPDATE agenda SET nombre='$nombre', direccion='$direccion',". "telefono='$telefono', email='$email' WHERE id=$id"; $result = mysql_query($sql); echo "Gracias! Hemos recibido sus datos."; echo "<a href=modifyReg.php>Regresar al Formulario</a>"; } else { ?> <h1>Modificar un Registro</h1> <p>Por favor especifíque un ID e introduzca datos</p> <form method="post" action="modifyReg.php"> ID : <input type="Text" name="id"> Obligatorio<br />
  • 12. Nombre : <input type="Text" name="nombre"><br /> Dirección: <input type="Text" name="direccion"><br /> Teléfono : <input type="Text" name="telefono"><br /> E-mail : <input type="Text" name="email"><br /> <input type="Submit" name="enviar" value="Aceptar información"> </form> <?php } //end else ?> </body> </html> 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. Este archivo lo llamaremos deleteReg.php. Por tanto el script quedaría como sigue. Borrado de un registro de la BD <html> <body> <?php $enviar=$_POST["enviar"]; $id=$_POST["id"]; if ($id && $enviar) { $link = mysql_connect("localhost", "root", "root"); mysql_select_db("mybd",$link); $sql = "DELETE FROM agenda WHERE id=$id"; $result = mysql_query($sql); echo "El registro ha sido eliminado"; echo "<a href=deleteReg.php>Regresar al Formulario</a>"; } else { ?> <h1>Eliminar un Registro</h1> <p>Por favor especifíque un ID </p> <form method="post" action="deleteReg.php"> ID : <input type="Text" name="id"> Obligatorio<br /> <input type="Submit" name="enviar" value="Aceptar información"> </form> <?PHP } ?> </body> </html> Un Resumen de todo lo visto
  • 13. Como resumen de todo lo visto hasta ahora, vamos a hacer un script donde hagamos una combinación de todo lo visto hasta ahora. formularioFull.php <html> <body> <h1>Control de registros</h1> <?php //Parametros enviados por URL $delete=$_GET["delete"]; $id=$_GET["id"]; $add=$_GET["add"]; $modify=$_GET["modify"]; //Parametros enviados en el cuerpo de la consulta $ID=$_POST["ID"]; $enviar=$_POST["enviar"]; $nombre=$_POST["nombre"]; $direccion=$_POST["direccion"]; $telefono=$_POST["telefono"]; $email=$_POST["email"]; //Conexión con MySQL $link = mysql_connect("localhost", "root", "root"); mysql_select_db("mybd",$link); //Comprobamos si hemos recibido datos del formulario (enviar) if ($enviar) { // Si recibimos un ID, modificamos, sino añadimos un registro if ($ID) { $sql="UPDATE agenda SET nombre='$nombre',direccion='$direccion',". "telefono='$telefono',email='$email' WHERE id=$ID"; echo "Registro Actualizado<br />"; echo "<a href=formularioFull.php>Página de Inicio</a><br />"; } else { $sql = "INSERT INTO agenda (nombre, direccion, telefono, email) VALUES ('$nombre', '$direccion', '$telefono', '$email')"; echo "Registro Añadido<br />"; echo "<a href=formularioFull.php>Página de Inicio<br />"; } //Enviamos la sentencia SQL al servidor de BD $result = mysql_query($sql); } // Borramos un registro elseif ($delete) { $sql = "DELETE FROM agenda WHERE id=$id"; $result = mysql_query($sql); echo "Registro Borrado<br />"; echo "<a href=formularioFull.php>Página de Inicio</a>"; } else
  • 14. { // Esta parte se ejecuta si no hemos presionado el boton enviar, // es decir no venimos de un formulario if (!$id && !$add) //$id y $add Nulos? { // Mostramos todos los registros actuales de nuestra BD $result = mysql_query("SELECT * FROM agenda",$link); echo "<h2>Registros actuales</h2>"; echo "<table>"; echo "<tr><th>Nombre</th><th>Direccion</th> <th>Telefono</th><th>E-mail</th></tr>"; while ($myrow = mysql_fetch_array($result)) { echo "<tr>"; echo "<td>".$myrow["nombre"]."</td>"; echo "<td>".$myrow["direccion"]."</td>"; echo "<td>".$myrow["telefono"]."</td>"; echo "<td>".$myrow["email"]."</td>"; //Enviamos Valores por URL echo "<tr><td><a href=$_SERVER[PHP_SELF]?id=".$myrow["id"]. "&delete=yes> Borrar </a></td>"; echo "<td><a href=$_SERVER[PHP_SELF]?id=".$myrow["id"]. "&modify=yes> Modificar </a></td></tr>"; echo "</tr>"; } echo "<tr><td colspan=2><a href='$_SERVER[PHP_SELF]?add=yes'> Añadir un registro Nuevo</a></td></tr>"; echo "</table>"; } ?> <!--Formulario--> <form method="post" action="<?php echo $_SERVER[$PHP_SELF]?>"> <?php //Esta parte se ejecuta sólo cuando modificamos //o añadios un registro if($add || $modify) { if($id) { // Editamos el registro seleccionado $sql = "SELECT * FROM agenda WHERE id=$id"; $result = mysql_query($sql); $myrow = mysql_fetch_array($result); $ID=$myrow["id"]; $nombre = $myrow["nombre"]; $direccion = $myrow["direccion"]; $telefono = $myrow["telefono"]; $email = $myrow["email"]; //Enviamos el ID para poder editar el registro echo "<input type=hidden name=ID value=$ID<"; echo "<h2>Edición de registro.</h2>"; } else echo "<h2>Nuevo registro.</h2>"; ?> <table>
  • 15. <tr><td width="23%">Nombre: </td><td><input type="Text" size=50 name="nombre" value="<?php echo $nombre ?>"></td></tr> <tr><td>Dirección: </td><td><input type="Text" size=50 name="direccion" value="<?php echo $direccion ?>"></td></tr> <tr><td>Teléfono: </td><td><input type="Text" name="telefono" value="<?php echo $telefono ?>"></td></tr> <tr><td>E-mail: </td><td><input type="Text" size=50 name="email" value="<?php echo $email ?>"></td></tr> <tr><td colspan="2" align="center"><input type="Submit" name="enviar" value="Enviar Información"></td></tr> </table> </form> <?php }//End if ($add || $modify) }// End else ($enviar) ?> </body> </html> Cabe destacar el uso de $PHP_SELF, esta es una función interna de PHP que nos devuelve la dirección del script en el que se ejecuta. Por razones de seguridad recomiendo usarlo de esta manera $_SERVER[$PHP_SELF]. Espero que este pequeño tutorial te haya ayudado un poco sobre el manejo de PHP y MySQL, cabe aclarar que es necesario implementar código más seguro en cuanto al manejo de nuestras consultas y sobre todo validar que los datos de los formularios sean correctos, tambien es necesario capturar excepciones en PHP y manejar de una manera más fluida el uso de HTML y CSS para reforzar nuestras páginas web dinámicas. Dejo a tu disposicion unos tutoriales en http://www.openboxer.260mb.com/php.html para reforzar mas el manejo de PHP, aunque sabiendo programar en C ó Java podras manejar mas fácilmente este lenguaje de programación.