Вы находитесь на странице: 1из 48

Libro Digital PHP & MySQL

1
Libro Digital PHP & MySQL

Presentacin

En el trascurso de estos aos hemos visto como han evolucionado las tecnologas,
Internet es parte de nuestra actividad diaria, para las empresas representa un
medio atractivo y barato de presentar sus servicios o productos.

Muchos piensan que implementar una solucin para Internet requiere altos costos
de inversin, adquisicin de equipos, software, personal altamente capacitado, etc.
Indicadores que desaniman a muchos, para nuestra economa necesitamos
soluciones de bajo costo al alcance de la pequea y mediana industria asi como del
sector educativo el cual representa la mayor proporcin de nuestro mercado.

La alternativa que proponemos tiene que ver con la concepcin del uso de software
libre, eso nos hace pensar inmediatamente en Linux, PHP y MySQL fueron
diseados para dicha plataforma. Conviene aclarar que Linux puede usarse de
muchas formas, como servidor web, o como sistema operativo de escritorio. Por
comodidad muchos prefieren usarlo como servidor y trabajar desde PCs de
escritorio basado en Windows. Mediante el libro procuramos transmitir la idea de
que con PHP no solo puede crear catlogos para el web, sino implementar
soluciones integrales para la empresa, por ejemplo sistemas de atencin al cliente,
inventarios, facturacion, contabilidad, etc. las ventajas son grandes, para empezar
los costos, propiamente no necesita de equipos, puede rentarlos (Hosting), no
necesita invertir en software pues es libre, es universal, es decir el gerente o dueo
de la empresa desde cualquier lugar del mundo tiene la posibilidad de acceder a la
informacin y ver por ejemplo la evolucin de sus ventas, los clientes se ven
beneficiados pues la asistencia puede ser en linea y desde cualquier lugar del
mundo.

Vale aclarar que el libro se ha escrito pensando en usuarios que trabajan sobre
Windows, a parte de PHP y MySQL, hemos evaluado ciertos programas y utilidades
algunos gratuitos que a nuestro criterio destacan. Para el aspecto de Diseo y
Desarrollo definitivamente la Suite de Macromedia MX representa la mejor
herramienta, vale la pena adquirirlo.

Veamos las caractersticas de ste pack de estudio:

Libro "Fundamentos de Programacin en PHP & MySQL", que resume todo el


contenido, de forma detallada y didctica.
Un CD con todos los ejemplos y aplicaciones, recursos y extensiones para las
prcticas
Acceso al curso "Fundamentos de Programacin en PHP & MySQL" en nuestra
Escuela Virtual de Alta Capacitacin.
Acceso a nuestros servidores.
Un polo

Plan de negocios

Concluido su estudio, estar en capacidad de implementar soluciones de negocio en


internet, automatizar procesos de su empresa, o dar inicio a la formacin de su
propia empresa. Hemos creado el plan "EducaVirtual", mediante el cual le
ofrecemos el respaldo tecnolgico a travs de nuestros servidores a la mitad del
costo normal.

2
Libro Digital PHP & MySQL

INDICE

EVOLUCIONES DE LOS NEGOCIOSELECTRONICOS


MARKETING POR INTERNET

CAPITULO 1
INTRODUCCIN
RESEA HISTRICA
INSTALANDO TODOS LOS RECURSOS
APACHE
INSTALACIN DE APACHE
PHP
INSTALACIN DE PHP
MYSQL
INSTALACIN DE MYSQL
SOLUCIN DE CONFLICTOS
OTRA ALTERNATIVA DE INSTALACIN
MI PRIMER EJEMPLO
EDITORES DE PROGRAMAS
EDITPLUS
ELEMENTOS DE FORMULARIO
BOTN SUBMIT
BOTN RESET
ATRIBUTOS COMUNES
CUADRO DE TEXTO
CUADRO DE PASSWORD
CASILLA DE VERIFICACIN
BOTONES DE RADIO
CONTROL OCULTO
LISTA DE SELECCIN SIMPLE
LISTA DE SELECCIN MLTIPLE
AREAS DE TEXTO
EL PAPEL DE JAVASCRIPT EN EL DISEO DE FORMULARIOS
EJERCICIOS

CAPITULO 2
INSERCION DEL CODIGO PHP
IMPRESION EN EL NAVEGADOR
LA ORDEN ECHO
LA ORDEN PRINTF
FIN DE LINEA
COMENTARIOS
VARIABLES
CONCATENACIN
TIPOS
DETERMINANDO EL TIPO DE VARIABLES
CONSTANTES
USO DE LAS CONSTANTES __FILE__ Y __LINE__ERROR COMUN
OPERADORES
OPERADORES MATEMTICOS
OPERADORES AUNTOINCREMENTO Y AUTODECREMENTO
OPERADORES LGICOS
ASIGNACIN, IGUALDAD E IDENTIDAD
OPERADORES DE COMPARACIN

3
Libro Digital PHP & MySQL

ATAJOS EN LA ASIGNACION
INSTRUCCIONES CONDICIONALES
ESTRUCTURA CONDICIONAL SIMPLE
FORMA SIMPLE, COMPLETA, EXTENDIDA
ESTRUCTURA CONDICIONAL MLTIPLE
ESTRUCTURA CONDICIONAL REPETITIVA
INSTRUCCIN WHILE
INSTRUCCION DO
BREAK AND CONTINUE
INSTRUCCIN FOR
ARREGLOS
ARREGLO NORMAL
ARREGLOS ASOCIATIVOS
ORDENANDO LOS ELEMENTOS DE UN ARREGLO
RSORT(ARREGLO)
SORT(ARREGLO)
ARSORT(ARREGLO)
ASOR(GRUPO_NO _ORDENADO)
KSORT(ARREGLO)
OTROS CLCULOS CON ARREGLOS
MAX(ARREGLO) Y MIN (ARREGLO)
ARREGLOS MULTIDIMENSIONALES
FUNCIONES PHP
FUNCIONES FECHA Y HORA
FUNCIONES CADENA
FUNCIONES NUMRICA
FUNCIONES DE USUARIO

CAPITULO 3
FORMULARIOS
ENVIOS DE DATOS DE UNA PGINA A OTRA
ENVO DE DATOS MEDIANTE UN FORMULARIO
MTODO POST
MTODO GET
ENVO DE DATOS MEDIANTE LA URL
VARIABLES PRE-DEFINIDAS
REDIRECCIONANDO A UNA PAGINA
ERROR FRECUENTE
ENVIO DE CORREO
ENVIANDO UN MENSAJE EN FORMATO DE TEXTO
ENVO DE CORREO EN FORMULARIO HTML
MANEJO DE ARCHIVOS
CONTADOR DE VISITAS GRFICO
DESCARGA DE ARCHIVOS
EJERCICIOS

