Email: prof_montiel@hotmail.com 1 INICIAR Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 2 Introduccin Qu es PHP? Qu se puede hacer con PHP?
Instalacin del Ambiente de Desarrollo Referencia del lenguaje
Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 3 Qu es PHP?
PHP (acrnimo de "PHP: Hypertext Preprocessor") es un lenguaje "open source" interpretado de alto nivel embebido en pginas HTML y ejecutado en el servidor.
Es un mdulo de programa del lado del servidor (server-side), que con respecto a la competencia ofrece mayor velocidad, bibliotecas ms cmodas y posibilidades considerablemente mejores para la conexin a bases de datos
Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 4 <html> <head> <title>Ejemplo Chafa</title> </head> <body> <?php echo Ke tranza Mongol!!!!; ?> </body> </html> Ejemplo aclaratorio Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 5 Qu se puede hacer con PHP?
PHP puede hacer cualquier cosa que se pueda hacer con un script CGI, como procesar la informacin de formularios, generar pginas con contenidos dinmicos, o mandar y recibir cookies. Y esto no es todo, se puede hacer mucho ms. Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 6 Quizs la mas poderosa y significativa caracterstica de PHP es su soporte para un gran rango de bases de datos. Escribir una pagina Web con accesos a una base de datos es increblemente simple.
Las siguientes bases de datos son soportadas:
Adabas D Ingres Oracle dBase InterBase Ovrimos Empress FrontBase PostgreSQL FilePro mSQL Solid Hyperwave MS-SQL Sybase IBM DB2 MySQL Velocis Informix ODBC Unix dbm Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 7 PHP y Protocolos
PHP tambin tiene soporte para hablar con otros servicios usando protocolos como IMAP, SNMP, NNTP, POP3, y por supuesto HTTP
Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 8 REQUISITOS Cabe mencionar que, a lo largo del presente seminario, se presuponen conocimientos bsicos de HTML y de JavaScript. Por otro lado, para llevar a cabo el aspecto prctico del seminario en cuestin, se emplear el software appserv-win32-2.6.0 (traer un CD para quemarlo). Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 9 Instalacin del ambiente de desarrollo para PHP En este mdulo se emplear el software: AppServ Open Project for Windows - Appserv-win32-2.6.0.exe (20 MB aprox.) - El cul contiene: - Apache WebServer Version - PHP Script Language Version - MySQL Database Version - phpMyAdmin Database Manager
Totalmente gratuito!. Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 10 Instalacin del ambiente de desarrollo para PHP 1. Ejecutar el archivo Appserv-win32-2.6.0.exe, se mostrar la siguiente imagen:
2. Aparecer la ventana AppServ v2.6.0 Setup, haz clic en el botn Next, enseguida se mostrar el nombre de la carpeta (AppServ), que se sugiere emplear, y haz clic en Next. Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 11 Instalacin del ambiente de desarrollo para PHP 3. En la ventana Select Components, puedes habilitar todos los componentes; en los laboratorios se instalaron todos los componentes excepto PHP-Nuke, haz clic en Next. 4. En la ventana Apache httpd Server permitimos los valores por omisin, ya que nuestro caso es la instalacin de un servidor local, y haz clic en Next. 5. En la ventana MySQL Database, omitimos el Username y la Password, y haz clic en Next. Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 12 Instalacin del ambiente de desarrollo para PHP 6. En la ventana Finished, permitimos que se activen, tanto Apache como MySQL, haz clic en Close. 7. A manera de verificacin captura las tres siguientes lneas de cdigo con el Bloc de Notas, y guarda el archivo en la carpeta: C:\AppServ\www, as como ndica en Tipo: Todos los archivos , con el nombre: testea.php
<? phpinfo(); ?>
Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 13 Instalacin del ambiente de desarrollo para PHP 8. Teclea la siguiente lnea en el cuadro de texto de Direccin de tu ventana MiPC: http://localhost/testea.php Debiendo aparecer la siguiente ventana: Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 14 El lenguaje, -Sintaxis bsica-
Insertando PHP Hay 4 maneras de insertar cdigo PHP en una pgina HTML:
1) <? echo "La forma simple\n"; ?>
2) <?php echo Elegancia ante todo..."; ?>
3) <script language="php"> echo Explicitez ante todo!!!!"; </script>
4) <% echo ( "La costumbre de ASP..." ); %> Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 15 Aunque tambin puede optarse por usar cdigo PHP que escriba el HTML necesario:
<?php echo <html>\n; echo <head><title>Probando</title></head> \n; echo <body>Esto es una prueba</body> \n; echo </html>\n; ?>
Los nombres y palabras reservadas de PHP son case-sensitive, es decir, que distingue entre maysculas y minsculas. Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 16 Separacin de instrucciones
Las instrucciones se separan igual que en C o en Perl, es decir, con ;. El tag de final ?> tambin implica separacin de instrucciones. As las sentencias siguientes son equivalentes:
<?php echo Esto es una prueba; ?>
equivalente a esta otra:
<?php echo Esto es una prueba ?> Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 17 Comentarios
Estilo C:
/* Comentario */
Estilo C++:
// Comentario
Estilo Shell Unix:
# Comentario
Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 18 Tipos
Los tipos bsicos de PHP son:
>> Array >> Reales >> Entero >> Objeto >> Strings
El tipo de una variable no lo decide el programador sino que se decide en tiempo de ejecucin dependiendo del contexto en el que aparezca la variable, se conocen como variables NO TIPIFICADAS, y deben iniciar con el smbolo $ (pesos). Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 19 <?php $nombresdeAmigas=array("Fabiola", "Patricia", "Martha", "Rebeca", "Rosa Maria", "Ana Maria", "Asuncin", "Margarita");
$buscoChava=Perla";
if (in_array($buscoChava, $nombresdeAmigas)) { echo Esta disponible!!!"; } else { echo Chafeaste ...........; } ?>
Ejemplo de Array Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 20 Operaciones aritmticas
+ Suma $a + $b - Resta $a - $b * Multiplicacin $a * $b / Divisin $a / $b % Residuo $a % $b . Une cadenas $a . $b $a++ ++$a Aumenta $a en 1 $a --$a Disminuye $a en 1 Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 21 Operaciones relacionales == igual > Mayor que < Menor que >= Mayor igual <= Menor igual != distinto La diferencia entre $j++ y ++$j es: $j=0; echo $j++; Da 0, despus se aumenta $j en 1. $j=0; echo ++$j; Primero aumenta $j en 1 y da el valor de 1. Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 22 <?php $a = localtime(); $a[4] += 1; $a[5] += 1900; print <center>Hora: ".$a[2]." hrs. ".$a[1]." mins.".$a[0]." segs.<br><p>"; print "Fecha: ".$a[4]." / ".$a[3]." / ".$a[5]. </center>"; ?> Ejemplo de Array Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 23 La funcin getdate() Una funcin importante es getdate, que proporciona informacin sobre la fecha y la hora, se trata de una matriz que puede leerse en una variable. Por ejemplo: <html> <head><title>Manejo de la Fecha</title></head> <body bgcolor="#ccffcc"> <center><font color=red><h2>La funcin de fecha getdate()</h2></font> <?php $mon = getdate(); $dia = $mon['weekday']; $mes = $mon['month']; $dian = $mon['yday']; $anio = $mon['year']; echo "Hoy es $dia <br> "; echo "Estamos en el mes de $mes <br>"; echo "Estas declaraciones se hiciern el da $dian del ao $anio"; echo "</center>"; ?> </body> </html> Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 24 <? if (isset($visita)) { $unomas = $visita + 1; setcookie("visita",$unomas, time() + (30 * 86400)); } else setcookie("visita","2",time() + (30 * 86400));
if(isset($visita)) echo Esta pgina la haz visitado <B>$visita</B> veces"; else echo "Es la primera vez que visitas esta pgina." ?>
Ejemplo de Enteros ... Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 25 Ahora, va uno de nmeros aleatorios .... <? $numero = rand(1,100); echo "El numero al azar es: <B>$numero</B>"; ?> Dando: Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 26 Otro mas de Enteros -Factorial de 5- <?php $n = 5; $ncopy = $n; $factorial = 1; do { $factorial = $n * $factorial; $n--; } while ($n >0); print "El factorial de $ncopy es $factorial."; ?> Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 27 Tipo String <? $hoy = date("l"); if ($hoy == "Sunday") { print ("<center><img src=\"images/image1.jpg\ width=100 height=120></center>"); } if ($hoy == "Monday") { print ("<center><img src=\"images/image2.jpg\" width=100 height=120></center>"); } if ($hoy == "Tuesday") { print ("<center><img src=\"images/image3.jpg\" width=100 height=120></center>"); } if ($hoy == "Wednesday") { print ("<center><img src=\"images/image4.jpg\" width=100 height=120></center>"); } if ($hoy == "Thursday") { print ("<center><img src=\"images/image5.jpg\" width=100 height=120></center>"); } if ($hoy == "Friday") { print ("<center><img src=\"images/image6.jpg\" width=100 height=120></center>"); } if ($hoy == "Saturday") { print ("<center><img src=\"images/image7.jpg\" width=100 height=120></center>"); } ?> Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 28 <? $hoy = date("l"); if ($hoy == "Sunday")
if ($hoy == "Wednesday") { print ("<center><img src=\"images/image4.jpg\" width=200 height=240></center>");}
if ($hoy == "Thursday") { print ("<center><img src=\"images/image5.jpg\" width=200 height=240></center>");} if ($hoy == "Friday") {print ("<center><img src=\"images/image6.jpg\" width=200 height=240></center>");}
if ($hoy == "Saturday") { print ("<center><img src=\"images/image7.jpg\" width=200 height=240></center>");} ?> Strings Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 29 <?php $a = getdate();
switch ( $mes = $a['month'] ) { case 'January': $mes = "Enero"; break; case 'February': $mes = "Febrero"; break; case 'March': $mes = "Marzo"; break; case 'April': $mes = "Abril"; break; case 'May': $mes = "Mayo"; break; case 'June': $mes = "Junio"; break;
case 'July': $mes = "Julio"; break; case 'August': $mes = "Agosto"; break; case 'September': $mes = "Septiembre"; break; case 'October': $mes = "Octubre"; break; case 'November': $mes = "Noviembre"; break; case 'December': $mes = "Diciembre"; break; } echo "Fecha: <br>"; echo $mes." ".$a['mday'].", ".$a['year']; ?> Mas de Strings Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 30 <?php // Habilitamos algunas variables: $titulo_del_site = "Seminario de Titulacin"; $color_del_fondo = "#ccffcc"; $usuario = "Prof. Montiel"; ?> <html><head><title><? print $titulo_del_site; ?></title></head> <body bgcolor="<? print $color_del_fondo; ?>"> <? // Despliega mensaje print " PHP Bienvenido - | ".date("F d, Y")." <br> Saludos, $usuario! <br>"; ?> </body> </html> Contenido dinmico Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 31 <?php
define("PI","3.141592");
print "Hola, tu direccin IP es: $REMOTE_ADDR"."<br>"; print "Tu Navegador es: $HTTP_USER_AGENT"."<br>"; print "El valor de PI es ". PI."<br>"; $doblePI = 2 * PI; print "El doble de PI es: $doblePI"; ?>
Definicin de Constantes Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 32 Formularios Puesto que PHP fue creado especialmente para disear pginas Web dinmicas, resulta muy fcil almacenar y emitir datos de formularios HTML en variables, por ejemplo, el contenido del archivo envia_info.htm:
<html> <head><title>Pasar informacin a PHP</title></head> <body bgcolor="#ccffcc"> <h1><center>Pasar Informacin</h1><hr> <form action="recibe_info.php" method="post"> Por favor teclea tu nombre: <br> <input name="dato" type=text><br><p> <input type="submit" value="Enviar datos"> </form></center> </body> </html>
Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 33 Formularios y por consiguiente el contenido del archivo recibe_info.php, es:
<html> <head><title>Respondiendo!!!!</title></head> <script> function cerrar() { window.close(); } </script> <body bgcolor="#ffccff"><center> <?php echo "el dato recibido es: $dato"; ?><br><p> <form> <input type="button" value="Cerrar ventana" onclick=cerrar()> </form></center> </body> </html>
Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 34 Formularios Al ejecutar el archivo envia_info.htm, se tiene:
Obviamente con el nombre ya tecleado!, y enseguida al hacer clic en el botn Enviar datos, se tiene Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 35 Formularios la siguiente pgina:
Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 36 Funciones Una parte importante de todo lenguaje de programacin es la capacidad de reunir varios comandos en un nico comando y almacenarlo como funcin. Si la funcin debe proporcionar un valor, deber indicarlo en el comando return. Por ejemplo: <?php function dia_minutos ( $cantidad ) { $minutos = 60 * 24 * $cantidad; return $minutos; } ?> Te aconsejo que captures ste cdigo y almacnalo en un archivo llamado Fun_DiaMin.php. Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 37 Funciones El siguiente script de programacin utiliza la nueva funcin (Fun_DiaMin.php). Para que la secuencia de comandos reconozca la funcin, debes incluirla mediante: include(Fun_DiaMin.php);
<html><head><title>Funciones en PHP</title></head> <body><center><h1>Calcula los das en minutos</h1><hr> <?php include(Fun_DiaMin.php); $x = dia_minutos( 7 ); echo 7 das tiene $x minutos; ?></center> </body> </html> Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 38 Funciones El resultado es el siguiente: Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 39 Leer y escribir archivos Para la creacin de contadores o libros de visitantes es necesario leer y editar archivos que se encuentran en el servidor. Para ello es necesario abrir, leer (o modificar) y cerrar el archivo. Para abrir un archivo se emplea la funcin fopen. El resultado se almacena en la variable $archivo: $archivo = fopen(archivo, parametro); De donde parmetro puede adoptar los siguientes valores: r Slo lectura r+ Lectura y escritura w Slo escritura a Aadir o agregar a+ Lectura y escritura Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 40 Leer y escribir archivos Ejemplo: : while ( !feof($archivo)) { $linea = fgets($archivo, 100); echo $linea; } : De donde: feof($archivo) es verdadero, siempre que se haya alcanzado el final del archivo. $linea = fgets($archivo, 100); lee como mximo las prximas 100 lneas, pero se detiene cuando empieza una nueva linea o cuando se alcanza el final del archivo. echo $linea; devuelve lo leido. Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 41 Leer y escribir archivos Ejemplo cambiar Proverbio mensualmente <?php $mon = getdate(); $mesc = $mon['month']; $mes = $mon['mon']; echo "<font color=red>Proverbio del mes $mesc".": </font><br><p>"; $archivo = $mes.".txt"; readfile($archivo); ?>
Observaciones: este cdigo permite realizar automticamente cambios en su pgina Web, dependiendo del mes se desplegar un proverbio diferente, los proverbios de cada mes estn almacenados en los archivos: 1.txt, 2.txt, 3.txt, , 12.txt. El resultado se muestra en la siguiente diapositiva Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 42 Leer y escribir archivos Para el mes de Diciembre: Para el mes de Enero: Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 43 Leer y escribir archivos Ejemplo Libro de visitas El siguiente script de programacin Librito.php permite crear un pequeo libro de opiniones, adems se requiere de un archivo de texto vaco opiniones.txt, en el cual se almacenarn todas las opiniones vertidas por los usuarios: <html> <head><title>Libro de Visitas</title></head> <body bgcolor="#ccffcc"><center><h1>Un pequeo libro de visitas</h1><hr> <form action="<?php echo $PHP_SELF ?>" method="POST"> <textarea cols=60 rows=5 name="opinion" wrap=virtual></textarea> <input type="submit" value=" Enviar opinion "> </form> <?php if (isset($opinion)) { $fp = fopen("opiniones.txt","a"); fwrite($fp, nl2br($opinion)."<p>\n"); fclose($fp); } ?> <p><font color=red>Opiniones que ya se han escrito: </font></p> <?php readfile("opiniones.txt") ?> </body> </html> Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 44 Leer y escribir archivos Libro de visitas La siguiente imagen nos muestra la 2a. ocasin que se empleo el programa librito.php: Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 45 Leer y escribir archivos Los queridos y odiados cookies Hemos visto ejemplos en donde se almacenan datos en archivos de texto, en estos casos, los archivos estn situados en el servidor Web. Si, por el contrario, si queremos almacenar secuencias de caracteres en el disco duro del usuario, entonces haremos referencia a los cookies. Los cookies pueden contener informaciones sobre el usuario para reconocerlo en su prxima visita, los cookies tienen una vida determinada, que puede abarcar de segundos a aos. El tamao mximo de un cookie es de 2048 bits. Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 46 Los queridos y odiados cookies Enseguida tenemos el formulario que solicita tu nombre (nombre_cookie.php): <html> <head><title>Ejemplo de Cookies</title></head> <body> <form action="cookie.php"> <p><b>Por favor, teclea tu nombre: </b></p> <p><?php echo '<input type="text" name="nombre" size="15" value="'.$cknombre.'">'; ?> </p> <p><input type="submit" value=" Enviar " name="B1"></p> </form> </body> </html> Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 47 Los queridos y odiados cookies y ahora tenemos el script cookie.php: <?php setcookie("cknombre", $nombre, time() + 72 * 3600); echo "Tu nombre es: $nombre <br>"; ?> Al ejecutar la pgina nombre_cookie.php, se tiene: y obviamente tecleo mi nombre: Prof Montiel, y al hacer clic en el botn Enviar, se muestra Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 48 Los queridos y odiados cookies la siguiente pgina: Como ya mencione, la secuencia de caracteres se graba en un archivo (cookie) en el disco duro del usuario, pero en donde?, ah pues en la siguiente diapositiva se indica donde diablos Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 49 Los queridos y odiados cookies su ubicacin (en Windows XP): su contenido: Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 50 Base de Datos MySQL Antes de iniciar con la utilizacin de la base de datos MySQL, te suguiero crear un acceso directo mediante el cual puedas ejecutar el comando mysql.exe, cuya ubicacin es: c:\AppServ\mysql\bin. Al ejecutar este comando se activa el ambiente de MySQL, se mostrar la siguiente ventana (ambiente MSDOS):
y como observars, el prompt o indicador es mysql> Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 51 Base de Datos MySQL En la siguiente ventana se muestran las instrucciones o comandos de MySQL para crear una base de datos, a la cual llamar escuela (recuerda, en el ambiente de MySQL): Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 52 Base de Datos MySQL Ahora, vamos a crear la tabla amigos, pero esto lo realizaremos dentro de un script de php, pero antes debers de crear dos archivos php, el primero se debe de llamar conexion.php y el segundo envia_sql.php, los cdigos son los siguientes: Script conexion.php:
<?php function enviar_sql($db, $sql) { if ( !$respuesta=mysql_db_query($db, $sql)) { echo mysql_error(); exit; } return $respuesta; } ?> Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 53 Base de Datos MySQL Ahora si, el siguiente script corresponde a la creacin de la tabla amigos, a este le llamar crea_tabla_amigos.php: <html> <head><title>Tabla de amigos</title></head> <body bgcolor="#ccffcc"> <center><h1>Creacin de la tabla de Amigos</h1> <?php include("conexion.php"); include("envia_sql.php"); $sql = "CREATE TABLE amigos (clave_amigo INT (2) NOT NULL PRIMARY KEY, nombre CHAR(10), apellidos CHAR(25), email CHAR(25), telefono CHAR(8), nacimiento DATE )"; if ( $respuesta=enviar_sql($db, $sql)) { echo "El comando SQL se ha ejecutado exitosamente! } ?></center> </body> </html Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 54 Base de Datos MySQL Al ejecutarse el script crea_tabla_amigos.php se tendr la ventana siguiente (claro!, siempre y cuando no hayas cometido ningun error): Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 55 Base de Datos MySQL ... y a manera de chequeo, empleamos los comandos USE y DESCRIBE, como se indica enseguida: Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 56 Base de Datos MySQL <html> <head><title>Tabla de Amigos</title></head> <body bgcolor="#ccffcc"> <center><h1>Alta de informacin para la tabla Amigos</h1> <?php include("conexion.php"); include("envia_sql.php"); $sql = "INSERT INTO amigos VALUES ( 1, 'Rebeca','Ruiz Cruz','curiosita@hotsex.com', '0445512123434','1970-10-12')"; if ( $respuesta=enviar_sql($db, $sql)) { echo "El comando SQL se ha ejecutado exitosamente!!"; } ?></center> </body> </html> Ahora es buen momento para Insertar o dar de alta registros a la tabla amigos, para ello crearemos el archivo Alta_Inf_Amigos.php, cuyo cdigo es el siguiente (se introducen los datos del registro en el mismo cdigo): Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 57 Base de Datos MySQL Al ejecutar el script alta_inf_amigos.php deber de mostrarse una imagen semejante a la siguiente: Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 58 Base de Datos MySQL para verificar el contenido de la tabla amigos, debers de emplear los comandos USE y SELECT, tal como se muestra enseguida: Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 59 Base de Datos MySQL <html> <head><title>Formulario ALTAS -tabla amigos-</title></head> <body bgcolor="#ccffcc"> <center><h1>Formulario Altas "amigos"</h1><hr> <b>Por favor, introduce los datos correspondientes:</b> <form action="Form_alta_amigos.php" method="post"> <table border=0> <tr><td>Clave de amigo:<td><input type="text" name="ClaveAmigo" size="3"> <tr><td>Nombre:<td><input type="text" name="NombreAmigo" size="15"> <tr><td>Apellidos:<td><input type="text" name="ApellidosAmigo" size="20"> <tr><td>Email:<td><input type="text" name="EmailAmigo" size="20"> <tr><td>Telefono:<td><input type="text" name="TelefonoAmigo" size="13"> <tr><td>Fecha de Nacimiento:<td><input type="text" name="NacimientoAmigo" size="8"> <tr><td><input type="submit" value="Enviar"><input type="reset" value="Eliminar"> </table></center> </body> </html> Bien, ahora introduciremos datos a la tabla amigos a travs de un formulario (el medio ms empleado), sin embargo para llevar a cabo dicha accin debers de instalar la version AppServ win32-2.3.0, el cdigo sera: Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 60 Base de Datos MySQL para la verificacin, volvemos a emplear los comandos de MySQL: USE y SELECT, tal como se muestra en la siguiente imagen: Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 61 Base de Datos MySQL Consultas- <?php function preparar_salida($resultado) { $CantidadCampos = mysql_num_fields($resultado); $ancho = 100/$CantidadCampos."%"; echo "<table width=100% border=0 cellpadding='2' cellspacing='2'>"; echo "<tr bgcolor=#d0d0d0>"; for ( $i=0; $i<$CantidadCampos; $i++ ) { echo "<th width='$ancho'><font size='1'>"; echo mysql_field_name($resultado, $i); echo "</font></th>"; } echo "</tr>"; echo "<tr>"; $NumeroRenglones = mysql_num_rows($resultado); for ( $j = 0; $j<$NumeroRenglones; $j++ ) { $renglon = mysql_fetch_array($resultado); echo "<tr bgcolor=#cccccc>"; for ( $k=0; $k<$CantidadCampos; $k++ ) { $NombreCampo = mysql_field_name($resultado, $k); echo "<td width='$ancho'><font size='1'> $renglon[$NombreCampo] </font></td>"; } echo "<tr>"; echo "</tr>"; } echo "</table>"; } ?> Antes de realizar la primera consulta, te sugiero captures el siguiente cdigo (funcin PHP) que permitir darle formato a la salida de la consulta que realicemos, llamale: prepara_salida.php: Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 62 Base de Datos MySQL Consultas- <html> <head><title>Consulta de la Tabla Amigos</title></head> <body bgcolor="#cffffc"> <center><h1>Consulta informacin de la tabla Amigos</h1> <?php include("conexion.php"); include("envia_sql.php"); include("prepara_salida.php"); $sql = "select * from amigos "; if ( $respuesta=enviar_sql($db, $sql)) { echo "Consulta: $sql"; } preparar_salida($respuesta); ?></center> </body> </html> El siguiente cdigo nos permitir efectuar una consulta a la tabla amigos de la base de datos escuela, llmale ConsultaAmigos.php (en la siguiente diapositiva se muestra el resultado): Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 63 Base de Datos MySQL Consultas- He ah el resultado: Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 64 Base de Datos MySQL Consulta- <html> <head><title>Consulta de la Tabla Amigos</title></head> <script> function Cerrar() { window.close(); } </script> <body bgcolor="#cffffc"> <center><h1>Consulta Tabla Amigos por Clave</h1><hr> <form action="<?php echo $PHP_SELF ?>" method="POST"> Teclea la clave: <input type="text" name="clave" size="4"><br><p> <input type="submit" value=" Enviar "> <input type="button" value=" Cerrar sesion " onclick="Cerrar()"> </form> <?php if (isset($clave)) { include("conexion.php"); include("envia_sql.php"); include("prepara_salida.php"); $sql = "select * from amigos where clave_amigo=$clave "; if ( $respuesta=enviar_sql($db, $sql)) { echo "Consulta: $sql"; } preparar_salida($respuesta); } ?></center> </body> </html> El siguiente cdigo nos permite efectuar consultas por medio de la clave, empleando la clusula Where en la instruccin SELECT, captralo y llmale ConsultaPorClave.php: Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 65 Base de Datos MySQL Consulta- Resultado de la consulta, al haber tecleado la clave 12: Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 66 <?php if ( empty($usuario) || empty($password) ) { ?> <center><h1>Teclea los siguientes datos:</h1><hr> <form method="post" action="login.php"> <table border="1"> <tr><th>Username: </th><td> <input type="text" name="usuario"> </td></tr> <tr><th>Contrasea: </th><td><input type="password" name="password"></td></tr> <tr><td colspan="2" align="center"><input type="submit" value="Log in"> <input type="reset" value="Limpia"></td></tr> </table> </form> <?php } else if ( $usuario == 'montiel' && $password == "orale" ) { echo "<h1>Usuario registrado!</h1>"; echo "Me siento halagado de que me visites, .... :-)"; } else { echo "<h1>Usuario no registrado!</h1>"; echo "Te ruego que hables con el administrador, .... ;-("; } ?> Cdigo para efectuar la validacin de usuarios, te sugiero que le llames: login.php: Conocimiento Prctico en Computacin Introduccin al Lenguaje PHP y MySQL Email: prof_montiel@hotmail.com 67 Teniendo como resultado la siguiente imagen: