SlideShare una empresa de Scribd logo
PHP & MySQL Ing. Antonio J. Hdez. Blanco. Mail:  [email_address] Ing. Wilian Arroba Mail: [email_address]
Contenido del curso Introducción e instalación de PHP y MySQL Programación con PHP. Almacenamiento de la información en ficheros y BD. Funciones de RED.  Ejemplos de aplicaciones php y mysql.
Contenido Breve historia del PHP. Qué es PHP? Cómo funcionan las páginas en PHP? Instalación de PHP en W2k y *nix. Qué es MySQL? Instalación de MySQL.
Corta historia de PHP PHP es un lenguaje creado por una gran comunidad de personas. El sistema fue desarrollado originalmente en el año 1994 por Rasmus Lerdorf como un CGI escrito en C que permitía la interpretación de un número limitado de comandos.  El sistema fue denominado Personal Home Page Tools y adquirió relativo éxito gracias a que otras personas pidieron a Rasmus que les permitiese utilizar sus programas en sus propias páginas.
Corta historia de PHP Dada la aceptación del primer PHP y de manera adicional, su creador diseñó un sistema para procesar formularios al que le atribuyó el nombre de FI (Form Interpreter) y el conjunto de estas dos herramientas, sería la primera versión compacta del lenguaje: PHP/FI.
Corta historia de PHP La siguiente gran contribución al lenguaje se realizó a mediados del 97 cuando se volvió a programar el analizador sintáctico, se incluyeron nuevas funcionalidades como el soporte a nuevos protocolos de Internet y el soporte a la gran mayoría de las bases de datos comerciales.
Corta historia de PHP Todas estas mejoras sentaron las bases de PHP versión 3. Actualmente PHP se encuentra en su versión 5, que utiliza el motor Zend, desarrollado con mayor meditación para cubrir las necesidades actuales y solucionar algunos inconvenientes de la anterior versión.
Corta historia de PHP Algunas mejoras de esta nueva versión son su rapidez -gracias a que primero se compila y luego se ejecuta, mientras que antes se ejecutaba mientras se interpretaba el código-, su mayor independencia del servidor Web -creando versiones de PHP nativas para más plataformas- y un API más elaborado y con más funciones.
¿Qué es PHP? El lenguaje PHP es un lenguaje de programación de estilo clásico, es decir, es un lenguaje de programación con variables, sentencias condicionales, ciclos (bucles), funciones….  No es un lenguaje de marcado como podría ser HTML, XML o WML.  Está más cercano a JavaScript o a C, para aquellos que conocen estos lenguajes.
¿Qué es PHP? Pero a diferencia de JavaScript que se ejecuta en el navegador, PHP se ejecuta en el servidor, por eso nos permite acceder a los recursos que tenga el servidor como por ejemplo podría ser una base de datos. El programa PHP es ejecutado en el servidor y el resultado enviado al navegador.  El resultado es normalmente una página HTML pero igualmente podría ser una pagina XML.
¿Qué es PHP? Al ser PHP un lenguaje que se ejecuta en el servidor no es necesario que su navegador lo soporte, es independiente del browser, pero sin embargo para que las páginas PHP funcionen, el servidor donde están alojadas debe soportar PHP.
¿Qué es PHP?
¿Qué se necesita para que funcione PHP? En sistemas Operativos Windows: Versión compilada de PHP. (http://www.php.net). Un servidor Web (Apache, PWS, IIS, Etc.). En sistemas Operativos Linux: Versión en fuente para compilar e instalar. (http://www.php.net) Servidor Web (Apache). En versión fuente para compilar e instalar. ( http://www.apache.org ) O instalar desde los CDs de la distro que se use.
Qué es MySQL? Administrador de Base de Datos Una base de datos es un conjunto de datos estructurados. Esto podría ser cualquier cosa, desde una simple lista de compras hasta una galería de pinturas o la gran cantidad de información que se maneja en una corporación. Para agregar, acceder y procesar los datos almacenados en una base de datos computacional, se necesita un sistema administrador de base de datos tal como MySQL.
Qué es MySQL? Además los computadores son muy buenos manejando grandes cantidades de datos, el administrador de base de datos juega un rol central en la computación, ya sea como utilidad autónoma o parte de otra aplicación.
Qué es MySQL? Sistema administrador de base de datos relacionales Una base de datos relacional almacena datos en tablas separadas, más bien colocando todos los datos en un gran almacén. Esto agrega velocidad y flexibilidad.  Las tablas son enlazadas por relaciones definidas haciendo posible combinar datos desde varias tablas solicitadas.
Qué es MySQL? El SQL forma parte de MySQL, conocido como Lenguaje de Consultas Estructurado, es el lenguaje estandarizado más común usado para acceder base de datos. Software de Fuente Abierta Fuente abierta significa que es posible que pueda ser usado y modificado por cualquiera. Alguien puede bajar MySQL desde Internet y usar éste sin tener que pagar nada.
Qué es MySQL? Alguien puede estudiar el código fuente y cambiarlo de acuerdo a sus necesidades. MySQL usa el GPL de la GNU, para definir lo que se puede hacer con el software en diferentes situaciones.
Uso de MySQL? MySQL es muy rápido, seguro y fácil de usar. MySQL también ha desarrollado un conjunto de características muy prácticas, en estrecha cooperación con otros usuarios. MySQL fue desarrollado para manejar grandes bases de datos mucho más rápido que las soluciones existentes y ha sido usado exitosamente en ambientes de producción con altas demandas, por varios años. Aunque está bajo un desarrollo constante.
Uso de MySQL? MySQL siempre ofrece conjunto de funciones muy poderoso y eficiente. La conectividad, velocidad y seguridad hace de MySQL una suite poderosa para acceder a bases de datos en Internet.
Uso de MySQL? MySQL es un sistema Cliente/Servidor que consta de un servidor SQL multi-hilo que soporta diferentes backends, variados programas cliente y de librerías, administrador de herramientas y un programa de interface. MySQL contribución para muchos de los software disponibles. Es mucho más probable que se encuentre que diversas aplicaciones ya soportan MySQL
Uso de MySQL? Ventajas de MySQL: •  La mejor y más usada base de datos en el mundo. •  Disponible y Accesible para todos •  Fácil de usar •  Se está perfeccionando continuamente mientras permanece rápida y segura. •  Divertida para usar y perfeccionar. •  Libre de molestias.
Uso de MySQL? Características principales de MySQL A continuación se describen algunas de las características más importantes de MySQL: •  Escrito en C y C++, testado con GCC 2.7.2.1. Usa GNU autoconf para portabilidad. •  Clientes C, C++, Eiffel,PHP,Python,JAVA, Perl, TCL. •  Multiproceso, es decir puede usar varias CPU si éstas están disponibles.
Uso de MySQL? •  Puede trabajar en distintas plataformas y S.O. distintos. •  Sistema de contraseñas y privilegios muy flexible y segura. •  Todas la palabras de paso viajan encriptadas en la red. •  Registros de longitud fija y variable. •  16 índices por tabla, cada índice puede estar compuesto de 1 a 15 columnas o partes de ellas con una longitud máxima de 127 bytes.
Uso de MySQL? •  Todas las columnas pueden tener valores por defecto. •  Utilidad Isamchk para chequear, optimizar y reparar tablas. •  Todos los datos están grabados en formato ISO8859_1. •  Los clientes usan TCP o UNIX Socket para conectarse al servidor. •  Todos los comandos tienen -help o -? Para las ayudas.
Uso de MySQL? •  Soporta diversos tipos de columnas como enteros de 1, 2, 3, 4, y 8 bytes, coma flotante, doble precisión, carácter, fechas, enumerados, etc. •  ODBC para Windows 95 (con fuentes), se puede utilizar ACCESS para conectar con el servidor. •  Muy rápida usando joins, optimizada para un barrido multi-joins.
Uso de MySQL? Todas las funciones y operadores soportan en el SELECT y WHERE como partes de consultas. Ejemplo: mysql> SELECT CONCAT(nombre," ",apellido) FROM nombre_tabla WHERE ingreso >10000 AND edad >30 Todas las cláusulas SQL soportan GROUP BY y ORDER BY.
¿Instalación de MySQL? En sistemas Operativos Windows: Versión compilada de mysql (http://www.mysql.com). º111 En sistemas Operativos Linux: Versión en fuente para compilar e instalar. (http://www.mysql.com) O instalar desde los CDs de la distro que se use.
Contenido UN PROGRAMA DE EJEMPLO VARIABLES Y CONSTANTES OPERADORES SENTENCIAS CONDICIONALES IF –ELSE .  SWITCH SENTENCIAS REPETITIVAS FOR WHILE  DO – WHILE
PRIMER PROGRAMA <HTML> <HEAD> <TITLE>Primer Ejemplo de PHP</TITLE> </HEAD> <BODY> <?php echo “Hola mundo PHP”; ?> </BODY> </HTML> Guarde el archivo con el nombre de primer.php
PRIMER PROGRAMA Todo script PHP empieza con <?php que le indica al browser que se trata de una página con código php embebido y termina con ?> La mayoría de las instrucciones php terminan con ; La instrucción echo sirve para desplegar texto en la página web, también se puede substituir por print. Así la instrucción echo “Hola mundo, php”; indica que dentro de la página web se incrustará este mensaje.
VARIABLES Y CONSTANTES Todos los nombres de las variables empiezan con el carácter $ Los nombres de las variables no pueden empezar con números ni caracteres especiales. La forma de declarar una variable es así $MiVariable Aunque no se le asigna tipo de dato, la variable tomará el tipo de dato que contenga el valor que se le asigne. Tipos de Datos int float double string array object
VARIABLES Y CONSTANTES Así una forma de crear una variable con tipo de datos es: $MiEntero=100; $MiCadena=“Chino”; Además podemos realizar una conversión de tipos con las siguientes funciones doubleval (cadena a real) inval (cadena a entero) strval (número a cadena) Ejemplo: $Micad=“1235”; $MiReal=intval($Micad); Otras funciones útiles son: isset(variable); - checa si una variable existe o no empty(variable); - checa si una variable no tiene asignado un valor. settype(variable, tipo); - asigna un tipo de dato a una variable. gettype(variable); - devuelve el tipo de dato de una variable unset(variable); elimina variables
VARIABLES Y CONSTANTES Por otro lado, para crear constantes se utiliza la función: define(nombre constante, valor); Ejemplo:  define(“PI”,3.1515926); Para comprobar si la constante existe o esta definida, se utiliza la función: defined(constante); Por ejemplo: defined(“PI”); devuelve verdadero si la constante PI existe
OPERADORES Aritméticos = (asignación) + (suma) - (resta) * (multiplicación) / (división) % (resto de la división entera) Operador= por ejemplo $a+=$b es equivalente a $a=$a+$b Variable++ (incremento) Variable– (decremento) Comparativos == (igualdad) < (menor que) > (mayor que) <= (menor o igual que) >= (mayor o igual que) != (distinto de) === (comparación de valor y tipo) Lógicos ! (negación) && (and) ||  (or) Cadenas .  (concatenación)
SENTENCIA IF - ELSE En PHP la sentencia IF se utiliza como sigue: If (condición) { código si se cumple la condición } else { código sino se cumple la condición } Ejemplo: <?php $x=3; $y=2; if ($x == $y) { print ( “tanto y como x son iguales”); } else { print (“son diferentes”); } ?>
SENTENCIA SWITCH Como ya sabemos el switch sirve para conmutar entre varias opciones, en php seutiliza como sigue: switch(variable) {  opción1:código para opción1; break ; opción2:código para opción2; break; ...... opciónN:código para opciónN; break; default: código para la opción por defecto; break; }
EJEMPLO SWITCH <?php $a=3; switch($a) { 1:print(“estamos en la opción uno”); break; 2:print(“estamos en la opción dos”); break; 3:print(“estamos en la opción tres”); $a--; break; default:print(“No hay opciones”); } Print(“Valor de a” . $a); ?>
CICLO FOR Igual que el lenguaje C, el ciclo for se implementa así: for (valor de inicio;condición;incremento / decremento) { código a repetir } Ejemplo: <?php print(“iniciando cuenta atrás...”); $a=10; for($a;$a>=0;$a--) { print(“\$a =$a<br>”); } ?>
BUCLE WHILE La implementación del bucle while en php es así: while (condición) { código a repetir } Ejemplo: <?php $a=0; print(“Cuenta hacia delante...”); while($a<=10) { print(“\$a =$a<br>”); } ?>
BUCLE DO - WHILE Igual que C, php tamién cuenta con un ucle do – while do { código a repetir}  while (condición); Ejemplo: <?php $valor1=3; $valor2=0; do {  print ($valor1.” x” . $valor2 . “ = “ .$valor1*$valor2); $valor2++; }while($valor2>=10); ?>
Tablas - Vectores Las tablas (o array en inglés), son muy importantes en PHP, ya que generalmente, las funciones que devuelven varios valores, como las funciones ligadas a las bases de datos, lo hacen en forma de tabla. En PHP disponemos de dos tipos de tablas. El primero sería el clásico, utilizando índices:
Tablas - Vectores <?php $ciudad[] = &quot;París&quot;; $ciudad[] = &quot;México&quot;; $ciudad[] = &quot;Roma&quot;; $ciudad[] = &quot;Sevilla&quot;; $ciudad[] = &quot;Londres&quot;; print (&quot;yo vivo en &quot; . $ciudad[1] . &quot;<BR>\n&quot;); ?>
Tablas - Vectores Esta es una forma de asignar elementos a una tabla, pero una forma más formal es utilizando la función  array <?php $ciudad = array(&quot;París&quot;, &quot;Roma&quot;, &quot;Sevilla&quot;, &quot;Londres&quot;); //contamos el número de elementos de la tabla $numelentos = count($ciudad); //imprimimos todos los elementos de la tabla for ($i=0; $i < $numelentos; $i++) { print (&quot;La ciudad $i es $ciudad[$i] <BR>\n&quot;); } ?>
Tablas - Vectores Sino se especifica, el primer índice es el  cero , pero podemos utilizar el operador  =>  para especificar el índice inicial.
Tablas - Vectores Un segundo tipo, son las  tablas asociativas , en las cuáles a cada elemento se le asigna un valor (key) para acceder a él. Para entenderlo, que mejor que un ejemplo, supongamos que tenemos una tabla en al que cada elemento almacena el número de visitas a nuestra web por cada día de la semana.
Tablas - Vectores Utilizando el método clásico de índices, cada día de la semana se representaría por un entero, 0 para lunes, 1 para martes, etc. $visitas[0] = 200; $visitas[1] = 186; Si usamos las tablas asociativas sería $visitas[&quot;lunes&quot;] = 200; $visitas[&quot;martes&quot;] = 186; o bien, $visitas = array(&quot;codigo&quot;>$visitas = array(&quot;lunes&quot;=>200; &quot;martes&quot;=>186);
Tablas - Vectores Ahora bien, recorrer una tabla y mostrar su contenido es sencillo utilizando los índices, pero ¿cómo hacerlo en las tablas asociativas?. La manipulación de las tabas asociativas se a hace través de funciones que actúan sobre un puntero interno que indica la posición. Por defecto, el puntero se sitúa en el primer elemento añadido en la tabla, hasta que es movido por una función:
Tablas - Vectores current  - devuelve el valor del elemento que indica el puntero pos  - realiza la misma función que  current reset  - mueve el puntero al  primer  elemento de la tabla end  - mueve el puntero al  último  elemento de la tabla next  - mueve el puntero al elemento  siguiente prev  - mueve el puntero al elemento  anterior count  - devuelve el número de elementos de una tabla.
Tablas - Vectores <?php $semana = array(&quot;lunes&quot;, &quot;martes&quot;, &quot;miércoles&quot;, &quot;jueves&quot;, &quot;viernes&quot;, &quot;sábado&quot;, &quot;domingo&quot;); echo count($semana); //7 //situamos el puntero en el primer elemento reset($semana); echo current($semana); //lunes next($semana); echo pos($semana); //martes end($semana) echo pos($semana); //domingo prev($semana); echo current($semana); //sábado ?>
Tablas - Vectores Recorrer una tabla con las funciones anteriores se hace un poco enredoso, para ello se recomienda utilizar la función  each() . <?php $visitas = array(&quot;lunes&quot;=>200, &quot;martes&quot;=>186, &quot;miércoles&quot;=>190, &quot;jueves&quot;=>175); reset($visitas); while (list($clave, $valor) = each($visitas)) { echo &quot;el día $clave ha tenido $valor visitas<BR>&quot;; } ?>
Tablas - Vectores La función  each()  devuelve el valor del elemento actual, en este caso, el valor del elemento actual y su clave, y desplaza el puntero al siguiente, cuando llega al final devuelve  falso , y termina el bucle  while() .
Tablas multidimensionales Las tablas multidimensionales son simplemente tablas en las cuales cada elemento es a su vez otra tabla. <?php $calendario[] = array (1, &quot;enero&quot;, 31); $calendario[] = array (2, &quot;febrero&quot;, 28); $calendario[] = array (3, &quot;marzo&quot;, 31); $calendario[] = array (4, &quot;abril&quot;, 30); $calendario[] = array (5, &quot;mayo&quot;, 31);
Tablas multidimensionales while (list($clave, $valor ) = each($calendario)){ { $cadena = $valor[1]; $cadena .= &quot; es el mes número &quot; . $valor[0]; $cadena .= &quot;y tiene &quot; . $varlor[2] . &quot; días<BR>&quot;; echo $cadena; } ?> La función  list()  es más bien un operador de asignación, lo que hace es asignar valores a unas lista de variables. En este caso los valores son extraídos de una tabla por la función  each() .
Formularios Los Formularios no forman parte de PHP, sino del lenguaje estándar de Internet, HTML, pero como éstos van a aparecer muchas veces durante el curso, vamos a dedicar esta algunas líneas a ellos. Todo formulario comienza con la etiqueta  <FORM ACTION=&quot;lo_que_sea.php&quot; METHOD=&quot;post/get&quot;> .  Con  ACTION  indicamos el script que va procesar la información que recogemos en el formulario, mientras que  METHOD  nos indica si el usuario del formulario va ha enviar datos ( post ) o recogerlos ( get ).
Formularios La etiqueta  </FORM>  indica el final del formulario. A partir de la etiqueta  <FORM>  vienen los campos de entrada de datos que pueden ser: Botón de comando: <input type=&quot;submit&quot; value=&quot;enviar&quot; name=&quot;enviar&quot;> Cuadro de texto: <input type=&quot;text&quot; name=&quot;nombre&quot; size=&quot;20&quot; value=“chino&quot;> Veamos los ejemplos de formularios.
Contenido clase # 3 Almacenamiento de la información. Ficheros… Bases de Datos…
Trabajo con ficheros fopen fopen -- Abre un archivo o una URL Descripción int fopen (string filename, string mode [, int use_include_path]) Si  filename  comienza con &quot;http://&quot; (no es sensible a mayúsculas), se abre una conexión HTTP 1.0 hacia el servidor especificado y se devuelve un apuntador de archivo al comienzo del texto de respuesta.
Trabajo con ficheros No maneja redirecciones HTTP, por eso se debe incluir una barra final cuando se trata de directorios. Si  filename  comienza con &quot;ftp://&quot; (no es sensible a mayúsculas), se abre una conexión ftp hacia el servidor especificado y se devuelve un apuntador al archivo requerido. Si el servidor no soporta ftp en modo pasivo, esto fallará. Se pueden abrir archivo via ftp para leer o para escribir (pero no ambas cosas simultáneamente). Si filename no comienza con nada de lo anterior, el archivo se abre del sistema dearchivos, y se devuelve un apuntador al archivo abierto si el abrir el archivo falla, la función devuelve false.
Trabajo con ficheros mode  puede ser cualquiera de lo siguiente: •  'r'  - Abre para sólo lectura; sitúa el apuntador del archivo al comienzo del mismo. •  'r+'  - Abre para lectura y escritura; sitúa el apuntador del archivo al comienzo del archivo. •  'w'  - Abre para sólo escritura; sitúa el apuntador del archivo al comienzo del archivo y trunca el archivo con longitud cero. Si el archivo no existe, trata de crearlo.
Trabajo con ficheros •  'w+'  - Abre el archivo para lectura y escritura; sitúa el apuntador del archivo al comienzo del archivo y trunca el archivo con longitud cero. Si el archivo no existe, trata de crearlo. •  'a'  - Abre sólo para escribir (añadir); sitúa el apuntador del archivo al final del mismo. Si el archivo no existe, trata de crearlo. •  'a+'  - Abre para lectura y escritura (añadiendo); sitúa el apuntador del  archivo al final del mismo. Si el archivo no existe, trata de crearlo.
Trabajo con ficheros fwrite fwrite -- Escribe archivos en modo binario Descripción int fwrite (int fp, string string [, int length]) fwrite() escribe el contenido de  string  al fichero apuntado por  fp . Si se da el argumento  length , la escritura acaba antes de que  length  bytes sean escritos o se alcance el  final de  string , lo que ocurra primero.
Trabajo con ficheros fread fread -- Lee archivos en modo binario Descripción string fread (int fp, int length) fread() lee hasta  length  bytes del apuntador de fichero referenciado por  fp . La lectura acaba cuando  length  bytes se han leído o se alcanza EOF, lo que ocurra primero. Hagamos un contador sencillo para nuestra web.
Trabajo con BD MySQL Para la creación de BD y tablas usaremos el phpmyadmin que es mas fácil de usar y mas interactivos, pero veremos como hacerlo del shell del sistema.
Trabajo con BD MySQL Conectándose y desconectándose al servidor MySQL Para conectarse al servidor, generalmente se necesita proveer a  MySQL  un nombre de usuario, y un password. Si el servidor corre en una máquina distinta a la que se está utilizando se debe especificar el nombre del host (máquina).  Cuando se conocen todos estos parámetros la conexión se realiza de la siguiente manera: shell> mysql -h host -u user -p Enter password:*********
Trabajo con BD MySQL Si la conexión se realizó con éxito,  mysql  despliega el siguiente mensaje: Welcome to the MySQL monitor. Commands end with; or\g. Your MySQL connection id is 459 to server version: 3.22.20a-log Type &quot;help&quot; for help. mysql>
Trabajo con BD MySQL El prompt indica que  mysql  está listo para recibir los comandos que ingrese el usuario. Algunas instalaciones de  MySQL  admiten usuarios  anonymous  (sin nombre) cuando el servidor corre en el host local.  En este caso, se debe invocar a el servidor  mysql  sin ninguna opción: shell>mysql Una vez que se ha realizado la conexión con éxito, para desconectarse al servidor en cualquiera de los dos casos anteriores se debe escribir  QUIT  o  control-D .
Trabajo con BD MySQL Creando y usando una base de datos Visualización de las bases de datos existentes en el servidor MySQL Antes de crear una base de datos, se debe conocer que base de datos existen actualmente en el servidor, para ello se utiliza el comando SHOW, de la siguiente manera: mysql> SHOW DATABASES;
Trabajo con BD MySQL +----------+ | Database | +----------+ | mysql | | test | | tmp | +----------+ Esta lista probablemente no es igual en todas las máquinas, pero las bases de datos  mysql  y  test  están siempre entre ellas. La base de datos  mysql  se requiere porque en ella se describe la información de los privilegios de acceso a los usuarios.
Trabajo con BD MySQL Selección de una base de datos Para seleccionar o acceder a una base de datos determinada se utiliza el comando USE: mysql> USE test Database changed Una vez, que se ha realizado la conexión con éxito se puede comenzar a trabajar con la base de datos, pero siempre y cuando se tengan los permisos adecuados.
Trabajo con BD MySQL Si no se tienen los permisos el administrador debe darle los permisos al usuario para poder trabajar, esto se realiza con la ejecución del siguiente comando: mysql> GRANT ALL ON nombre_database.* TO nombre_usuario;
Trabajo con BD MySQL Creación de una base de datos Para crear una base de datos se debe tener permiso para poder crear base de datos en el servidor MySQL , si se tiene el permiso entonces la sentencia a seguir es: mysql> CREATE DATABASE nombre_database; Bajo Unix, los nombres de las bases de datos y de las tablas son sensibles, esto quiere decir que se hace diferencia entre minúsculas y mayúsculas, así es que para referirse a una base de datos determinada hay que llamarla tal como se le nombro cuando fue creada.
Trabajo con BD MySQL Creación de tablas Para crear las tablas que va a contener la base de datos, se realiza de la siguiente forma: mysql> CREATE TABLE nombre_tabla(campo_1 tipo(tamaño), campo_2 tipo(tamaño),...,campo_n tipo(tamaño)); El  campo  indica el nombre de la columna y  tipo(tamaño)  específica el tipo de dato y el espacio que se va a conservar para cada dato almacenado en esa columna.
Trabajo con BD MySQL Ejemplo: codigo int(5), nombre char(25), fecha date, etc.. Cuando se trata de fechas no se específica el tamaño, puesto que ya está determinado. Para visualizar las tablas que tiene una base de datos se usa el mismo comando utilizado para ver las bases de datos, pero con la diferencia de que en vez de  database  se coloca  tables , es decir:
Trabajo con BD MySQL mysql> SHOW TABLES; Para verificar que la tabla ha sido creada de la forma indicada, se usa el comando  DESCRIBE. Ejemplo: Se va a crear una tabla llamada  clientes , de la siguiente forma: mysql> CREATE TABLE clientes( rut char(8),nombre char(25), direccion char(50), telefono int(10)); mysql> DESCRIBE clientes;
Trabajo con BD MySQL +----------+-----------+------+-----+--------+-------+ | Field | Type | Null | Key | Default| Extra | +----------+-----------+------+-----+--------+-------+ | rut | char(12) | YES | | NULL | | | nombre | char(25) | YES | | NULL | | | direccion| char(50) | YES | | NULL | | | telefono | int(10) | YES | | NULL | | +----------+-----------+------+-----+--------+-------+
Trabajo con BD MySQL Esto es muy útil cuando se olvida el nombre o tipo de una columna. El  Field  indica el nombre de la columna,  Type  es el tipo de dato que acepta esa columna,  Null  indica si la columna puede contener valores NULL,  Key  indica la clave por la cual la columna se va a indexar y  Default  específica el valor por defecto que tiene la columna.
Trabajo con BD MySQL Ingreso de Datos a las tablas Para ingresar información a una tabla se puede hacer básicamente de dos maneras. La primera se utiliza cuando se tiene mucha información a ingresar de una sola vez,  entonces es conveniente almacenar esta información en un archivo de texto, es decir,  .txt . Una vez que se tiene este archivo, se procede de la siguiente forma: mysql> LOAD DATA LOCAL INFILE &quot;nombre_archivo.txt&quot; INTO TABLE nombre_tabla;
Trabajo con BD MySQL Para el caso que se desee ingresar un solo registro, entonces la sentencia a seguir es: mysql> INSERT INTO nombre_tabla VALUES (``valor_1'',''valor_2'',...., Los datos a ingresar se separan por comas y van entre comillas. Estos datos indican los valores que va a tomar cada una de las columnas, según el orden en que fueron creadas. En el caso que se quiera ingresar un valor NULL no es necesario las comillas, sólo se coloca NULL.
Trabajo con BD MySQL Recuperación de la Información Para recuperar la información que está contenida en una tabla, la sentencia general a seguir es: mysql> SELECT qué_es_lo_que_se_desea_ver FROM nombre_tabla WHERE condiciones_a_satisfacer; Para los casos en que, se requiera: o Ver o seleccionar toda la información de una tabla: o mysql> SELECT * FROM nombre_tabla; o Seleccionar filas en particular: o mysql> SELECT * FROM nombre_tabla WHERE nombre_columna=&quot;lo que se desee buscar&quot;
Trabajo con BD MySQL o Seleccionar columnas en particular: o mysql> SELECT nombre_columna_1, nombre_columna_n FROM nombre_tabla; Esto es conveniente cuando no se desea ver toda la fila o registro, entonces solo se seleccionan aquellas columnas en las que se esté interesado. .
Trabajo con BD MySQL Creación de una bd y su tabla.. Desde el shell CREATE TABLE tablacurso ( id tinyint(3) unsigned NOT NULL auto_increment, nombre varchar(30) DEFAULT '0' , direccion varchar(30) DEFAULT '0' , telefono varchar(30) DEFAULT '0' , email varchar(30) DEFAULT '0' , imagen varchar(30) DEFAULT '0' , PRIMARY KEY (id) );
Trabajo con BD MySQL Conectar desde php <?php $link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); if (!$link) {    die('Could not connect: ' . mysql_error()); } echo 'Connected successfully'; mysql_close($link); ?>

Más contenido relacionado

PPT
Desarrollando Una Mejor Experiencia De Usuario Con Ajax
juliocasal
 
PDF
php
nfjs001
 
PPTX
Presentación de zan php
Carlos Zantana
 
PPTX
Introduccion A Php
uts
 
PPT
Manual+php+básico
Santiago L Caballero Navia
 
PPT
Servidor De Prueba (Wamp Y Php)Presentacion
uts
 
PDF
Tutorial - REST con java (JAX-RS 2.0)
Abimael Desales López
 
PPT
Curso php y_my_sql
Carlos Lozano Zapata
 
Desarrollando Una Mejor Experiencia De Usuario Con Ajax
juliocasal
 
php
nfjs001
 
Presentación de zan php
Carlos Zantana
 
Introduccion A Php
uts
 
Manual+php+básico
Santiago L Caballero Navia
 
Servidor De Prueba (Wamp Y Php)Presentacion
uts
 
Tutorial - REST con java (JAX-RS 2.0)
Abimael Desales López
 
Curso php y_my_sql
Carlos Lozano Zapata
 

La actualidad más candente (19)

PDF
Servicios web Extendido_error perl
Octavio Izucar Martinez
 
PPTX
Framework Laravel
Rafael Lobo
 
PDF
Programacion - Php
PROD LARD
 
PDF
MAnual de php básico
Cleote
 
PDF
Manual Completo Php 5
Pablo Morales
 
DOCX
Html,php
softyed
 
PPTX
Practica09
SamanthaLizethRangel
 
PDF
4.Programación con PHP y MySQL
Ramiro Estigarribia Canese
 
PDF
Servicios web
Laura Cortes
 
PDF
Servicios web java php-perl-google
Josue Hernandez
 
PDF
Manual de PHP Basico
Carlos Zantana
 
PDF
Curso php y_mysql
Vero Pailiacho
 
PPT
Phpmyadmin
Lady Rincon
 
PDF
7/9 Curso JEE5, Soa, Web Services, ESB y XML
Juan Carlos Rubio Pineda
 
PDF
Servicios web java, php, perl, google
Octavio Izucar Martinez
 
PDF
Mis primeros pasos con Symfony 2
Edgar Dueñas
 
PPT
Adentrándonos al Framework Symfony
Rodrigo Miranda
 
PDF
Curso Php
larasaregune
 
PPTX
Php ppt
Pepe Avelar
 
Servicios web Extendido_error perl
Octavio Izucar Martinez
 
Framework Laravel
Rafael Lobo
 
Programacion - Php
PROD LARD
 
MAnual de php básico
Cleote
 
Manual Completo Php 5
Pablo Morales
 
Html,php
softyed
 
4.Programación con PHP y MySQL
Ramiro Estigarribia Canese
 
Servicios web
Laura Cortes
 
Servicios web java php-perl-google
Josue Hernandez
 
Manual de PHP Basico
Carlos Zantana
 
Curso php y_mysql
Vero Pailiacho
 
Phpmyadmin
Lady Rincon
 
7/9 Curso JEE5, Soa, Web Services, ESB y XML
Juan Carlos Rubio Pineda
 
Servicios web java, php, perl, google
Octavio Izucar Martinez
 
Mis primeros pasos con Symfony 2
Edgar Dueñas
 
Adentrándonos al Framework Symfony
Rodrigo Miranda
 
Curso Php
larasaregune
 
Php ppt
Pepe Avelar
 
Publicidad

Destacado (20)

PPTX
Comandos básicos para bases de datos mysql y workbench
Robedgar MX
 
PPTX
PPH MySql - FIEI - UNFV Clase02
Eddye Arturo Sanchez Castillo
 
PPTX
PHP MySql FIEI - UNFV Clase05
Eddye Arturo Sanchez Castillo
 
PPTX
PHP MySql - FIEI - UNFVClase06
Eddye Arturo Sanchez Castillo
 
PPTX
Programacion de SQL y MySQL
huritomo1998
 
PPT
Mysql
luis espejel
 
PDF
Ejemplos de php_mysql
I LG
 
PPTX
PHP MySql - FIEI - UNFV Clase07
Eddye Arturo Sanchez Castillo
 
PPTX
PHP MySql - FIEI - UNFV Clase03
Eddye Arturo Sanchez Castillo
 
PPT
PHP Y MYSQL
Edgar Pauta
 
PDF
Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+
Victor Aravena
 
PPTX
PHP MYSQL - FIEI-UNFV Clase 01
Eddye Arturo Sanchez Castillo
 
PPT
Curso TIC de PHP y MSQL Parte 2
Wilian
 
PDF
desarrolo de sitios web php y mysql
Juan Timoteo Cori
 
PPT
Php.y.my sql
Rosendo Salazar
 
PDF
2685008 taller-java
jairjulian
 
PDF
Guardar en base de datos MySQL desde HTML con PHP.
yanburbano
 
PPT
Tema4[php]
mpsergiomp
 
DOCX
Procedimiento de creacion de archivo php
Clau Doria
 
PPT
Curso TIC de PHP y MSQL Parte 3
Wilian
 
Comandos básicos para bases de datos mysql y workbench
Robedgar MX
 
PPH MySql - FIEI - UNFV Clase02
Eddye Arturo Sanchez Castillo
 
PHP MySql FIEI - UNFV Clase05
Eddye Arturo Sanchez Castillo
 
PHP MySql - FIEI - UNFVClase06
Eddye Arturo Sanchez Castillo
 
Programacion de SQL y MySQL
huritomo1998
 
Ejemplos de php_mysql
I LG
 
PHP MySql - FIEI - UNFV Clase07
Eddye Arturo Sanchez Castillo
 
PHP MySql - FIEI - UNFV Clase03
Eddye Arturo Sanchez Castillo
 
PHP Y MYSQL
Edgar Pauta
 
Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+
Victor Aravena
 
PHP MYSQL - FIEI-UNFV Clase 01
Eddye Arturo Sanchez Castillo
 
Curso TIC de PHP y MSQL Parte 2
Wilian
 
desarrolo de sitios web php y mysql
Juan Timoteo Cori
 
Php.y.my sql
Rosendo Salazar
 
2685008 taller-java
jairjulian
 
Guardar en base de datos MySQL desde HTML con PHP.
yanburbano
 
Tema4[php]
mpsergiomp
 
Procedimiento de creacion de archivo php
Clau Doria
 
Curso TIC de PHP y MSQL Parte 3
Wilian
 
Publicidad

Similar a Curso TIC de PHP y MSQL (20)

PPT
Curso TIC de PHP y MSQL Parte 1
Wilian
 
DOCX
C. comparativo servidores & servicios
Kozmo Hernan
 
PDF
Apache
Xavier
 
PPT
PHP IUTE
guestefc95b
 
PDF
Presentacion
jhormanvalencia1
 
PDF
Presentacion
jhormanvalencia1
 
PPTX
Taller php9
KevinAlexanderOcampo
 
PDF
introducción a base de datos MySQL
Javier Gutierrez
 
PPTX
15 servidor php
Jorge Isai Alvarez
 
PDF
M1 introduccion a php
EDUARDLARA1
 
PPTX
Taller php
JuanEstebanAriasGonz
 
PPTX
Taller php
jennifermontoya26
 
PPTX
Taller php 03 septiembre
daninazarit
 
PPTX
Taller php 03 septiembre
daninazarit
 
DOCX
Investigación Lenguaje Php Eduardo Flores
Jhoel Dgez Garcia
 
PPT
PHP
jgbd127
 
PDF
Lenguaje de Programación PHP
Jomicast
 
PPTX
Servidor PHP
Jennifer Amador Martinez
 
Curso TIC de PHP y MSQL Parte 1
Wilian
 
C. comparativo servidores & servicios
Kozmo Hernan
 
Apache
Xavier
 
PHP IUTE
guestefc95b
 
Presentacion
jhormanvalencia1
 
Presentacion
jhormanvalencia1
 
introducción a base de datos MySQL
Javier Gutierrez
 
15 servidor php
Jorge Isai Alvarez
 
M1 introduccion a php
EDUARDLARA1
 
Taller php
jennifermontoya26
 
Taller php 03 septiembre
daninazarit
 
Taller php 03 septiembre
daninazarit
 
Investigación Lenguaje Php Eduardo Flores
Jhoel Dgez Garcia
 
PHP
jgbd127
 
Lenguaje de Programación PHP
Jomicast
 

Último (20)

PDF
Trabajo Tecnología #2 Periodo (2).pdfjdjfjf
ssuser57b6e41
 
PDF
Solución actividad de Diagrama de Pareto
MaraJos722801
 
PDF
Distribución de frecuencias y Diagrama de Pareto en Exce (2).pdf
samuelcuaran
 
PDF
actividad tecnologia periodo 1 2025 (1).pdf
jjfch3110
 
PDF
2do grado medios de transportes.pdf para el primario
AndreaAlegre18
 
PDF
actividad tecnologia (1).pdflksjksIUQWDIUWEGDHI
anavallejo2323
 
PPTX
CamposFlores_Fernando_M1S3AI6-PrepaLineaSEP
231464482
 
PDF
Tecnología 2.0 (1).pdf, diagrama de pareto
paulavallejo21
 
PDF
El candado imposible de abrir | Seguridad máxima explicada - Revista Técnica ...
Cerrajero 365 Valencia
 
PDF
Documentos Básicos De Programación.pdf.
kathedelgadoarredond
 
PDF
DIAGRAMA DE PARETO M. Camila Duque Loaiz
MariacamilaDuqueloai
 
PDF
Tecnología. Programación pseint 10-7 Sol Riaño Támara
edepsolriano
 
PDF
Excel avanzado trabajo grupal tecnologia
mapaulahiguita
 
PDF
Estructuras básicas Conceptos básicos de programación.pdf
sdbdsamuel
 
PDF
Problema de pareto resuelto iandanielpdf
IanDanielGiraldoRami
 
PDF
Trabajo Tecnología Diagrama De Pareto.pdf
srsantiagof09
 
PDF
Distribución de Frecuencias Excel Eleazar Muñoz
Eleazar88
 
PDF
Liceo departamental MICRO BIT (1).pdfslksjshshwuwjwjjdjdjshshs
edepanaobando
 
PPTX
Actividad integradora 6 Crear un archivo multimedia
susana0271
 
PDF
VelezOrtiz_Yadira_M1S3AI6 Presentación digital
Yadira Elizabeth Vélez Ortiz
 
Trabajo Tecnología #2 Periodo (2).pdfjdjfjf
ssuser57b6e41
 
Solución actividad de Diagrama de Pareto
MaraJos722801
 
Distribución de frecuencias y Diagrama de Pareto en Exce (2).pdf
samuelcuaran
 
actividad tecnologia periodo 1 2025 (1).pdf
jjfch3110
 
2do grado medios de transportes.pdf para el primario
AndreaAlegre18
 
actividad tecnologia (1).pdflksjksIUQWDIUWEGDHI
anavallejo2323
 
CamposFlores_Fernando_M1S3AI6-PrepaLineaSEP
231464482
 
Tecnología 2.0 (1).pdf, diagrama de pareto
paulavallejo21
 
El candado imposible de abrir | Seguridad máxima explicada - Revista Técnica ...
Cerrajero 365 Valencia
 
Documentos Básicos De Programación.pdf.
kathedelgadoarredond
 
DIAGRAMA DE PARETO M. Camila Duque Loaiz
MariacamilaDuqueloai
 
Tecnología. Programación pseint 10-7 Sol Riaño Támara
edepsolriano
 
Excel avanzado trabajo grupal tecnologia
mapaulahiguita
 
Estructuras básicas Conceptos básicos de programación.pdf
sdbdsamuel
 
Problema de pareto resuelto iandanielpdf
IanDanielGiraldoRami
 
Trabajo Tecnología Diagrama De Pareto.pdf
srsantiagof09
 
Distribución de Frecuencias Excel Eleazar Muñoz
Eleazar88
 
Liceo departamental MICRO BIT (1).pdfslksjshshwuwjwjjdjdjshshs
edepanaobando
 
Actividad integradora 6 Crear un archivo multimedia
susana0271
 
VelezOrtiz_Yadira_M1S3AI6 Presentación digital
Yadira Elizabeth Vélez Ortiz
 

Curso TIC de PHP y MSQL

  • 1. PHP & MySQL Ing. Antonio J. Hdez. Blanco. Mail: [email_address] Ing. Wilian Arroba Mail: [email_address]
  • 2. Contenido del curso Introducción e instalación de PHP y MySQL Programación con PHP. Almacenamiento de la información en ficheros y BD. Funciones de RED. Ejemplos de aplicaciones php y mysql.
  • 3. Contenido Breve historia del PHP. Qué es PHP? Cómo funcionan las páginas en PHP? Instalación de PHP en W2k y *nix. Qué es MySQL? Instalación de MySQL.
  • 4. Corta historia de PHP PHP es un lenguaje creado por una gran comunidad de personas. El sistema fue desarrollado originalmente en el año 1994 por Rasmus Lerdorf como un CGI escrito en C que permitía la interpretación de un número limitado de comandos. El sistema fue denominado Personal Home Page Tools y adquirió relativo éxito gracias a que otras personas pidieron a Rasmus que les permitiese utilizar sus programas en sus propias páginas.
  • 5. Corta historia de PHP Dada la aceptación del primer PHP y de manera adicional, su creador diseñó un sistema para procesar formularios al que le atribuyó el nombre de FI (Form Interpreter) y el conjunto de estas dos herramientas, sería la primera versión compacta del lenguaje: PHP/FI.
  • 6. Corta historia de PHP La siguiente gran contribución al lenguaje se realizó a mediados del 97 cuando se volvió a programar el analizador sintáctico, se incluyeron nuevas funcionalidades como el soporte a nuevos protocolos de Internet y el soporte a la gran mayoría de las bases de datos comerciales.
  • 7. Corta historia de PHP Todas estas mejoras sentaron las bases de PHP versión 3. Actualmente PHP se encuentra en su versión 5, que utiliza el motor Zend, desarrollado con mayor meditación para cubrir las necesidades actuales y solucionar algunos inconvenientes de la anterior versión.
  • 8. Corta historia de PHP Algunas mejoras de esta nueva versión son su rapidez -gracias a que primero se compila y luego se ejecuta, mientras que antes se ejecutaba mientras se interpretaba el código-, su mayor independencia del servidor Web -creando versiones de PHP nativas para más plataformas- y un API más elaborado y con más funciones.
  • 9. ¿Qué es PHP? El lenguaje PHP es un lenguaje de programación de estilo clásico, es decir, es un lenguaje de programación con variables, sentencias condicionales, ciclos (bucles), funciones…. No es un lenguaje de marcado como podría ser HTML, XML o WML. Está más cercano a JavaScript o a C, para aquellos que conocen estos lenguajes.
  • 10. ¿Qué es PHP? Pero a diferencia de JavaScript que se ejecuta en el navegador, PHP se ejecuta en el servidor, por eso nos permite acceder a los recursos que tenga el servidor como por ejemplo podría ser una base de datos. El programa PHP es ejecutado en el servidor y el resultado enviado al navegador. El resultado es normalmente una página HTML pero igualmente podría ser una pagina XML.
  • 11. ¿Qué es PHP? Al ser PHP un lenguaje que se ejecuta en el servidor no es necesario que su navegador lo soporte, es independiente del browser, pero sin embargo para que las páginas PHP funcionen, el servidor donde están alojadas debe soportar PHP.
  • 13. ¿Qué se necesita para que funcione PHP? En sistemas Operativos Windows: Versión compilada de PHP. (http://www.php.net). Un servidor Web (Apache, PWS, IIS, Etc.). En sistemas Operativos Linux: Versión en fuente para compilar e instalar. (http://www.php.net) Servidor Web (Apache). En versión fuente para compilar e instalar. ( http://www.apache.org ) O instalar desde los CDs de la distro que se use.
  • 14. Qué es MySQL? Administrador de Base de Datos Una base de datos es un conjunto de datos estructurados. Esto podría ser cualquier cosa, desde una simple lista de compras hasta una galería de pinturas o la gran cantidad de información que se maneja en una corporación. Para agregar, acceder y procesar los datos almacenados en una base de datos computacional, se necesita un sistema administrador de base de datos tal como MySQL.
  • 15. Qué es MySQL? Además los computadores son muy buenos manejando grandes cantidades de datos, el administrador de base de datos juega un rol central en la computación, ya sea como utilidad autónoma o parte de otra aplicación.
  • 16. Qué es MySQL? Sistema administrador de base de datos relacionales Una base de datos relacional almacena datos en tablas separadas, más bien colocando todos los datos en un gran almacén. Esto agrega velocidad y flexibilidad. Las tablas son enlazadas por relaciones definidas haciendo posible combinar datos desde varias tablas solicitadas.
  • 17. Qué es MySQL? El SQL forma parte de MySQL, conocido como Lenguaje de Consultas Estructurado, es el lenguaje estandarizado más común usado para acceder base de datos. Software de Fuente Abierta Fuente abierta significa que es posible que pueda ser usado y modificado por cualquiera. Alguien puede bajar MySQL desde Internet y usar éste sin tener que pagar nada.
  • 18. Qué es MySQL? Alguien puede estudiar el código fuente y cambiarlo de acuerdo a sus necesidades. MySQL usa el GPL de la GNU, para definir lo que se puede hacer con el software en diferentes situaciones.
  • 19. Uso de MySQL? MySQL es muy rápido, seguro y fácil de usar. MySQL también ha desarrollado un conjunto de características muy prácticas, en estrecha cooperación con otros usuarios. MySQL fue desarrollado para manejar grandes bases de datos mucho más rápido que las soluciones existentes y ha sido usado exitosamente en ambientes de producción con altas demandas, por varios años. Aunque está bajo un desarrollo constante.
  • 20. Uso de MySQL? MySQL siempre ofrece conjunto de funciones muy poderoso y eficiente. La conectividad, velocidad y seguridad hace de MySQL una suite poderosa para acceder a bases de datos en Internet.
  • 21. Uso de MySQL? MySQL es un sistema Cliente/Servidor que consta de un servidor SQL multi-hilo que soporta diferentes backends, variados programas cliente y de librerías, administrador de herramientas y un programa de interface. MySQL contribución para muchos de los software disponibles. Es mucho más probable que se encuentre que diversas aplicaciones ya soportan MySQL
  • 22. Uso de MySQL? Ventajas de MySQL: • La mejor y más usada base de datos en el mundo. • Disponible y Accesible para todos • Fácil de usar • Se está perfeccionando continuamente mientras permanece rápida y segura. • Divertida para usar y perfeccionar. • Libre de molestias.
  • 23. Uso de MySQL? Características principales de MySQL A continuación se describen algunas de las características más importantes de MySQL: • Escrito en C y C++, testado con GCC 2.7.2.1. Usa GNU autoconf para portabilidad. • Clientes C, C++, Eiffel,PHP,Python,JAVA, Perl, TCL. • Multiproceso, es decir puede usar varias CPU si éstas están disponibles.
  • 24. Uso de MySQL? • Puede trabajar en distintas plataformas y S.O. distintos. • Sistema de contraseñas y privilegios muy flexible y segura. • Todas la palabras de paso viajan encriptadas en la red. • Registros de longitud fija y variable. • 16 índices por tabla, cada índice puede estar compuesto de 1 a 15 columnas o partes de ellas con una longitud máxima de 127 bytes.
  • 25. Uso de MySQL? • Todas las columnas pueden tener valores por defecto. • Utilidad Isamchk para chequear, optimizar y reparar tablas. • Todos los datos están grabados en formato ISO8859_1. • Los clientes usan TCP o UNIX Socket para conectarse al servidor. • Todos los comandos tienen -help o -? Para las ayudas.
  • 26. Uso de MySQL? • Soporta diversos tipos de columnas como enteros de 1, 2, 3, 4, y 8 bytes, coma flotante, doble precisión, carácter, fechas, enumerados, etc. • ODBC para Windows 95 (con fuentes), se puede utilizar ACCESS para conectar con el servidor. • Muy rápida usando joins, optimizada para un barrido multi-joins.
  • 27. Uso de MySQL? Todas las funciones y operadores soportan en el SELECT y WHERE como partes de consultas. Ejemplo: mysql> SELECT CONCAT(nombre,&quot; &quot;,apellido) FROM nombre_tabla WHERE ingreso >10000 AND edad >30 Todas las cláusulas SQL soportan GROUP BY y ORDER BY.
  • 28. ¿Instalación de MySQL? En sistemas Operativos Windows: Versión compilada de mysql (http://www.mysql.com). º111 En sistemas Operativos Linux: Versión en fuente para compilar e instalar. (http://www.mysql.com) O instalar desde los CDs de la distro que se use.
  • 29. Contenido UN PROGRAMA DE EJEMPLO VARIABLES Y CONSTANTES OPERADORES SENTENCIAS CONDICIONALES IF –ELSE . SWITCH SENTENCIAS REPETITIVAS FOR WHILE DO – WHILE
  • 30. PRIMER PROGRAMA <HTML> <HEAD> <TITLE>Primer Ejemplo de PHP</TITLE> </HEAD> <BODY> <?php echo “Hola mundo PHP”; ?> </BODY> </HTML> Guarde el archivo con el nombre de primer.php
  • 31. PRIMER PROGRAMA Todo script PHP empieza con <?php que le indica al browser que se trata de una página con código php embebido y termina con ?> La mayoría de las instrucciones php terminan con ; La instrucción echo sirve para desplegar texto en la página web, también se puede substituir por print. Así la instrucción echo “Hola mundo, php”; indica que dentro de la página web se incrustará este mensaje.
  • 32. VARIABLES Y CONSTANTES Todos los nombres de las variables empiezan con el carácter $ Los nombres de las variables no pueden empezar con números ni caracteres especiales. La forma de declarar una variable es así $MiVariable Aunque no se le asigna tipo de dato, la variable tomará el tipo de dato que contenga el valor que se le asigne. Tipos de Datos int float double string array object
  • 33. VARIABLES Y CONSTANTES Así una forma de crear una variable con tipo de datos es: $MiEntero=100; $MiCadena=“Chino”; Además podemos realizar una conversión de tipos con las siguientes funciones doubleval (cadena a real) inval (cadena a entero) strval (número a cadena) Ejemplo: $Micad=“1235”; $MiReal=intval($Micad); Otras funciones útiles son: isset(variable); - checa si una variable existe o no empty(variable); - checa si una variable no tiene asignado un valor. settype(variable, tipo); - asigna un tipo de dato a una variable. gettype(variable); - devuelve el tipo de dato de una variable unset(variable); elimina variables
  • 34. VARIABLES Y CONSTANTES Por otro lado, para crear constantes se utiliza la función: define(nombre constante, valor); Ejemplo: define(“PI”,3.1515926); Para comprobar si la constante existe o esta definida, se utiliza la función: defined(constante); Por ejemplo: defined(“PI”); devuelve verdadero si la constante PI existe
  • 35. OPERADORES Aritméticos = (asignación) + (suma) - (resta) * (multiplicación) / (división) % (resto de la división entera) Operador= por ejemplo $a+=$b es equivalente a $a=$a+$b Variable++ (incremento) Variable– (decremento) Comparativos == (igualdad) < (menor que) > (mayor que) <= (menor o igual que) >= (mayor o igual que) != (distinto de) === (comparación de valor y tipo) Lógicos ! (negación) && (and) || (or) Cadenas . (concatenación)
  • 36. SENTENCIA IF - ELSE En PHP la sentencia IF se utiliza como sigue: If (condición) { código si se cumple la condición } else { código sino se cumple la condición } Ejemplo: <?php $x=3; $y=2; if ($x == $y) { print ( “tanto y como x son iguales”); } else { print (“son diferentes”); } ?>
  • 37. SENTENCIA SWITCH Como ya sabemos el switch sirve para conmutar entre varias opciones, en php seutiliza como sigue: switch(variable) { opción1:código para opción1; break ; opción2:código para opción2; break; ...... opciónN:código para opciónN; break; default: código para la opción por defecto; break; }
  • 38. EJEMPLO SWITCH <?php $a=3; switch($a) { 1:print(“estamos en la opción uno”); break; 2:print(“estamos en la opción dos”); break; 3:print(“estamos en la opción tres”); $a--; break; default:print(“No hay opciones”); } Print(“Valor de a” . $a); ?>
  • 39. CICLO FOR Igual que el lenguaje C, el ciclo for se implementa así: for (valor de inicio;condición;incremento / decremento) { código a repetir } Ejemplo: <?php print(“iniciando cuenta atrás...”); $a=10; for($a;$a>=0;$a--) { print(“\$a =$a<br>”); } ?>
  • 40. BUCLE WHILE La implementación del bucle while en php es así: while (condición) { código a repetir } Ejemplo: <?php $a=0; print(“Cuenta hacia delante...”); while($a<=10) { print(“\$a =$a<br>”); } ?>
  • 41. BUCLE DO - WHILE Igual que C, php tamién cuenta con un ucle do – while do { código a repetir} while (condición); Ejemplo: <?php $valor1=3; $valor2=0; do { print ($valor1.” x” . $valor2 . “ = “ .$valor1*$valor2); $valor2++; }while($valor2>=10); ?>
  • 42. Tablas - Vectores Las tablas (o array en inglés), son muy importantes en PHP, ya que generalmente, las funciones que devuelven varios valores, como las funciones ligadas a las bases de datos, lo hacen en forma de tabla. En PHP disponemos de dos tipos de tablas. El primero sería el clásico, utilizando índices:
  • 43. Tablas - Vectores <?php $ciudad[] = &quot;París&quot;; $ciudad[] = &quot;México&quot;; $ciudad[] = &quot;Roma&quot;; $ciudad[] = &quot;Sevilla&quot;; $ciudad[] = &quot;Londres&quot;; print (&quot;yo vivo en &quot; . $ciudad[1] . &quot;<BR>\n&quot;); ?>
  • 44. Tablas - Vectores Esta es una forma de asignar elementos a una tabla, pero una forma más formal es utilizando la función array <?php $ciudad = array(&quot;París&quot;, &quot;Roma&quot;, &quot;Sevilla&quot;, &quot;Londres&quot;); //contamos el número de elementos de la tabla $numelentos = count($ciudad); //imprimimos todos los elementos de la tabla for ($i=0; $i < $numelentos; $i++) { print (&quot;La ciudad $i es $ciudad[$i] <BR>\n&quot;); } ?>
  • 45. Tablas - Vectores Sino se especifica, el primer índice es el cero , pero podemos utilizar el operador => para especificar el índice inicial.
  • 46. Tablas - Vectores Un segundo tipo, son las tablas asociativas , en las cuáles a cada elemento se le asigna un valor (key) para acceder a él. Para entenderlo, que mejor que un ejemplo, supongamos que tenemos una tabla en al que cada elemento almacena el número de visitas a nuestra web por cada día de la semana.
  • 47. Tablas - Vectores Utilizando el método clásico de índices, cada día de la semana se representaría por un entero, 0 para lunes, 1 para martes, etc. $visitas[0] = 200; $visitas[1] = 186; Si usamos las tablas asociativas sería $visitas[&quot;lunes&quot;] = 200; $visitas[&quot;martes&quot;] = 186; o bien, $visitas = array(&quot;codigo&quot;>$visitas = array(&quot;lunes&quot;=>200; &quot;martes&quot;=>186);
  • 48. Tablas - Vectores Ahora bien, recorrer una tabla y mostrar su contenido es sencillo utilizando los índices, pero ¿cómo hacerlo en las tablas asociativas?. La manipulación de las tabas asociativas se a hace través de funciones que actúan sobre un puntero interno que indica la posición. Por defecto, el puntero se sitúa en el primer elemento añadido en la tabla, hasta que es movido por una función:
  • 49. Tablas - Vectores current - devuelve el valor del elemento que indica el puntero pos - realiza la misma función que current reset - mueve el puntero al primer elemento de la tabla end - mueve el puntero al último elemento de la tabla next - mueve el puntero al elemento siguiente prev - mueve el puntero al elemento anterior count - devuelve el número de elementos de una tabla.
  • 50. Tablas - Vectores <?php $semana = array(&quot;lunes&quot;, &quot;martes&quot;, &quot;miércoles&quot;, &quot;jueves&quot;, &quot;viernes&quot;, &quot;sábado&quot;, &quot;domingo&quot;); echo count($semana); //7 //situamos el puntero en el primer elemento reset($semana); echo current($semana); //lunes next($semana); echo pos($semana); //martes end($semana) echo pos($semana); //domingo prev($semana); echo current($semana); //sábado ?>
  • 51. Tablas - Vectores Recorrer una tabla con las funciones anteriores se hace un poco enredoso, para ello se recomienda utilizar la función each() . <?php $visitas = array(&quot;lunes&quot;=>200, &quot;martes&quot;=>186, &quot;miércoles&quot;=>190, &quot;jueves&quot;=>175); reset($visitas); while (list($clave, $valor) = each($visitas)) { echo &quot;el día $clave ha tenido $valor visitas<BR>&quot;; } ?>
  • 52. Tablas - Vectores La función each() devuelve el valor del elemento actual, en este caso, el valor del elemento actual y su clave, y desplaza el puntero al siguiente, cuando llega al final devuelve falso , y termina el bucle while() .
  • 53. Tablas multidimensionales Las tablas multidimensionales son simplemente tablas en las cuales cada elemento es a su vez otra tabla. <?php $calendario[] = array (1, &quot;enero&quot;, 31); $calendario[] = array (2, &quot;febrero&quot;, 28); $calendario[] = array (3, &quot;marzo&quot;, 31); $calendario[] = array (4, &quot;abril&quot;, 30); $calendario[] = array (5, &quot;mayo&quot;, 31);
  • 54. Tablas multidimensionales while (list($clave, $valor ) = each($calendario)){ { $cadena = $valor[1]; $cadena .= &quot; es el mes número &quot; . $valor[0]; $cadena .= &quot;y tiene &quot; . $varlor[2] . &quot; días<BR>&quot;; echo $cadena; } ?> La función list() es más bien un operador de asignación, lo que hace es asignar valores a unas lista de variables. En este caso los valores son extraídos de una tabla por la función each() .
  • 55. Formularios Los Formularios no forman parte de PHP, sino del lenguaje estándar de Internet, HTML, pero como éstos van a aparecer muchas veces durante el curso, vamos a dedicar esta algunas líneas a ellos. Todo formulario comienza con la etiqueta <FORM ACTION=&quot;lo_que_sea.php&quot; METHOD=&quot;post/get&quot;> . Con ACTION indicamos el script que va procesar la información que recogemos en el formulario, mientras que METHOD nos indica si el usuario del formulario va ha enviar datos ( post ) o recogerlos ( get ).
  • 56. Formularios La etiqueta </FORM> indica el final del formulario. A partir de la etiqueta <FORM> vienen los campos de entrada de datos que pueden ser: Botón de comando: <input type=&quot;submit&quot; value=&quot;enviar&quot; name=&quot;enviar&quot;> Cuadro de texto: <input type=&quot;text&quot; name=&quot;nombre&quot; size=&quot;20&quot; value=“chino&quot;> Veamos los ejemplos de formularios.
  • 57. Contenido clase # 3 Almacenamiento de la información. Ficheros… Bases de Datos…
  • 58. Trabajo con ficheros fopen fopen -- Abre un archivo o una URL Descripción int fopen (string filename, string mode [, int use_include_path]) Si filename comienza con &quot;http://&quot; (no es sensible a mayúsculas), se abre una conexión HTTP 1.0 hacia el servidor especificado y se devuelve un apuntador de archivo al comienzo del texto de respuesta.
  • 59. Trabajo con ficheros No maneja redirecciones HTTP, por eso se debe incluir una barra final cuando se trata de directorios. Si filename comienza con &quot;ftp://&quot; (no es sensible a mayúsculas), se abre una conexión ftp hacia el servidor especificado y se devuelve un apuntador al archivo requerido. Si el servidor no soporta ftp en modo pasivo, esto fallará. Se pueden abrir archivo via ftp para leer o para escribir (pero no ambas cosas simultáneamente). Si filename no comienza con nada de lo anterior, el archivo se abre del sistema dearchivos, y se devuelve un apuntador al archivo abierto si el abrir el archivo falla, la función devuelve false.
  • 60. Trabajo con ficheros mode puede ser cualquiera de lo siguiente: • 'r' - Abre para sólo lectura; sitúa el apuntador del archivo al comienzo del mismo. • 'r+' - Abre para lectura y escritura; sitúa el apuntador del archivo al comienzo del archivo. • 'w' - Abre para sólo escritura; sitúa el apuntador del archivo al comienzo del archivo y trunca el archivo con longitud cero. Si el archivo no existe, trata de crearlo.
  • 61. Trabajo con ficheros • 'w+' - Abre el archivo para lectura y escritura; sitúa el apuntador del archivo al comienzo del archivo y trunca el archivo con longitud cero. Si el archivo no existe, trata de crearlo. • 'a' - Abre sólo para escribir (añadir); sitúa el apuntador del archivo al final del mismo. Si el archivo no existe, trata de crearlo. • 'a+' - Abre para lectura y escritura (añadiendo); sitúa el apuntador del archivo al final del mismo. Si el archivo no existe, trata de crearlo.
  • 62. Trabajo con ficheros fwrite fwrite -- Escribe archivos en modo binario Descripción int fwrite (int fp, string string [, int length]) fwrite() escribe el contenido de string al fichero apuntado por fp . Si se da el argumento length , la escritura acaba antes de que length bytes sean escritos o se alcance el final de string , lo que ocurra primero.
  • 63. Trabajo con ficheros fread fread -- Lee archivos en modo binario Descripción string fread (int fp, int length) fread() lee hasta length bytes del apuntador de fichero referenciado por fp . La lectura acaba cuando length bytes se han leído o se alcanza EOF, lo que ocurra primero. Hagamos un contador sencillo para nuestra web.
  • 64. Trabajo con BD MySQL Para la creación de BD y tablas usaremos el phpmyadmin que es mas fácil de usar y mas interactivos, pero veremos como hacerlo del shell del sistema.
  • 65. Trabajo con BD MySQL Conectándose y desconectándose al servidor MySQL Para conectarse al servidor, generalmente se necesita proveer a MySQL un nombre de usuario, y un password. Si el servidor corre en una máquina distinta a la que se está utilizando se debe especificar el nombre del host (máquina). Cuando se conocen todos estos parámetros la conexión se realiza de la siguiente manera: shell> mysql -h host -u user -p Enter password:*********
  • 66. Trabajo con BD MySQL Si la conexión se realizó con éxito, mysql despliega el siguiente mensaje: Welcome to the MySQL monitor. Commands end with; or\g. Your MySQL connection id is 459 to server version: 3.22.20a-log Type &quot;help&quot; for help. mysql>
  • 67. Trabajo con BD MySQL El prompt indica que mysql está listo para recibir los comandos que ingrese el usuario. Algunas instalaciones de MySQL admiten usuarios anonymous (sin nombre) cuando el servidor corre en el host local. En este caso, se debe invocar a el servidor mysql sin ninguna opción: shell>mysql Una vez que se ha realizado la conexión con éxito, para desconectarse al servidor en cualquiera de los dos casos anteriores se debe escribir QUIT o control-D .
  • 68. Trabajo con BD MySQL Creando y usando una base de datos Visualización de las bases de datos existentes en el servidor MySQL Antes de crear una base de datos, se debe conocer que base de datos existen actualmente en el servidor, para ello se utiliza el comando SHOW, de la siguiente manera: mysql> SHOW DATABASES;
  • 69. Trabajo con BD MySQL +----------+ | Database | +----------+ | mysql | | test | | tmp | +----------+ Esta lista probablemente no es igual en todas las máquinas, pero las bases de datos mysql y test están siempre entre ellas. La base de datos mysql se requiere porque en ella se describe la información de los privilegios de acceso a los usuarios.
  • 70. Trabajo con BD MySQL Selección de una base de datos Para seleccionar o acceder a una base de datos determinada se utiliza el comando USE: mysql> USE test Database changed Una vez, que se ha realizado la conexión con éxito se puede comenzar a trabajar con la base de datos, pero siempre y cuando se tengan los permisos adecuados.
  • 71. Trabajo con BD MySQL Si no se tienen los permisos el administrador debe darle los permisos al usuario para poder trabajar, esto se realiza con la ejecución del siguiente comando: mysql> GRANT ALL ON nombre_database.* TO nombre_usuario;
  • 72. Trabajo con BD MySQL Creación de una base de datos Para crear una base de datos se debe tener permiso para poder crear base de datos en el servidor MySQL , si se tiene el permiso entonces la sentencia a seguir es: mysql> CREATE DATABASE nombre_database; Bajo Unix, los nombres de las bases de datos y de las tablas son sensibles, esto quiere decir que se hace diferencia entre minúsculas y mayúsculas, así es que para referirse a una base de datos determinada hay que llamarla tal como se le nombro cuando fue creada.
  • 73. Trabajo con BD MySQL Creación de tablas Para crear las tablas que va a contener la base de datos, se realiza de la siguiente forma: mysql> CREATE TABLE nombre_tabla(campo_1 tipo(tamaño), campo_2 tipo(tamaño),...,campo_n tipo(tamaño)); El campo indica el nombre de la columna y tipo(tamaño) específica el tipo de dato y el espacio que se va a conservar para cada dato almacenado en esa columna.
  • 74. Trabajo con BD MySQL Ejemplo: codigo int(5), nombre char(25), fecha date, etc.. Cuando se trata de fechas no se específica el tamaño, puesto que ya está determinado. Para visualizar las tablas que tiene una base de datos se usa el mismo comando utilizado para ver las bases de datos, pero con la diferencia de que en vez de database se coloca tables , es decir:
  • 75. Trabajo con BD MySQL mysql> SHOW TABLES; Para verificar que la tabla ha sido creada de la forma indicada, se usa el comando DESCRIBE. Ejemplo: Se va a crear una tabla llamada clientes , de la siguiente forma: mysql> CREATE TABLE clientes( rut char(8),nombre char(25), direccion char(50), telefono int(10)); mysql> DESCRIBE clientes;
  • 76. Trabajo con BD MySQL +----------+-----------+------+-----+--------+-------+ | Field | Type | Null | Key | Default| Extra | +----------+-----------+------+-----+--------+-------+ | rut | char(12) | YES | | NULL | | | nombre | char(25) | YES | | NULL | | | direccion| char(50) | YES | | NULL | | | telefono | int(10) | YES | | NULL | | +----------+-----------+------+-----+--------+-------+
  • 77. Trabajo con BD MySQL Esto es muy útil cuando se olvida el nombre o tipo de una columna. El Field indica el nombre de la columna, Type es el tipo de dato que acepta esa columna, Null indica si la columna puede contener valores NULL, Key indica la clave por la cual la columna se va a indexar y Default específica el valor por defecto que tiene la columna.
  • 78. Trabajo con BD MySQL Ingreso de Datos a las tablas Para ingresar información a una tabla se puede hacer básicamente de dos maneras. La primera se utiliza cuando se tiene mucha información a ingresar de una sola vez, entonces es conveniente almacenar esta información en un archivo de texto, es decir, .txt . Una vez que se tiene este archivo, se procede de la siguiente forma: mysql> LOAD DATA LOCAL INFILE &quot;nombre_archivo.txt&quot; INTO TABLE nombre_tabla;
  • 79. Trabajo con BD MySQL Para el caso que se desee ingresar un solo registro, entonces la sentencia a seguir es: mysql> INSERT INTO nombre_tabla VALUES (``valor_1'',''valor_2'',...., Los datos a ingresar se separan por comas y van entre comillas. Estos datos indican los valores que va a tomar cada una de las columnas, según el orden en que fueron creadas. En el caso que se quiera ingresar un valor NULL no es necesario las comillas, sólo se coloca NULL.
  • 80. Trabajo con BD MySQL Recuperación de la Información Para recuperar la información que está contenida en una tabla, la sentencia general a seguir es: mysql> SELECT qué_es_lo_que_se_desea_ver FROM nombre_tabla WHERE condiciones_a_satisfacer; Para los casos en que, se requiera: o Ver o seleccionar toda la información de una tabla: o mysql> SELECT * FROM nombre_tabla; o Seleccionar filas en particular: o mysql> SELECT * FROM nombre_tabla WHERE nombre_columna=&quot;lo que se desee buscar&quot;
  • 81. Trabajo con BD MySQL o Seleccionar columnas en particular: o mysql> SELECT nombre_columna_1, nombre_columna_n FROM nombre_tabla; Esto es conveniente cuando no se desea ver toda la fila o registro, entonces solo se seleccionan aquellas columnas en las que se esté interesado. .
  • 82. Trabajo con BD MySQL Creación de una bd y su tabla.. Desde el shell CREATE TABLE tablacurso ( id tinyint(3) unsigned NOT NULL auto_increment, nombre varchar(30) DEFAULT '0' , direccion varchar(30) DEFAULT '0' , telefono varchar(30) DEFAULT '0' , email varchar(30) DEFAULT '0' , imagen varchar(30) DEFAULT '0' , PRIMARY KEY (id) );
  • 83. Trabajo con BD MySQL Conectar desde php <?php $link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); if (!$link) {    die('Could not connect: ' . mysql_error()); } echo 'Connected successfully'; mysql_close($link); ?>