CAPITULO 4
ADMINISTRACIN DE BASES DE DATOS CON MYSQL
CREACIN DE LAS BASES DE DATOS
MEDIANTE EL SHELL
CREANDO LA BASE DE DATOS
BORRANDO UNA BASE DATOS UTILIZANDO MYSQL
REVISANDO LAS BASES DE DATOS EXISTENTES
ABRIENDO UNA BASE DE DATOS
CREACIN DE TABLAS
TIPO DE CAMPO

4
Libro Digital PHP & MySQL

CAMPOS NUMRICOS
TIPOS DE CAMPOS NUMRICOS ENTEROS
TINYINT [(M)] [UNSIGNED] [ZEROFILL]
SMALLINT [(M)] [UNSIGNED] [ZEROFILL]
MEDIUMINT [(M)] [UNSIGNED] [ZEROFILL]
INT [(M)] [UNSIGNED] [ZEROFILL]
BIGINT [(M)] [UNSIGNED] [ZEROFILL]
NMEROS DE COMA FLOTANTE
FLOAT(*) [ZEROFILL]
FLOAT[(M,D)] [ZEROFILL]
DOUBLE[(M,D)] [ZEROFILL]
DECIMAL[(M[,D])] [ZEROFILL]
CAMPOS DE FECHA
DATE
DATETIME
TIME
YEAR YEAR(2) YEAR(4)
TIMESTAMP[(M)]
CAMPOS TIPO CADENA DE CARACTERES
CHAR(M)[BINARY]
VARCHAR(M)[BINARY]
TINYBLOB O TINYTEXT
MEDIUMBLOB O MEDIUMTEXT
LONGBLOB O LONGTEXT
HACIENDO CONSULTAS
CARGANDO DATOS A UNA TABLA
EXTRAYENDO INFORMACIN DE UNA TABLA
FUNCIONES MYSQL
FUNCIONES NUMRICOS
FUNCIONES DE FECHA
CLCULOS DE FECHA
TRABAJANDO CON VALORES NULL
USANDO CARACTERES COMODIN
CONTANDO FILAS
CONSIGUIENDO INFORMACIN SOBRE BASE DE DATOS Y TABLAS
PHPMYADMIN
CREANCIONDE LAS BASE DE DATOS
CREACION DE TABLAS
TRANSPORTANDO LA BASE DE DATOS
CREACION DE LA BASE DE DATOS.TIENDA
EJERCICIOS

CAPITULO 5
ACCESO A BASES DE DATOS MYSQL DESDE PHP
GENERACIN DE CONSULTAS
CONTANDO REGISTROS
USANDO ARREGLOS
REPOSICIONANDO EL PUNTERO
MOSTRANDO IMGENES EN FORMA DINMICA
LISTANDO LAS BASES DE DATOS
NUMRICO DE REGISTROS AFECTADOS
MOSTRANDO LA LONGITUD DE CADA FILA
CAPTURA DE ERRORES
USANDO TABLAS
OPERACIONES DE MANTENIMIENTO
INSERCIN DE NUEVOS ARTCULOS
MODIFICANDO UN ARTICULO

5
Libro Digital PHP & MySQL

BORRANDO UN ARTICULO
PAGINACIN DE RESULTADOS

CAPITULO 6
SESIONES
QU ES UNA SESIN?
VARIABLES DE SESION
FUNCIONES PARA EL MANEJO DE SESIONES
UN SIMPLE CONTADOR
PRIMER MODELO DE CARRITO
SEGUNDO MODELO DE CARRITO
EL CATLOGO DE ARTCULOS
AGREGANDO ARTICULOS A LA CANASTA DE COMPRAS
PAGAR LA CUENTA
MANTENIMIENTO DE PEDIDOS

CAPITULO 7
ACCESO A OTRAS BASES DE DATOS
CONECTANDO A BD EXTERNAS MEDIANTE ODBC
CREANDO EL DSN
CONECCIN A LA BASE DE DATOS ACCESS
DESCONEXIN
EJECUCIONES DE INSTRUCCIONES SQL
EJECUCIONES DE SENTENCIAS SQL
APPLICACIN: CLUB DE ADIESTRAMIENTO DE CANES
REGISTRO DE CANES
GRABANDO EL REGISTRO
OPCIONES DE BUSQUEDA
LISTA DE RESULTADOS
EDITAR DATOS DEL CAN
CONECTANDO A BD ORACLE
CONEXIN
MANIPULACIN DE TABLAS
EJECUCIN DE UNA CONSULTA
EJECUCIN DE INSTRUCCIONES SQL
EJECUCIN DE PROCEDIMIENTOS ALMACENADOS
ACCESO REMOTO A MYSQL MEDIANTE MYODBC
ABRIENDO A MYSQL REMOTAMENTE
ACCESO A LA BASE DE DATOS DESDE VISUAL FOXPRO
ACCESO A LA BASE DE DATOS DESDE VISUAL BASIC

CAPITULO 8
MACROMEDIA DREAMWEAVERMX Y LA EXTENCIJN PHAKT 2MX
DEFINIENDO EL SITE
LA INTERFAZ DEL TRABAJO
LA VENTANA DE CONTROLES
LA VENTANA DE PROPIEDADES
LA VENTANA DATA BINDINGS
LA VENTANA DE COMPORTAMIENTOS SERVER BEHAVIORS
MI PRIMER EJEMPLO
CREACIN DE UNA CONECCIN
CREACIN DE UN RECORDSET
UNA PANTALLA DE CONSULTA

6
Libro Digital PHP & MySQL

CAPITULO 9
COMPORTAMIENTOS
COMPORTAMIENTOS PARA EL DESPLAZAMIENTO DELPUNTERO
COMPORTAMIENTO PARA PAGINAR UNA LISTA
COMPORTAMIENTO PARA VER UNA PGINA DE DETALLE
COMPORTAMIENTO PARA EL MANTENIMIENTO DE REGISTROS
INSERTAR REGISTROS
ACTUALIZAR REGISTRO
BORRAR REGISTRO

CAPITULO 10
CONSULTAS COMPLEJAS (RECORDSET COMPLEJOS)
DESARROLLO DEL PROYECTO DE POSTALES
CREANDO RECORDSET CONDICIONADOS
ASIGNANDO VALORES A OBJETOS EN TIEMPO DE EJECUCIN
LA PRESENTACIN PRELIMINAR
ENVIO DE LA POSTAL
CREANDO RECORDSET COMPLEJOS

CAPITULO 11
QUE S UNA PASARELA DE PAGO?
CMO FUNCIONA?
QUE SIGNIFICA EL PROTOCOLO SSL DE 128 BITS?
PROVEEDORES
IMPLEMENTANDO UNA PASARELA DE PAGO CON 2CHECKOUT.COM
CONFIGURANDO LA CUENTA
CREACIN DEL CATLOGO CON CARRITO DE COMPRAS

