Manual Técnico Índice Introducción ¿Que es una pagina dinámica? ¿Qué es HTML? ¿Que es Php? Ventajas: ¿Qué es MySQL? Características ¿Qué es Apache HTTP Server? Instalación de AppServ, Apache, PHP y MySQL en Windows Creación de bases de datos MySQL M ySQL Funciones de Php TRABAJANDO CON HTML, MySQL Y PHP
Conectar a MySQL desde PHP Mostrar los datos de una consulta
Modificar registros de nuestra base de datos Un buscador para nuestra base de datos Añadir registros a nuestra base de datos Borrar registros de nuestra base de datos HOSTING O ALOJAMIENTO WEB
Concepto Servicios de hosting Tipos de hosting
Introducción El objetivo de este Manual Técnico es explicar los recursos que se utilizaron para la creación del sistema el cual esta realizado como una pagina web dinámica: como son HTML, Php, Mysql, Apache HTTP Server. Así como la instalación de cada uno de estos. Posteriormente este Manual asume que tanto HTML, Php, Mysql, Apache HTTP Server estan instalados así como un navegador navegador web está instalado en alguna máquina. También se hace referencia a las funciones f unciones de Php requeridas para el acceso a Servidor de base de datos Mysql. Además también se explican los (querys) o consultas que se utilizaron en el sistema como son INSERT, DELETE, REPLACE o UPDATE . A continuación se describe el proceso completo de creación del sistema. Puesto que es imposible que se describan a detalle muchos de los temas cubiertos aquí, se recomienda que se consulten los manuales de HTML, Php, Mysql, Apache HTTP Server para obtener más información al respecto.
¿Que es una pagina dinámica? Las paginas web dinámicas son paginas HTML generadas a partir de lenguajes de programación (scripts) que son ejecutadas en el propio servidor web. A diferencia de otros scrits Se conoce con el nombre de página web dinámica a aquélla, cuyo contenido se genera a partir de lo que un usuario introduce en un web o formulario. El contenido de la página no está incluido en un archivo html como en el caso de las páginas web estáticas. Las aplicaciones más conocidas de las páginas web dinámicas son: Mostrar el contenido de una base de datos, con base en la información que solicita un usuario a través de un formulario de web. Actualizar el contenido de una base de datos. Generar páginas web de contenido estático. Mejorar la interacción entre el usuario y el sitio web.
¿Qué es HTML? HTML, HyperText Markup Language, es un lenguaje simple utilizado para crear documentos de hipertexto para WWW. No es un lenguaje de descripción de página como Postcript; HTML no permite definir de forma estricta la apariencia de una página, aunque una utilización algo desviada hace que se utilice en ocaciones como un lenguaje de presentación. Además, la presentación de la página es muy dependiente del browser (o programa navegador) utilizado: el mismo documento no produce el mismo resultado en la pantalla si se visualiza con un browser en modo línea, Mosaic o Netscape, o sea, HTML se limita a describir la estructura y el contenido de un documento, y no el formato de la página y su apariencia. Una de las claves del éxito de WWW, aparte de lo atractivo de su presentación es sin duda, su organización y coherencia. Todos los documentos WWW comparten un mismo aspecto y una única interfaz, lo que facilita enormemente su manejo por parte de cualquier persona. Esto es posible porque el lenguaje HTML, en que están escritos los documentos, no solo permite establecer hiperenlaces entre diferentes documentos, sino que es un "lenguaje de descripción de página" independiente de la plataforma en que se utilice. Es decir un documento HTML contiene toda la información necesaria sobre su aspecto y su interacción con el usuario, y es luego el browser que utilicemos el responsable de asegurar que el documento tenga un aspecto coherente, independientemente del tipo de estación de trabajo desde donde estemos efectuando la consulta. Su simplicidad es tal que no es necesario utilizar un editor particular. Su gran permisividad exige rigor y atención en la estructura de documentos con el fin de que éstos se visualicen correctamente al margen del contexto y el browser utilizado.
¿Que es Php? (Preprocesador de hipertexto) PHP es un lenguaje de programación interpretado ampliamente usado y que está diseñado especialmente para desarrollo web y puede ser incrustado dentro de código HTML. Generalmente se ejecuta en un servidor web, donde PHP es la entrada y creando páginas web como salida. Puede ser desplegado en la mayoría de los servidores web y en casi todos los sistemas operativos y plataformas sin costo alguno.
Ventajas: Es un lenguaje multiplataforma Capacidad de conexión con bases de datos, destaca su conectividad con MySQL Posee una amplia documentación Es libre y Permite las técnicas de Programación Orientada a Objetos
¿Qué es MySQL? MySQL es un sistema de administración de bases de datos. Una base de datos es una colección estructurada de tablas que contienen datos. Esta puede ser desde una simple lista de compras a una galería de pinturas o el vasto volumen de información en una red corporativa. Para agregar, acceder a y procesar datos guardados en un computador, usted necesita un administrador como MySQL Server. Dado que los computadores son muy buenos manejando grandes cantidades de información, los administradores de bases de datos juegan un papel central en computación, como aplicaciones independientes o como parte de otras aplicaciones. MySQL es un sistema de administración relacional de bases de datos. Una base de datos relacional archiva datos en tablas separadas en vez de colocar todos los datos en un gran archivo. Esto permite velocidad y flexibilidad. Las tablas están conectadas por relaciones definidas que hacen posible combinar datos de diferentes tablas sobre pedido. MySQL es software de fuente abierta. Fuente abierta significa que es posible para cualquier persona usarlo y modificarlo. Cualquier persona puede bajar el código fuente de MySQL y usarlo sin pagar. Cualquier interesado puede estudiar el código fuente y ajustarlo a sus necesidades. MySQL usa el GPL (GNU General Public License) para definir que puede hacer y que no puede hacer con el software en diferentes situaciones. Si usted no se ajusta al GPL o requiere introducir código MySQL en aplicaciones comerciales, usted puede comprar una versión comercial licenciada.
Características Amplio subconjunto del lenguaje SQL. Algunas extensiones son incluidas igualmente. Disponibilidad en gran cantidad de plataformas y sistemas. Diferentes opciones de almacenamiento según si se desea velocidad en las operaciones o el mayor número de operaciones disponibles. Transacciones y claves foráneas. Conectividad segura. Replicación. Búsqueda e indexación de campos de texto.
¿Qué es Apache HTTP Server? Ya que a veces , nuestro trabajo como programadores, nos requiere tener algún lugar donde desarrollar y probar nuestros scripts, antes de subirlos al servidor. De forma practica, podemos instalar el servidor Apache para desarrollar en PHP; así mismo un gestor de base de datos, que nos permita hacer consultas SQL, siendo MySQL, el mas apropiado.
Apache HTTP Server es un servidor web que forma parte del llamado Proyecto Apache, un grupo formado por programadores voluntarios de todo el mundo que trabajan unidos en un mismo proyecto de software. s oftware. El Proyecto Apache ha desarrollado diversas aplicaciones entre las que se encuentra este servidor web. El Apache HTTP Server es un servidor robusto, de múltiples características y funcionalidades y de código libre. Esta versión está especialmente diseñada para trabajar con Windows, aunque Apache HTTP Server trabaje al máximo nivel en sistemas Unix.
Para utilizar Apache HTTP Server necesitas: Sistema operativo: Win95/98/98SE/Me/2000/NT/XP/Vista
DESARROLLO Instalacion AppServ, Apache, PHP y MySQL en Windows AppServ es un software que nos permite instalar sobre Windows: Apache, PHP, MySQL y phpMyAdmin (interfaz gráfica para administrar MySQL) de forma conjunta. Es una aplicación muy útil para empezar a familiarizarnos con Gestores de Contenidos, aprender a configurarlos e instalarlos, ya que nos permite realizar pruebas sobre nuestro PC y una vez que dominemos el tema podemos decidirnos a comprar un dominio y un alojamiento. Primero que todo si no tenemos el programa de instalación lo podemos descargar de su página oficial (http://www.appservnetwork.com ). Luego de tener el software, lo ejecutamos, esperamos la precarga y aparece la ventana de bienvenida:
Hacemos clic en Next y nos aparece la ventana en donde escogemos la ruta de instalación, la que aparece por defecto es: C:\Appserv, esta ruta se recomienda dejarla así:
Hacemos clic en Next, y ahora me pide escoger el tipo de instalación, por defecto la dejaremos en Typical, además de esto me muestra la cantidad de espacio en disco que necesito y la cantidad de espacio que poseo realmente, si el espacio requerido es mayor que el que se tiene, se puede cambiar la ruta de instalación o liberar espacio en disco:
Luego hacemos clic en Next y me aparece a continuación la pantalla de configuración del servidor: En “Server Name” colocamos como vamos a llamar al Appserv desde nuestro explorador de Internet, comúnmente se coloca localhost, pero si ustedes quieres pueden colocar el nombre de una pagina web, pero no lo recomiendo. El “Administrator’s Email” se deja asi como aparece o colocan una dirección de email. El campo “HTTP Port” no se molesta para nada:
Ok, hacemos clic en Next y ahora necesitamos configurar la segunda parte del servidor que es el acceso:
En el campo “User Name” debemos colocar un nombre de usuario cualquiera, personalmente siempre uso: root. En el campo “Password” va una contraseña que no es obligatoria, personalmente siempre dejo el campo vacío, y el “Charset” se deja por defecto en latin1.
Y listo, luego dejamos que el proceso de instalación termine, dejamos las 2 opciones que se muestran activas, damos clic en Close, esperamos, y ya tenemos nuestro Appserv montado en nuestro PC.
Creación de bases de datos MySQL Ahora como ya tenemos instalado el Appserv, voy a explicar uno de sus usos, que es la creación de Bases de Datos MySQL. El procedimiento que se debe seguir es el siguiente: Primero que todo abrimos el explorador de Internet y en la barra de direcciones escribimos: localhost, y presionamos Enter.
Funciones de Php Estas son algunas de las funciones de Php con la cual se puede acceder al servidor de bases de datos Mysql, las cuales fueron utilizadas en el sistema.
mysql_close: Cierra la conexión Mysql. int mysql_close(in [identificador del link] Esta función cierra la conexión permanente que mantiene el link. El parámetro es opcional. Si no se especifica, se cerrará la última conexión abierta. Si una conexión no se cierra, el script la cierra automáticamente al terminar su ejecución. Esta función no opera correctamente con las conexiones abiertas con la función mysql_pconnect().
Msql_connect: Abre una conexión a el servidor Mysql. Int mysql _connect(string[hostname string[username],string [password])
[:port][:/path/to/socket]],
Esta función establece una conexión a un servidor mysql. Todos los argumentos son opcionales y los valores por defecto son localhost, el usuario dueño del proceso, sin password. Si realizas dos veces una llamada a esta función con los mismos parámetros, devuelve el mismo identificador que para la llamada anterior. Todas las conexiones terminan al terminar la ejecución del script, a no ser que se elimine la conexión llamando a la función mysql_close().
Mysql_db_query: Realiza una consulta a una base de datos. Int mysql_db_query(string database, string query, int [identificador del link] Selecciona la base de datos database y ejecuta una consulta. Si no se especifica el link, utiliza el último abierto, si no existe, intenta optener uno llamando internamente a la función mysql_connect() sin argumentos.
Mysql_error: Devuelve el mensaje de error asociado a un código concreto relacionado con la última operación MySql realizada.
String mysql_error(int [identificador del link] Devuelve la cadena asociada a un error que posee el identificador de conexión que se especifica.
Mysql_fetch_array: Introduce el resultado en un array asociativo. array mysql_fetch_array mysql_fetch_array(int (int result, int [result type]) Esta función es una versión extendida de mysql_fetch_row(). Lo que hace es almacenar el resultado en un array indexado, almacenando así los datos en un índice asociativo utilizando los nombres de los campos como claves. Si existen más de una columna con el mismo nombre, tendrá precedencia la última columna. Para acceder a lal otras columnas con el mismo nombre, se debe indexar la columna o hacerun alias para ella.
Mysql_num_fields: Otiene el número de campos del resultado. Int mysql_num_fields(int result); Devuelve el número de campos que contiene el parámetro resultado.
Mysql_num_rows:Obtiene el numero de lineas del resultado. Int mysql_num_rows(int result) Devuelve el número de líneas que contiene el parámetro resultado.
Mysql_query: Envia una consulta SQL a MySQL. Int mysql_query(string query, int [identificador del link] ) Envía una consulta a una base de datos activa en el servidor asociado al link que se especifica. En el caso de que no se especifique ninguna conexión abierta, la función intenta reestablecer una conexión con la función mysql_connect(). La cadena de la consulta, debe terminar con ; . La función devuelve TRUE o FALSE si la consulta tiene éxito. Si el valor devuelto es TRUE, significa que la consulta puede ser realizada, no que existan datos que respondan a esa consulta. Para consultar cuantas líneas responden a esa consulta, se puede utilizar la función mysql_affecter_rows() y nos dirá cuantas líneas se han visto afectadas por la última operación INSERT, DELETE, REPLACE o UPDATE . En el caso de tratarse de una operación SELECT la función mysql_query() devuelve un identificador de resultado que se puede utilizar con la función mysql_result().
Mysql result: Obtiene los resultados. Int mysql_result(int result, int row, mixed [field] )
Devuelve el contenido de una celda de la tabla dinámica que devuelve MySql como resultado de una operación previa. El último argumento es opcional y puede contener el desplazamiento del campo que se desea obtener, el nombre del campo o algo como tabla.campo o el alias del campo que se desee consultar si se establecio previamente. Cuando se trabaja con amplios conjuntos de resultados, es mejor utilizar alguna de las funciones que extraen un registro de esa consulta. Hay que tener cuidado de no hacer llamadas a funciones que obtienen resultados de result junto con esta función, puesto que el puntero que va leyendo de los resultados, puede perderse.
TRABAJANDO CON HTML, MySQL Y PHP
Conectar a MySQL desde PHP Ya tenemos datos en nuestra BD, así que con el siguiente script nos conectaremos a la BD del servidor MySQL para obtener los datos de un registro. Conexión al MySQL "; echo "Dirección: ".mysql_result($result, 0, "direccion")."
"; echo "Teléfono :".mysql_result($result, 0, "telefono")."
"; echo "E-Mail :".mysql_result($result, 0, "email")."
"; ?>
En la primera línea del script nos encontramos con la función mysql_connect(), que abre una conexión con el servidor MySQL en el Host especificado (en este caso la misma máquina en la que está alojada el servidor MySQL,localhost). También debemos especificar un usuario (nobody, root, etc. ), y si fuera necesario un password para el usuario indicado (mysql_connect("localhost", "root", "clave_del_root")). El resultado de la conexión es almacenado en la variable $link. Con mysql_select_db() PHP le dice al servidor que en la conexión $link nos queremos conectar a la base de datos mydb. Podríamos establecer distintas conexiones a la BD en diferentes servidores, pero nos conformaremos con una.
La siguiente función mysql_query(), es la que hace el trabajo duro, usando el identificador de la conexión ($link), envía una instrucción SQL al servidor MySQL para que éste la procese. El resultado de ésta operación es almacenado en la variable $result. Finalmente, mysql_result() es usado para mostrar los valores de los campos devueltos por la consulta ($result). En este ejemplo mostramos los valores del registro 0, que es el primer registro, y mostramos el valor de los campos especificados.
Mostrar los datos de una consulta Ahora que ya sabemos conectar con el servidor de BD, veremos como mostrar los datos por pantalla. Consulta de la BD \n"; echo "
Nombre | E-Mail |
\n"; while ($row = mysql_fetch mysql_fetch_row($result _row($result)){ )){ echo ""
$ "" |
$row[0] | < row[0]$row[1]< td>$row[1] |
/td> \n"; } echo " \n"; ?>
En este script hemos introducido dos novedades, la más obvia es la sentencia de control while(), que tiene un funcionamiento similar al de otros lenguajes, ejecuta una cosa mientras la condición sea verdadera. En esta ocasión while() evalua la función mysql_fetch_row(), que devuelve un array con el contenido del registro actual (que se almacena en $row) y avanza una posición en la lista de registros devueltos en la consulta SQL. La función mysql_fetch_row() tiene un pequeño problema, es que el array que devuelve sólo admite referencias numéricas a los campos obtenidos de la consulta. El primer campo referenciado es el 0, el segundo el 1 y así sucesivamente. En el siguiente script solucionaremos este pequeño inconveniente.
Consulta modificada de BD \n"; echo "
Nombre | E-Mail |
\n"; do { echo "
".$row["nombre"]." | ".$row["email"]." |
\n"; } while ($row = mysql_fetch_array($result)); echo " \n"; } else { echo "¡ No se ha encontrado ningún registro !"; } ?>
Esencialmente, este script hace lo mismo que el anterior. Almacenamos en $row el registro actual con la función mysql_fetch_array() que hace exactamente lo mismo que mysql_fetch_row(), con la exepción que podemos referenciar a los campos por su nombre ($row["email"]), en vez de por un número. Con la sentencia if/else, asignamos a $row el primer registro de la consulta, y en caso de no haber ninguno (else) mostramos un mensaje ("No se ha encontrado..."). Mientras que con la sentencia do/while, nos aseguramos que se nos muestren todos los registros devueltos por la consulta en caso de haber más de uno. Hay que destacar la utilización del punto (.), como operador para concatenar cadenas.
Un buscador para nuestra base de datos Vamos a ver una aplicación, un ejemplo, de todo lo visto hasta ahora. Escribiremos un script que sirva para buscar una determinada cadena (que recibiremos de un formulario, y la almacenamos en la variable $buscar), dentro de nuestra base de datos, concretamente dentro del campo "nombre". En primer lugar escribiremos el texto HTML de la página web que nos servirá como formulario de entrada, la llamaremos formulario.htm.
Formulario entrada
El siguiente script de busqueda lo llamaremos buscador.php3, y será el encargado de hacer la búsqueda en la BD, y devolver por pantalla los registros encontrados.
Script búsqueda \n"; exit; } $link = mysql_conne mysql_connect("localhos ct("localhost", t", "nobody"); mysql_select_db("mydb", $link); $result = mysql_query("SELECT * FROM agenda WHERE nombre LIKE '%$buscar%' ORDER BY nombre", $link); if ($row = mysql_fetch_array($result)){ echo "
\n"; //Mostramos los nombres de las tablas echo " \n"; while ($field = mysql_fetch mysql_fetch_field($resu _field($result)){ lt)){ echo "$field->name | \n"; } echo "
\n"; do { echo " \n"; echo "".$row["id"]." | \n"; echo "".$row["nombre"]." | \n"; echo "".$row["direccion"]." | \n"; echo "".$row["telefono"]." | \n"; echo "".$row["email"]." | \n"; echo "
\n"; } while ($row = mysql_fetch_array($result)); echo "
\n"; } else { echo "¡ No se ha encontrado ningún registro !"; } ?>