CAPITULO 12
SERVIDORES
QU PUEDO HACER CON LINUX?
LINUX COMO SERVIDOR LAN
LINUX COMO SERVIDOR INTERNET
LINUX COMO ESTACIN DE TRABAJO
LINUX PARA USUARIOS FINALES
LINUX PARA DESAROLLADORES
ES LA MEJOR ALTERNATIVA DISPONER DE UN SERVIDOR PROPIO?
PUBLICANDO MI APLICACIN
SERVICIOS DE HOSTING
REGISTRO DE DOMINIO
VENTAJAS QUE OFRECE TENER DOMINIO PROPIO
DNDE REGISTRO MI DOMINIO?
VERIFICACIN DEL NOMBRE DE DOMINIO: WHOIS
COMO REGISTRO MI DOMINIO?
PROTECCIN DE DOMINIOS
RESOLUCIN DE CONFLICTOS

7
Libro Digital PHP & MySQL

Capitulo 1
INTRODUCCIN

LA FILOSOFIA DEL SOFTWARE LIBRE

Linus Torlvalds, creador de Linux fue el pionero que dio inicio a la filosofia del
Software libre, Linux no es un producto comercial. Est disponible, desde su
lanzamiento y, lo que es mejor, en su versin bruta. Es decir, est disponible el
"cdigo fuente", que es para el programador lo que la partitura para el msico y,
por lo tanto, mucho mejor que un disco, en el que no se puede cambiar nada, por
muy extraordinario que sea el msico.
Esta transparencia total ha permitido hacer de la elaboracin de Linux una obra
colectiva, en la que participan -via Internet- varios miles de personas. Slo por
amor al arte y al trabajo bien hecho. El mismo Torvalds slo ha escrito 50.000
lneas del cdigo de un total de 1 milln.

Bajo la mismo filosofia muchos productos han nacido en la web, denominandose


Software Libre u "Open Source". Dicha filosofia indica que todo Software Libre debe
proporcionar la libertad de:
Ejecutar el programa, para cualquier propsito;
Estudiar el funcionamiento del programa, y adaptarlo a sus necesidades;
Redistribuir copias;
Mejorar el programa, y poner sus mejoras a disposicin del pblico, para
beneficio de toda la comunidad.
Como consecuencia de estas 4 libertades, el Software Libre ofrece la libertad de
aprender, libertad de ensear, libertad de competir, libertad de expresin y libertad
de eleccin.
Linux, el servidor Apache, PHP, MySQL y otros productos forman parte de sta
filosofa?, efectivamente no requieren de licenciamiento, ni permisos, ni pago por
su uso.

8
Libro Digital PHP & MySQL

PHP = Hypertext Preprocessor


PHP son las siglas de Hypertext Preprocessor es un lenguaje interprete de alto nivel
que se inserta en pginas HTML a manera de scripts los cuales son ejecutados en el
servidor.
ejemplo:

ejemplo0101.php

<head>
<title>Mi primer ejemplo</title>
</head>
<body>
<B>Bienvenido a mi pgina </B>
<P>
<?php echo "Esto est hecho en PHP";
for ($k=1;$k<4;$k++){
echo "<H".$k.">Hola</H".$k.">";
}
?>
</body>

Por lo pronto no nos preocupemos por entender que hace el programa, la intension
es solo sealar la forma como se ha incrustado el script PHP dentro del documento
HTML, el inicio y el final del script PHP estan indicados por los marcadores "<?php"
y "?>" respectivamente.
Al momento que se guarde el archivo, deber tener la extensin ".php", el cual
indica al servidor que deber interpretar y traducir los scripts, una vez ejecutado el
resultado es enviado al navegador del cliente para ser mostrado. Debe visualizarse
algo asi:

9
Libro Digital PHP & MySQL

Si intentamos ver el codigo fuente, que genera la pgina, mediante el men Ver,
opcin Ver Cdigo fuente, obtendremos lo siguiente:
<head>
<title>Mi primer ejemplo</title>
</head>
<body>
<B>Bienvenido a mi pgina </B>
<P>
Esto est hecho en PHP
<H1>Hola</H1><H2>Hola</H2><H3>Hola</H3> </body>

Mediante este ejemplo se ha pretendido ilustrar que el cdigo escrito en PHP jams
podr ser visto en el navegador de un visitante, a l slo le llegar el resultado de
su ejecucin.

INSTALACIN DE APACHE

Veamos la secuencia para instalar el Servidor Apache en Windows 98/2000/XP:


1. Primero debe obtener una copia de Apache para Windows (se llama
apache_1_3_12_win32.exe), lo puede obetener de http://www.apache.org.
NOTA IMPORTANTE: Si tu Sistema Operativo es Windows 95 necesitar actualizar
Winsock2. Puede descargarlo a partir de:
http://www.microsoft.com/windows95/downloads/contents/WUAdminTools/S_WUN
etworkingTools/W95Sockets2/Default.asp, descarguelo y luego instalelo antes de
instalar PHP.
2. A continucion ejecute el archivo descargado, el proceso es muy sencillo,
conviene aceptar y dejar las opciones por defecto que se indica.

10
Libro Digital PHP & MySQL

3. Por defecto Apache se instala en la carpeta:


C:\Archivos de programa\Apache Group\Apache

Ahora nos pregunta que tipo de instalacin queremos. La opcin tpica es la


recomendada para la mayora de los usuarios.

11
Libro Digital PHP & MySQL

3. Ahora ubique la carpeta "conf", que se encuentra en la carpeta Apache, aqu se


guardan los archivos de configuracin. En este directorio se encuentra el archivo
"httpd.conf", aqui se define la configuracin que Apache utiliza al ejecutarse.

12
Libro Digital PHP & MySQL

4. Abra el archivo con el Bloc de Notas, ubique la lnea donde se indica:


"ServerName". Seguro que encontrar:
#ServerName "nombre de servidor por defecto"

Lo debe sustituir por:


ServerName localhost

5. Eso es todo, para iniciar el servidor apache, haga click en el botn Inicio, luego
Apache Web Server y finalmente Start Apache. Como respuesta obtendremos una
ventana MS-DOS, solo debe minimizar sta ventana

6 Para verificar que el servidor est funcionado correctamente, cargue su


navegador de internet y anote:
http://localhost
Si la instalacin fu correcta, nos presentar la ventana siguiente:

13
Libro Digital PHP & MySQL

Hemos comprobado entonces que mediante "localhost", iniciamos el servidor Web,


la palabra "localhost", invoca al archivo index.htm o index.php que se halla dentro
de la carpeta "C:\Archivos de programa\Apache Group\Apache\htdocs\",
cuando deba iniciar su proyecto web, deber crear dentro de sta carpeta una con
el nombre de su proyecto.

7. Por defecto Apache buscar las paginas alojadas en:


C:\Archivos de programa\Apache Group\Apache\htdocs\

Asi mismo Apache est configurado para que por defecto abra el archivo
index.html que se encuentre en el directorio que indiquemos. Asi que cuando en el
navegador anote: "http://localhost" el explorador cargar la pgina index.html
del directorio C:\Archivos de programa\Apache Group\Apache\htdocs\

EDITORES DE PROGRAMA

EditPlus

Para el desarrollo de los primeros capitulos usaremos el editor EditPlus para crear
nuestros programas (puedes bajarlo de www.editplus.com), lo interesante de ste
editor es que las etiquetas HTML las tenemos a la mano en una barra de
herramientas, asi que ya no se hace necesario escribirlas, ademas la numeracion de
las lineas ayuda en el proceso de depuracion del programa, ademas tiene una
opcion mediante la cual es posible crear plantillas de comandos usuales de PHP.

14
Libro Digital PHP & MySQL

Se usa para especificar el atributo de negrita, genera la etiqueta <B></B>


Se usa para especificar el atributo de italica, genera la etiqueta <I></I>
Se usa para especificar el atributo de subrayado, genera la etiqueta <U></U>
Se usa para especificar seleccionar un tipo y tamao de fuente, genera la
etiqueta <FONT SIZE="" COLOR=""></FONT>
Util para seleccionar un color, genera el codigo hexadecimal correspondiente al
color seleccionado a partir de la paleta que muestra

Al ejecutar el siguiente programa:

ejemplo0103.htm

<HEAD>
</HEAD>
<BODY>
<B>Esto est en negrita</B>
<I>esto en italica</I>
<U>aqui el subrayado</U>
<U><I><B>y esto tiene todos los atributos</B></I></U>
mi <FONT SIZE="4" COLOR="#FF00FF">nombre </FONT>
tiene una atributo de color y tamao de fuente, despues del retorno de
carro<BR>comienza otra linea.<P>
Este es un parrafo distinto
</BODY>

se obtiene:

15
Libro Digital PHP & MySQL

Este boton lo usara para dejar espacios en blanco, genera "&nbsp;"


Con este boton generamos los retornos de carro, equivale a la etiqueta <BR>
Este icono genera inicios de parrafo, equivale a la etiqueta <P>
Al presionar este boton se despliega una lista de tamaos muy usados para los
titulos y subtitulos desde el <H1> hasta el <H6>
Este boton se usar para insertar graficos, genera la etiqueta: <IMG
SRC="librosdigitales.gif" WIDTH="165" HEIGHT="44" BORDER=0 ALT="">
Este boton se usara para colocar hipervinculo, genera la etiqueta <A
HREF=""></A>

La siguiente pagina:

ejemplo0104.htm

<HEAD>
</HEAD>
<BODY>
<H1>Titulo</H1>
<H4>Subtitulo</H4>
Grafico <IMG SRC="librosdigitales.gif" WIDTH="165" HEIGHT="44"
BORDER=0 ALT="Libros de Tecnologia"><BR>
Ir a la pagina de <A
HREF="http://www.librosdigitales.net">LibrosDigitales.NET</A>
</BODY>

se vera as:

16
Libro Digital PHP & MySQL

Puede usar este boton para insertar una linea, genera la etiqueta <HR>
Esta etiqueta se usara para situar vietas
Muy util para dibujar tablas, genera las etiquetas para definir las filas y
columnas de la tabla
Muy util cuando se quiera centrar, genera la etiqueta <CENTER></CENTER>

El ejemplo:

ejemplo0105.htm

<HEAD>
</HEAD>
<BODY>
<CENTER>Ficha de inscripcion</CENTER>
<HR>
<TABLE>
<TR>
<TD>Codigo</TD>
<TD>Nombre</TD>
<TD>Edad</TD>
</TR>
<TR>
<TD>C0001</TD>
<TD>Jose Perez</TD>
<TD>15</TD>
</TR>
</TABLE>
</BODY>

Muestra:

17
Libro Digital PHP & MySQL

Las tablas nos permitiran mostrar los resultados de una forma mas ordenada.

Con este botn obtendr la etiqueta correcpondiente a un formulario


Este otro contiene la relacin de todos los objetos de formularios, tales como los
cuadros de texto, botones de opcion, casillas de verificacion, etc

Por ejemplo:

ejemplo0106.htm

<HEAD>
</HEAD>
<BODY>

Datos a enviar por correo <BR>


<FORM METHOD=POST ACTION="mailto:soporte@grapperu.com">
<INPUT TYPE="text" NAME="nombre">
<INPUT TYPE="submit">
</FORM>

</BODY>

Al ejecutar y presionar el boton Enviar, los datos indicados en el formulario


(nombre) sern enviados al correo soporte@grapperu.com

18
Libro Digital PHP & MySQL

Cuadro de texto

Un cuadro de texto se define mediante la etiqueta

<INPUT TYPE="text" NAME = "nombre" VALUE ="valor" SIZE=tamao


MAXLENGHT= tamao>

Esta etiqueta tiene parametros que definen la longitud de la ventana de texto


(SIZE).
El atributo MAXLENGTH define la mxima longitud de la cadena que se puede
escribir dentro de la ventana.

Ejemplo:

Definir un formulario que defina un cuadro de texto de longitud 40 y longitud


mxima de la cadena 30 para el nombre y de longitud 40 y longitud de la cadena
100 para el correo.

ejemplo0108.htm

<FORM ACTION="mailto:soporte@grapperu.com" METHOD="POST">


Ingrese su nombre:
<INPUT TYPE="TEXT" NAME="nombre" SIZE=40 MAXLENGHT=30>
<BR>
su correo:
<INPUT TYPE="TEXT" NAME="correo" SIZE=40 MAXLENGHT=100>
<BR>
<INPUT TYPE="RESET" VALUE="Borrar">
<INPUT TYPE="SUBMIT" VALUE="Enviar">
</FORM>

Como puede observar en este ejemplo, el nmero mximo de caracteres puede ser
mayor que el tamao de la ventana y viceversa.

19
Libro Digital PHP & MySQL

Casilla de verificacin

Se usar cuando se desee indicar un estado de entre dos, por ejemplo Soltero o
Casado, Credito o Contado, etc.

<INPUT TYPE="CHECKBOX" NAME="nombre" VALUE=valor>Texto

ejemplo0110.htm

<FORM ACTION="mailto:soporte@grapperu.com" METHOD="POST">


Ingrese su nombre:
<INPUT TYPE="TEXT" NAME="nombre" SIZE=40 MAXLENGHT=30>
<BR>
Estado Civil:
<INPUT TYPE="CHECKBOX" NAME="estado" VALUE=Soltero>Soltero
<BR>
Forma de pago:
<INPUT TYPE="CHECKBOX" NAME="forma" VALUE=Credito>Credito
<BR>
<INPUT TYPE="RESET" VALUE="Borrar">
<INPUT TYPE="SUBMIT" VALUE="Enviar">
</FORM>

20
Libro Digital PHP & MySQL

Botones de radio

Si debe elegirse una opcion de entre varias, el control apropiado es un juego de


botones de radio.

<INPUT TYPE="radio" NAME="nombre" VALUE=valor>Texto

ejemplo0111.htm

<FORM ACTION="mailto:soporte@grapperu.com" METHOD="POST">


Ingrese su nombre:
<INPUT TYPE="TEXT" NAME="nombre" SIZE=40 MAXLENGHT=30> <BR>
Seleccione el artculo a comprar: <BR>
<INPUT TYPE="RADIO" NAME="articulo" VALUE=pc1>PC Pentium Modelo A
<BR>
<INPUT TYPE="RADIO" NAME="articulo" VALUE=pc2>PC Pentium Modelo B
<BR>
<INPUT TYPE="RADIO" NAME="articulo" VALUE=pc3>PC Pentium Modelo C
<BR>
<INPUT TYPE="RADIO" NAME="articulo" VALUE=pc4>PC Pentium Modelo D
<BR>
<INPUT TYPE="RESET" VALUE="Borrar">
<INPUT TYPE="SUBMIT" VALUE="Enviar">
</FORM>

21
Libro Digital PHP & MySQL

Lista de seleccion simple

Muy util cuando haya que seleccionar un item de un conjunto grande de opciones,
por ejemplo provenientes de una tabla.

La etiqueta <SELECT> permite generar este tipo de lista. Cada uno de los items se
especifica en una etiqueta OPTION, pudiendo una de ella ser el item por defecto (el
incluya OPTION SELECTED). La presentacin de la lista depende del atributo SIZE;
si su valor es inferior a 2 o est ausente, la lista se interpreta como un menu
desplegable. En caso contrario la lista se visualiza en una ventana con barra de
desplazamiento. En este caso SIZE da el nmero de lneas visibles en la ventana.

Men despegable:

ejemplo0113.htm

<FORM ACTION="mailto:soporte@grapperu.com" METHOD="POST">


<SELECT NAME="distrito">
<OPTION>Lima</OPTION>
<OPTION>Jesus Maria</OPTION>
<OPTION SELECTED>Lince</OPTION>
<OPTION>Miraflores</OPTION>
<OPTION>San Isidro</OPTION>
<OPTION>San Borja</OPTION>
</SELECT>
</FORM>

22
Libro Digital PHP & MySQL

Areas de texto

Se usar cuando se deba ingresar texto amplio, el control se depliega como una
ventana con barras de desplazamiento horizontales y verticales

<TEXTAREA NAME="comment" ROWS=5 COLS=40>

El valor dado a los atributos ROWS (lneas) y COLS (columnas) delimita el tamao
de esta ventana.

Es posible predefinir un texto (entre las etiquetas <TEXTAREA> y </TEXTAREA>)


que el usuario podr reemplazar o completar con su propio texto.

ejemplo0116.htm

<form>
<textarea name="comment" rows=5 cols=40>
Introduzca aqu sus comentarios
</textarea>
</form>

23
Libro Digital PHP & MySQL

ejemplo0117.htm

A continuacin se muestra un tpico y complejo formulario que contiene cada uno


de los elementos estudiados anteriormente organizados mediante el uso de una
tabla.

<FORM ACTION="mailto:soporte@grapperu.com" METHOD="POST">


<table>
<tr>
<td>Nombres:</td>
<td>
<input type="text" name="txtNombres" size="40" maxlength="100">
</td>
</tr>
<tr>
<td>EMail:</td>
<td>
<input type="text" name="txtEMail" size="50" maxlength="100">
</td>
</tr>
<tr>
<td>Estado Civil:</td>
<td>
<input type="checkbox" name="chkSoltero" value="soltero">
Soltero </td>
</tr>
<tr>
<td>Tipo de suscripcion:</td>
<td>
<p>
<input type="radio" name="optTipo" value="3">
Trimestral<br>
<input type="radio" name="optTipo" value="6">
Semestral<br>
<input type="radio" name="optTipo" value="12">
Anual</p>

24
Libro Digital PHP & MySQL

</td>
</tr>
<tr>
<td>Distrito</td>
<td>
<select name="lstDistrito" size="1">
<OPTION VALUE = L01>Lima</OPTION>
<OPTION VALUE = L11>Jesus Maria</OPTION>
<OPTION SELECTED VALUE = L14>Lince</OPTION>
<OPTION VALUE = L18>Miraflores</OPTION>
<OPTION VALUE = L27>San Isidro</OPTION>
<OPTION VALUE = L41>San Borja</OPTION>
</select>
</td>
</tr>
<tr>
<td>Comentarios</td>
<td>
<textarea name="txtComentario" cols="40" rows="5"></textarea>
</td>
</tr>
</table>
<p>
<input type="submit" name="btnLimpiar" value="Limpiar">
<input type="submit" name="btnEnviar" value="Enviar">
</p>
</form>

25
Libro Digital PHP & MySQL

Capitulo 2

INSERCIN DEL CDIGO PHP

Los scripts basados en PHP estn insertados en el cdigo HTML, para diferenciarse
de stas, deber encerrar el script entre los delimitadores "<?" y "?>"

Ejemplo :

ejemplo0201.php

<head>
<title>Ejemplo </title>
</head>
<body>
<?
echo "Bienvenido al curso";
?>
</body>

Hay otras formas de fijar los delimitadores:

ejemplo0202.php

<head>
<title>Ejemplo </title>
</head>
<body>
<?php
echo "Bienvenido al curso";
?>
</body>

tambien puede anotarse:

ejemplo0203.php

26
Libro Digital PHP & MySQL

<head>
<title>Ejemplo </title>
</head>
<body>
<SCRIPT LANGUAGE="php">
echo "Bienvenido al curso";
</SCRIPT>
</body>

La forma usual de establecer los delimitadores son "<?" y "?>" y es la que se usar
a lo largo del presente texto

IMPRESIN EN EL NAVEGADOR

La orden echo

Nuestra primera instruccin "echo", sirve para la impresin de una expresin en el


navegador.

<?
echo "Hola";
?>

El termino "expresin", la usaremos para referirnos a datos, variables, funciones o


la combinacin de ellos.

Dentro de la cadena de impresin puede incluirse etiquetas HTML, por ejemplo:

<?
echo "<B>Hola</B>";
?>

La expersin a imprimir puede estar encerrada con comillas dobles o simples:

<?
echo '<H1>Hola</H1>';
?>

La orden Printf

Hay otra forma de impresin, es a travs de la orden "printf".


Mediante la rden "printf", es posible imprimir una expresin con un formato
especfico.

<?
printf(cadena con formato, variable1, variable2)
?>

Los formatos mas usados que se puede aplicar son:

%s Cadena de caracteres
%d Numero sin decimales
%f Numero con decimales
%c Caracter ASCII

27
Libro Digital PHP & MySQL

Ejemplo:

ejemplo0204.php

<?
$pi = 3.1416;
printf("el valor de PI con decimales %f",$pi);
printf("el valor de PI sin decimales %d",$pi);
printf("el valor de PI con 2 decimales %.2f",$pi);
?>

Fin de lnea

Las instrucciones se pueden anotar en una o mas lineas , el final de la instruccin


quedar limitada por un punto y coma ";".

Ejemplo:

ejemplo0205.php

<?
echo "Hola ";echo "estas aprendiendo? <BR>";echo "PHP es muy fcil! <BR>";
echo "Solo debes tener presente
el punto y coma que va al final
de cada instruccion";
?>

28
Libro Digital PHP & MySQL

En la secuencia anterior hay cuatro instrucciones "echo", los que estn limitados
por el ";".
El punto y coma que va en la ltima instruccin es opcional.

Constantes

Las constantes guardan valores fijos que no cambiarn, por ejemplo el valor de
3.1416, el IGV, etc.

Para definir una constante, debe usarse la orden "define":

ejemplo0210.php

<?
define("PI",3.1416);
define("SALUDO","Bienvenido a mi pgina");
// Area de un circulo de radio 5
$areacirculo PI*25;
echo SALUDO;
echo "Area del circulo de radio 5 es ".$areacirculo;
?>

Las constantes en PHP se diferencian de las variables porque:

29
Libro Digital PHP & MySQL

No llevan el smbolo $ por delante


No pueden ser redefinidas o borradas
No pueden contener arreglos
Su ambito se extiende al archivo donde se define a sus funciones
Por convencion se escribe el nombre en mayusculas, la constante "SALUDO"
es distinto a "Saludo"

Existen un conjunto de constantes PHP, que exponen diversas caracteristicas del


servidor, stas constantes del sistema no se pueden borrar, algunas de ellas son:

PHP_VERSION Devuelve la versin actual de PHP


FALSE Contiene el valor 0
TRUE Contiene el valor 1
__FILE__ Devuelve el nombre del archivo que esta siendo ejecutado en
ese instante.
__LINE__ Devuelve el numero de la linea dentro del script que esta
siendo ejecutada.
PHP_OS Retorna el nombre del sistema operativo en el cual se esta
ejecutando PHP.
NULL Retorna el tipo nulo
E_ERROR Devuelve un error que no es del interprete y el cual no puede
recuperarse.
E_ALL Devuelve todas las constantes E_*. Al usarse con la funcion
error_reporting() imprimir todos los problemas encontrados por PHP.

La constantes E_* son usadas tipicamente con la funcion error_reporting() para


configurar el nivel de reporte de error.

Uso de las constantes __FILE__ y __LINE__

ejemplo0210b.php

<?
function report_error($file, $line, $message) {
echo "Ha ocurrido un error en el archivo $file en la linea $line:
$message.";
}
report_error(__FILE__,__LINE__, "Algo esta mal!");
?>

30
Libro Digital PHP & MySQL

Operadores

Operadores matemticos

Si $a = 9 y $b = 2

Suma $a + $b suma 9 mas 2, se obtiene: 11


Resta $a - $b resta 9 menos 2, se obtiene: 7
Multiplicacion $a * $b multiplica 9 por 2, se obtiene: 18
Divisin $a / $b divide 9 entre 2, se obtiene: 4.5
Modulo $a % $b el residuo de dividir 9 entre 2, se otiene: 1

Operadores autoincremento y autodecremento

Si $a = 3

Pre-incremento echo ++$a; incrementa $a en 1 y luego se imprime


Post-incremento echo $a++; imprime el valor de $a y luego se incrementa en
1
Pre-decremento echo --$a; decrementa $a en 1 y luego se imprime
Post-decremento echo $a--; imprime el valor $a y luego se decrementa en 1

Operadores lgicos

Y logico $a and $b verdedaro si $a y $b son verdaderos


O logico $a or $b verdadero si $a o $b es verdadero
O exclusivo $a xor $b verdadero si $a o $b es verdadero, pero no ambas.
Negacin ! $a verdadero si $a es falso

Instrucciones condicionales

Estructura condicional simple

Forma simple:

Ejecuta un conjunto de instrucciones dependiendo de la validez o falsedad de una


condicin, le hago recordar que en PHP no existe valores lgicos, podemos usar las
constantes TRUE o FALSE, o en su lugar un cero que equivale a Falso y cualquier

31
Libro Digital PHP & MySQL

otro nmero a Verdadero

Sintaxis:

if (condicion){
instrucciones
}

ejemplo0212.htm

<head>
</head>
<body>
<form method = "post" action = "ejemplo0212.php">
<input type="text" name="nombre" size="20">
<input type="submit">
</form>
</body>

ejemplo0212.php

<?
If (!$nombre){
echo "Hola ".$nombre;
}
?>

32
Libro Digital PHP & MySQL

Analicemos los siguientes casos:

$x = 0;
if ($x){
echo "saludo";
}

No imprime nada

$x = "hola";
if ($x){
echo "saludo";
}

Imprime saludo

$x = "";
if ($x){
echo "saludo";
}

no imprime nada

$x = "0";
if ($x){
echo "saludo";
}

en ste caso no se imprime nada

$lista = array();
if ($x){
echo "saludo";
}

no imprime nada

$lista = array(2,5,7,8);
if ($x){
echo "saludo";

33
Libro Digital PHP & MySQL

Imprime saludo

Estructura condicional multiple

Otra alternativa sencilla para evitar las instrucciones "if" anidadas es mediante la
estructura condicional mltiple, sta instruccin evala un valor y compara el valor
con cada expresin "case", de encontrar un "case" con el valor correcto se
ejecutar el bloque de instrucciones asociados, por lo general se suele incluir al
final del bloque de instrucciones la orden "break", la cual da por termino a sta
instruccion.

switch (variable){
case valor1:
instrucciones1;
break;
case valor2:
instrucciones2;
break;
case valor3:
instrucciones3
break;
default:
instrucciones4
}

Podemos dar solucin al caso anterior, mediante el uso de la instruccin repetitiva


multiple, la versin sera:

ejemplo0215.htm

<head>
</head>
<body>
<form method = "post" action = "ejemplo0215.php">
<select size="1" name="dia">
<option value="-1" selected>Dia</option>
<option value="1">Lunes</option>
<option value="2">Martes</option>
<option value="3">Miercoles</option>
<option value="4">Jueves</option>
<option value="5">Viernes</option>
<option value="6">Sabado</option>
<option value="7">Domingo</option>
</select>
<input type="submit">
</form>
</body>

ejemplo0215.php

<?
switch ($dia){

34
Libro Digital PHP & MySQL

case 1:
echo "Hoy es lunes";
break;
case 2:
echo "Hoy es martes";
break;
case 3:
echo "Hoy es miercoles";
break;
case 4:
echo "Hoy es jueves";
break;
case 5:
echo "Hoy es viernes";
break;
case 6:
echo "Hoy es sabado";
break;
case 7:
echo "Hoy es domingo";
break;
}
?>

Instruccin DO

La instruccin repetitiva "do", a diferencia de la anterior, ejecuta el bloque


instrucciones al menos una vez.

do {
instrucciones
}while (condicion)

BREAK y CONTINUE

En ambos casos "while" y "do", puede incluirse la instruccin "break", y "continue"


break, da por finalizado la ejecucin del bucle o lazo
continue, hace un salto ya sea a "while" o "do" para verificar nuevamente la
condicin y ejecutar el bloque de instrucciones en caso la condicin sea verdadera.

ejemplo0217.php

<?
$k = 0;
do {
$k++;
if ($k == 7) {
continue;
}else{
echo "$k <BR>";

35
Libro Digital PHP & MySQL

}
}while ($k<10)
?>

El ejemplo imprime los nmeros del 1 al 10, excepto el 7

Funciones PHP

El uso de funciones es sumamente importante en el tratamiento de datos.


Una funcin est compuesto por un nombre y un conjunto de parmetros, los
parmetros son datos que ingresan a la variable para ser procesados. En respuesta
la funcin deber retornar un valor.
Disponemos de dos tipos de funciones: del sistema y los definidos por el usuario.
Las funciones del sistema estn listos para ser usados, las definidas por el usuario,
valga la redundancia son las creadas por el usuario.
A continuacin presentamos la lista de las funciones principales del sistema
clasificadas por tipo

Funciones Fecha y Hora

time()

Retorna el numero de segundos transcurridos desde el 1 de Enero de 1970.

date(formato, timestamp)

Esta funcin retorna la fecha u hora en base a un formato definido. Por defecto
retorna la fecha y hora actual.

Codigo Descripcin
a am o pm
A AM o PM
d Da del mes con ceros
D Abreviatura del da de la semana (ingls)
F Nombre del mes (ingls)
h Hora en formato 1-12
H Hora en formato 0-23

36
Libro Digital PHP & MySQL

i Minutos
j Da del mes sin ceros
l Dia de la semana
m Nmero de mes (1-12)
M Abreviatura del mes (ingls)
s Segundos
y Ao con 2 dgitos
Y Ao con 4 dgitos
z Dia del ao (1-365)

Para ver algunos ejemplos supongamos que ahora es el 7 de abril de 2000


Para ver algunos ejemplos supongamos que ahora es el 7 de abril de 2000 a las 14
horas 30 minutos y 22 segundos:

ejemplo0223.php

<?
echo "Desde el 1 de enero de 1970 transcurri ".time()." segundos<BR>";
echo "Fecha actual ".date("d-m-Y")."<BR>";
echo "Hora actual ".date("H:i:s")."<BR>";
echo "Muestra solo la hora ".date("Y")."<BR>";
echo "Muestra fecha y hora mezclado ".date("YmdHis")."<BR>";
echo "Muestra fecha y hora con delimitadores ".date("d/m/y H:i a")."<BR>";
echo "Muestra fecha y hora con delmitadores ".date("d-m-Y H:i", time());
?>

mktime(hora, min, seg, mes, dia, ao)

Esta funcin devuelve un valor fechahora valido, a partir de las partes indicadas en
los parametros.

checkdate (mes, dia, ao)

La funcin chekdate verifica si una fecha es vlida, de serlo devolver el valor


TRUE, caso contrario FALSE. Una fecha se considera vlida si el ao est entre
1900 y 32767, el mes entre 1 y 12, y el dia es menor o igual que nmero de das
total del mes en cuestin.

37
Libro Digital PHP & MySQL

<?
$hora = 8;
$min = 20;
$seg = 40;
$mes = 10;
$dia = 23;
$anno = 2002;
$fecha = date("d-m-Y", mktime($hora, $min, $seg, $mes, $dia, $anno));

echo $fecha;
echo "<BR>";

if (checkdate($mes, $dia, $anno)) {


echo "La fecha es correcta";
} else {
echo "La fecha es incorrecta";
}
?>

Definitivamente es muy complicado consistenciar la entrada de un dato fecha en un


cuadro de texto, lo adecuado es descomponer el dato en tres subdatos: dia, mes y
ao y consistenciar cada subdato por separado, luego mediante la ayuda de la
funcin "checkdate()", verificamos la validez de la fecha. De ser valida generamos
el dato fecha mediante la funcin "mktime()".

ejemplo0235.php
<FORM METHOD=POST ACTION="ejemplo0235b.php">
<select name="mes" size="1">
<option value="1" selected>Enero
<option value="2">Febrero
<option value="3">Marzo
<option value="4">Abril
<option value="5">Mayo
<option value="6">Junio
<option value="7">Julio
<option value="8">Agosto

38
Libro Digital PHP & MySQL

<option value="9">Setiembre
<option value="10">Octubre
<option value="11">Noviembre
<option value="12">Deciembre
</select>

<select name="dia" size="1">


<option value="1" selected>1
<?
for ($k=2;$k<=31;$k++){
echo "<option value='$k'>$k ";
}
?>
</select>

<select name="anno" size="1">


<?
for ($k=1900;$k<=2001;$k++){
echo "<option value='$k'>$k ";
}
?>
<option value="2002" selected>2002
</select>
<INPUT TYPE="submit" VALUE="Aceptar">
</FORM>

Consistenciamos cada dato y generamos la fecha:

ejemplo0235b.php

<?
if (!checkdate($mes, $dia, $anno)) {
die ("Fecha no vlida");
}else{
$fecha = date("d-m-Y", mktime(0,0,0, $mes, $dia, $anno));
echo $fecha;
}
?>

39
Libro Digital PHP & MySQL

Include()

Tiene la misma funcion que Require(), incluir un archivo en la pgina actual, la


diferencia radica en que se incluye solo los procedimiento o funciones que el
archivo lo requiera, ste proceso se realiza en tiempo de ejecucin. La ventaja es
que es mas rpido pues se incluye solo lo que necesitamos.

Como ejemplo crearemos una secuencia de verificacin de datos de un usuario. La


lista de usuarios y sus contraseas se encuntran almacenadas en un arreglo
bidimensional.

Indicamos primero las diversas secciones que luego se ensamblarn:

El encabezado contiene una funcion "fechaactual", y la parte inicial de la pagina,


note que se considera la variable "$titulo", como si existiera, el valor que le
corresponde se asiganar en tiempo de ejecucin desde ejemplo0250.php.

ejemplo0250head.php

<?
function fechaactual(){
$hoy = getdate(time());
$dia = $hoy['mday'];
$mes = $hoy['month'];
$anno = $hoy['year'];
$cdia = $hoy['wday'];
$fecha = $dia. " de ".$mes." del ".$anno;
RETURN $fecha;
}
?>

<head>
<title>::GrapPeru.com - <?=$titulo?></title>
</head>

<body>
<center>
<h1>
<? echo $titulo?>
</h1>

40
Libro Digital PHP & MySQL

</center>
<hr>
<br>

El pie de la pagina, muestra la fecha actual, al ensamblarse todo en


ejemplo0250.php, se incluir ejemplo0250head.php, por tanto accesible desde
ejemplo0250foot.php

ejemplo0250foot.php

<hr>
<CENTER><B>
<? echo fechaactual(); ?> <BR>
<a href=mailto:soporte@grapperu.com">Soporte</a>
</B></CENTER>
</body>

Veamos ahora el contenido de ejemplo0250.php, aqui por medio de la instruccion


include, se funciona con los archivos anteriormente citados

ejemplo0250.php

<?
$titulo='Identificacin del usuario';
include('ejemplo0250head.php');
?>

<form method="post" action="ejemplo0250ver.php">


Usuario: <input type="text" name="usuario" value="" sise=8>
Clave: <input type=password" name="clave" value="" size=8>
<input type="submit" value="Entrar">
</form>

<?
include("ejemplo0250foot.php");
?>

41
Libro Digital PHP & MySQL

Una vez ingresado el usuario y contrasea, se ejecutar ejemplo0250ver.php, aqu


se verifica si el usuario est registrado, de estarlo se le da la bienvenida en su caso
se muestra el mensaje de error que corresponde.

ejemplo0250ver.php

<?
$usuarios = array(array('miguel', '123'), array('janet', 'abc'), array('marco',
'xyz'));
$entrar = 0;
foreach ($usuarios as $datos) {
$user_nombre = $datos [0];
$user_clave=$datos[1];
If ($usuario == $user_nombre) {
if ($clave == $user_clave) {
$entrar = 1;
} else {
break;
}
}
}
if (!$entrar){
$titulo ='Error al ingresar datos';
include('ejemplo0250head.php');
echo '<center><h2>';
if ($usuario != $user_nombre) {
echo "Error, usuario '$usuario' desconocido";
} else {
echo "Error, clave incorrecta";
}
}else{
$titulo ='Usuario autorizado';
include('ejemplo0250head.php');
echo '<center><h2>';
echo "Bienvenido ".$usuario;
}
echo '<BR><a href="ejemplo0250.php">Volver</a>';
echo '</h2></center><br>';
include("ejemplo0250foot.php");
?>

42
Libro Digital PHP & MySQL

ADMINISTRACIN DE BASES DE DATOS CON MYSQL


MySQL es un sistema de administracin de bases de datos relacionales (rdbms) que
proporciona a los usuarios una potente solucin de bases de datos SQL (Structured
Query Language). Es rpida, robusta y fcil de utilizar.
Una de las grandes posibilidades de PHP es la posibilidad de manejar bases de
datos alojadas en ordenadores remotos.
Existen multitud de paquetes de gestin de bases de datos y PHP dispone de
funciones para el manejo del algunos de ellos tales como:
FilePro
dBase
DBM
Microsoft SQL
PostgreSQL
mSQL
InterBase
MySQL
Las bases de datos contienen tablas, las tablas contienen registros, los
registros estn formados por campos de distintos tipos y dentro de los campos
se almacenan datos que pueden: aadirse, modificarse, consultarse,
actualizarse y borrarse adems de ordenarse de distintas formas.

CREACIN DE LA BASE DE DATOS

Podemos crear una Base de Datos de formas:

1. Mediante el shell
2. Usando el panel phpMyA

1. Mediante el shell

43
Libro Digital PHP & MySQL

Ubique la carpeta Bin que se halla dentro de MySQL


Haga doble click en MySQL.exe
Le presentar una ventana tipo DOS con el prompt mysql>

Creando la Base de Datos

La sentencia MySQL que permite crear una base de datos es:

CREATE DATABASE IF NOT EXISTS nombre


CREATE DATABASE nombre

por ejemplo:

mysql> CREATE DATABASE ejemplo;

Recomendaciones que debe tener en cuenta:

* Un comando consiste normalmente de una sentencia SQL seguida por un punto y

44
Libro Digital PHP & MySQL

coma. (Existen algunas excepciones donde no es necesario el punto y coma, por


ejemplo la orden QUIT.

* Cuando se ingresa un comando, mysql lo enva al servidor para su ejecucin y


muestra los resultados, despus imprime otro mysql> para indicar que est listo
para otro comando.

* mysql muestra el nmero de filas que se han dado como resultado, y cunto
tiempo llev la ejecucin de la consulta, lo que te da una idea aproximada del
rendimiento del servidor. Estos valores son imprecisos porque representan tiempo
real (no tiempo de CPU o mquina), y porque estn afectados por factores como la
carga del servidor y la latencia de la red.

* Los nombres de bases de datos son sensibles a las maysculas/minsculas (a


diferencia de los comandos SQL), del mismo modo ocurre con las tablas. (Bajo
Windows, esta restriccin desaparece, lo que no sucede en Linux o UNIX.)

* Las palabras clave pueden ser tecleadas en cualquier combinacin


mayscula/minscula. Da lo mismo escribir:

mysql> CREATE DATABASE ejemplo;


mysql> create database ejemplo;
mysql> Create Database ejemplo;

Borrando una base de datos utilizando MySQL

Podemos borrar una Base de Datos existente mediante la orden:

DROP DATABASE IF EXISTS nombre


DROP DATABASE nombre

por ejemplo:

mysql> DROP DATABASE ejemplo;

Revisando las Bases de Datos existentes

Usa la sentencia SHOW para averiguar qu bases de datos existen actualmente en


el servidor:

45
Libro Digital PHP & MySQL

mysql> SHOW DATABASES;

Abriendo una Base de Datos

mysql> USE ejemplo

Observa que USE, como QUIT, no requiere un punto y coma. (Puedes terminar este
tipo de sentencias con un punto y coma si quieres, pero no es necesario.) La
sentencia USE es especial en otro sentido, tambin: debe ser tecleada en una sola
lnea.

La base de datos slo necesita ser creada una vez, cada vez que se deba usar se
debe seleccionarla.

46
Libro Digital PHP & MySQL

Creacin de tablas

Para ver las tablas contenidas en la Base de Datos seleccionada, puede usar la
orden SHOW TABLES:

mysql> SHOW TABLES;

Iremos a crear una tabla de usuarios, la instruccin que permite crear tablas es
CREATE TABLE:

mysql> CREATE TABLE usuarios (nombre CHAR(10), clave CHAR(10));

Comprobemos la creacin de la Base de Datos:{

mysql> SHOW TABLES;

47
Libro Digital PHP & MySQL

Para verificar la estructura de la tabla recientemente creada podemos usar la


sentencia DESCRIBE:

mysql> DESCRIBE usuarios;

Puede usar DESCRIBE en cualquier momento, por ejemplo, si hemos olvidado los
nombres de los campos de una tabla.

48