Apuntes PHP - Mini
Apuntes PHP - Mini
1. Introducció n a PHP
Páginas PHP
Una página PHP es una página web normal en la que utilizamos la extensión “.php” en lugar de
“.htm” o “.html”.
Departamento Tecnología En una página “.php” se pueden insertar bloques de código escrito en lenguaje PHP. Estos
2017-2018 bloques de código reciben el nombre de scripts.
Script PHP: Bloque de código escrito en lenguaje PHP dentro de una página web.
Un script PHP se limita anteponiendo los símbolos <?php a la primera instrucción y escribiendo
después de la última instrucción los símbolos ?>.
Bloque 1: Programación El siguiente script ejecuta la función phpinfo(). Esta función muestra información sobre la versión
y configuración de la versión de PHP instalada en el servidor.
1 de 33
TIC 2º BTO IES Grande Covián TIC 2º BTO IES Grande Covián
Curso 2017-18 Zaragoza Curso 2017-18 Zaragoza
Constantes predefinidas:
- No requieren la orden define. Algunos ejemplos son:
- __FILE__ Nombre del fichero ejecutado y ruta en el servidor.
- __LINE__ Nº línea en el fichero cuyo script se está interpretando.
- PHP_OS Sist Operativo del servidor.
- PHP_VERSION
Variables
Para definir su valor se utilizará una expresión del tipo:
$variable = valor;
1. El usuario escribe la dirección de la página web en su navegador y este la solicita al - El nombre ha de comenzar con $ seguido de una letra.
servidor web correspondiente. - Se distingue Mayúsculas/Minúsculas.
2. El servidor detecta que dentro de la página hay uno o varios programas PHP y los envía al - No es necesario definir el tipo.
intérprete del lenguaje. - Si valor es un texto, ha de ir entre comillas.
3. El intérprete del lenguaje completa la ejecución del programa PHP. - Nos podemos referir a su valor desde cualquier parte del script, salvo que sea una variable
4. El resultado final del programa se envía al servidor definida en una función. En ese caso sólo tiene sentido en el interior de la función.
5. El servidor envía el fichero al navegador que muestra la página web al usuario - Una variable definida en una función no puede utilizarse en el script (toma valor cero o “”).
- Variable global: EXCEPCION a lo anterior. La función puede utilizar valores de variables
externas si se ha incluido en la función la orden “global nombrevariable;”, se busca el valor
2. Funciones bá sicas de la variable en el resto del script).
Escribir por pantalla, echo - Existe otro tipo Variable Superglobal, se puede acceder a su valor desde cualquier punto sin
utilizar la orden global.
Aunque existen otras opciones utilizaremos la función echo con la forma: - Variables estáticas. Si definimos una variable como estática dentro de una función, cuando
echo “texto”; salimos de su ámbito conserva el valor que tenga en el momento de salir y la línea que le da
- Escribe el texto entre comillas. valor inicial la primera vez que se ejecuta no volverá actuar cuando se ejecute la función
- Como toda orden termina con punto y coma. hasta que actualicemos la página. Para definir la variable $a como estática y con un valor
- Hay dos tipos de comillas (“) y (‘), se puede utilizar cualquiera de los dos. Si van anidadas inicial utilizaremos la orden (static $a = 3;), al salir de la función $a conservará el último valor
(queremos que aparezca un texto entre comillas) se van alternando. que se haya asignado hasta que se actualice la página.
- Para encadenar varios “texto” se separan por comas o por puntos. Tipos de variables
<br> actúa como retorno de carro. En PHP no es necesario definir el tipo. Según sea el valor almacenado se adapta el tipo.
Hay tres tipos
Comentarios Integer: Enteros (+/- 231)
De una sola línea Se coloca // al comienzo de la línea o tras el punto y coma. Double: Coma flotante
De varias líneas Se coloca /* al comienzo de la primera línea y */ al final de String: Cadenas
la última. Estos no se pueden anidar. - gettype(variable); Devuelve una cadena de caracteres (Integer, double o string) según cual
En la parte HTML <!--comentario--> sea el tipo de la variable.
- Forzar tipo en una variable y asignarle a la vez valor:
Constantes o $a=((integer)4.5); fuerza y convierte a tipo entero (trunca).
Se pueden usar tal cual o utilizar la función define para asignarle un nombre: o $a=((int)45); fuerza tipo entero.
define(“nombre”,”valor”)
o $a=((double)45); fuerza tipo double.
o $a=((float)45); fuerza tipo double.
- Si valor es numérico no es preciso colocarlo entre comillas.
o $a=((real)45); fuerza tipo double.
- Al realizar operación aritmética con una constante cuyo valor comienza con cifras y
o $a=((string)4.5); fuerza y convierte a tipo string.
continúa con letras se toma como valor el de las cifras hasta la primera letra.
- Forzar tipos en una variable ya definida:
- Se puede definir valor como el resultado de una operación aritmética.
o Settype(var,tipo) tipo ha de ir entre comillas.
- OJO: Distingue mayúsculas de minúsculas.
2 de 33 3 de 33
TIC 2º BTO IES Grande Covián TIC 2º BTO IES Grande Covián
Curso 2017-18 Zaragoza Curso 2017-18 Zaragoza
Sintáxis:
3. Comunicació n cliente-servidor sencilla
function nombrefuncion(){
ordenes Envío de información a través del navegador al servidor
}
A través de la barra de direcciones del navegador según la forma:
Para llamar a una función desde el script:
pagina.php?n1=v1&n2=v2
Nombrefuncion(); - pagina.php: Dirección de la página que contiene el script que ha de procesar los valores
Una función no lee valores de variables definidas fuera de la función salvo que dentro de la propia transferidos.
función se definan como globales. - ?: indica que tras él van nombres de variables y sus valores.
- n1, n2…: nombres de las variables (no llevan signo $).
La función puede escribirse: - =: separa nombres de las variables de sus valores.
- En cualquier script y ser invocada desde el mismo o cualquier otro. - v1,v2…: valores de las variables (no llevan comillas).
- En un documento aparte, cuando se invoque hay que indicar dónde buscarlas. - &: separa las distintas variables.
Asignación de valores a variables Recepción de información mandada a través navegador.
A las variables no globales se les pueden asignar sus valores iniciales de varias formas: Al recibir la petición anterior el servidor crea dos tipos de variables php:
- Incluyéndolas en una línea de instrucciones contenida en la propia función. - Variables superglobales:
- Insertando los nombres y valores de las variables dentro del paréntesis: $_GET[‘n1’]
function nom ($a=v1,$b=v2) $_GET[‘n2’]
- Definiendo los nombres de la variable en la definición de la función y sus valores:
n1, n2…son los nombres asignados a través del navegador a cada una de las variables. El
function nom ($a,$b)
nombre (valor1, valor2,...); contenido de estas variables será el definido en la petición.
- Si en un archivo llamado php.ini se ha configurado register_globals=ON, también se crean:
Las funciones PHP pueden ser llamadas a partir de un script y posteriormente recoger –en ese
$n1
mismo script– los resultados de su ejecución. Hay que escribir dentro de la función la instrucción
$n2
return seguida de la variable o la instrucción cuyo resultado queremos que sea devuelto al script
desde el que ha sido llamada la función. 000webhost tiene desactivada esta opción.
También es posible que la función genere un array y que este sea devuelto a una variable que se
convertiría a ese tipo de forma automática. 4. Formularios
Otra opción de recoger los valores devueltos por return es invocar la función mediante una
Formulario: Conjunto de elementos que colocados en la página web permiten mandar
llamada del tipo:
información al servidor.
list(v1, v2,..)=llamada
El formulario se define en HTML. Dentro del mismo podemos incluir scripts php cuando
Las variables v1, v2, etc. recogerán los valores de los elementos del array devuelto por la función. sea necesario.
Cosas En primer lugar crearemos el formulario y definiremos sus propiedades. A continuación
- Se puede prescindir del encabezado HTML y empezar con el script php añadiremos y configuraremos todos los elementos que utilizar.
- Sumar (restar igual) siete a una variable y almacenar (es decir a=a+7) se pone: Dreamweaver permite hacer ambos procesos sin necesidad de conocer la sintaxis HTML.
$a +=7;
- Para unir dos cadenas en una nueva variable:
4 de 33 5 de 33
TIC 2º BTO IES Grande Covián TIC 2º BTO IES Grande Covián
Curso 2017-18 Zaragoza Curso 2017-18 Zaragoza
Crear el formulario - Init val (pestaña propiedades ) o value=' ' (código HTML) puede no contener nada entre las
comillas o contener el texto que por defecto queremos que aparezca en ese campo al cargar
En Dreamweaver: Menú Insertar, formulario, formulario. Se mostrará la línea de código HTML: el formulario.
<form></form> - size=xx opcional. Su utilidad es la de ajustar el tamaño de la ventana al número de caracteres
que se indiquen, no limita el número de caracteres que se pueden escribir.
Hacemos clic en el interior de la etiqueta del formulario y en la parte inferior de la ventana se
mostrará la pestaña Propiedades con la forma: En caso de dejar una caja “campo de texto” sin completar se envía al servidor como
valor una cadena de texto vacía.
6 de 33 7 de 33
TIC 2º BTO IES Grande Covián TIC 2º BTO IES Grande Covián
Curso 2017-18 Zaragoza Curso 2017-18 Zaragoza
Cuando un formulario con chekboxes envía los datos al servidor, en caso de no haber activado En esta tabla podremos añadir tantos elementos como queramos. Para cada uno de ellos
un checkbox no se envía ningún tipo de información sobre el mismo. podremos definir el texto que se mostrará en el menú y el valor que se mandará a través del
Eso hace que si más adelante utilizáramos la variable en el formato $_GET[‘nombre’] o formulario si lo seleccionamos.
$_POST[‘nombre’] la página devolvería un error por pedir algo que no existe. Para evitar este 4.2.6 Área de texto (textarea)
problema hay un sencillo truco que es utilizar la función isset(variable). Esta función devuelve el
Similar al elemento campo de texto pero permite definir el número de filas y columnas de la caja
valor TRUE si la variable existe y su valor es no nulo y el valor FALSE si no se cumple lo anterior.
que de texto que se mostrará en el formulario.
Así por ejemplo:
<textarea rows=5 cols=50 name='texto'></textarea>
if(isset($_POST['numero'])==TRUE){ - Deben tener una etiqueta de apertura <textarea name='loquesea'>
$sumar=$_POST['numero']; - Dentro de la etiqueta de apertura puede incluirse rows=xx (número de filas) cols=yy (ancho
}else{
en número de caracteres)
$sumar=’’;
- Opcionalmente puede incluirse un value='lo que sea...'que contenga el texto que, por
}
defecto, se mostrará en ese espacio al cargar el formulario.
Si se ha generado la variable $_POST[‘numero’] se define la variable $sumar y será utilizada en la Para añadirlo desde Dreamweaver seleccionamos Instert, Form, TextArea:
página como tal con el valor recibido. En caso contrario genero una variable vacía.
4.2.5 Lista, menú
Tiene el formato:
<select name="select">
<option selected>(Vacio)</option>
4.2.7 Campo oculto
<option>A</option> <input type="hidden" name='oculto' value='Esto iría oculto'>
<option>B</option>
<option>C</option> Permite insertar en un formulario un valor oculto que no requiere ser cumplimentado por el
<option>D</option> usuario y que no aparece visible en el documento.
<option>E</option> Desde Dreamweaver: Insert, form, hidden field. Las dos únicas propiedades que se pueden
</select>
definir en este caso son el name con el que nos referiremos a la variable asociada el valor que
- Requiere un nombre (name) que será el nombre de la variable que almacene la información: pasaremos con ella.
- Entre la apertura y cierre deben incluirse las diferentes opciones entre las de etiquetas
<option>valor</option> . 4.2.8 Botón (enviar)
- Al enviar el form se transmite lo contenido en option en la opción seleccionada. <input type="submit" value="enviar">
- Si dentro de una etiqueta option escribimos selected, aparecerá por defecto al cargarse el
Al hacer clic en el botón de envía se mandan los valores asociados al servidor y se ejecuta la
formulario.
action incluida en la etiqueta de apertura del formulario.
Con Dreamweaver es posible añadir la lista desde el menú inset, form, select (list/menu). Se El texto que incluyamos en value='enviar...' será el que se visualice en el botón.
mostrará la pestaña de propiedades: Dreamweaver: Insert, form, button. Comprobar que la acción seleccionada en la pestaña de
propiedades es “submit form”.
4.2.9 Botón (reset)
<input type="reset" value="borrar">
Borra todos los contenidos del formulario y reestablece los valores por defecto de cada campo.
Para añadir elementos a la lista haremos clic en el botón “List Values…”: Dreamwaver: Insert, form, button y en la ventana asociada de propiedades seleccionaremos la
opción “Reset form”.
8 de 33 9 de 33
TIC 2º BTO IES Grande Covián TIC 2º BTO IES Grande Covián
Curso 2017-18 Zaragoza Curso 2017-18 Zaragoza
en la etiqueta form) habrá que referirnos a ellos en el script de una forma adecuada. Tenemos varias Formato de presentación de números:
posibilidades:
Permiten mejorar la presentación de los valores numéricos:
Si hemos utilizado el método de envío GET
- number_format (número). Presenta la parte entera del número y utiliza como separador
$_GET[‘n1’]
de unidades de millar una coma.
- Si en un archivo llamado php.ini se ha configurado register_globals=ON, también se crean:
- number_format (número, núm decimales) Presenta el número de cifras decimales que se
$n1
indiquen, utiliza como separador decimal el punto y el separador de miles es una coma.
000webhost tiene desactivada esta opción. - number_format (número, núm decimales, "sep. decimal", "sep. miles"). Permite definir los
caracterers que se usarán como separador de decimales y separador de unidades de millar.
Si hemos utilizado el método POST
$_POST[‘n1’]
6. Arrays
- Si en un archivo llamado php.ini se ha configurado register_globals=ON, también se crean:
$n1 Array: Conjunto de variables que queda definido por un mismo nombre. Cada elemento del
array se identifica por medio de uno o varios índices.
000webhost tiene desactivada esta opción.
Tienen la forma:
POST vs GET $nombre[índice]
GET En función del tipo de índice tendremos tres tipos de arrays:
- Todos los datos de la petición son visibles en la barra de direcciones del navegador.
Array escalar
- Sólo acepta caracteres ASCII.
- Longitud máxima de la cadena de datos a transferir 2083 (Explorer). Nos podemos referir a cada uno de los elementos del array de dos formas:
POST - $a[xx]=valor Asigna “valor” al elemento xx del array.
- No tiene ninguna de esas pegas, es el método más utilizado. - $a[] = valor Asigna “valor” automáticamente al elemento del array siguiente al último
asignado. Si es el primero que se define le asigna el índice 0.
5. Operaciones aritmé ticas Array asociativo
Operaciones aritméticas Estamos obligados a escribir la palabra que va a actuar como índice (entre comillas).
Operación Sintaxis A B Resultado - $a[“nombre”] = valor
Suma $a+$b 12 -7.3 4.7
Diferencia $a-$b 12 -7.3 19.3 Array con índice tipo variable
Producto $a*$b 12 -7.3 -87.6 - $a[$variable] = valor
Valor absoluto abs($a) -12 12 Arrays bidimensionales (o multidimensionales)
Cociente $a/$b 12 -7.3 3.46410161514
Cociente entero (int)($a/$b) 12 -7.3 -1 Son arrays que utilizan dos índices. Permiten crear tablas de doble entrada:
Resto de la división $a%$b 12 5 2 Array escalar
Potencias ab pow($a,$b) 12 5 248832 - $a[xx][yy] = valor
Raíz cuadrada sqrt($a) 12 3.46410161514 - $a[][] = valor
- $a[xx][] = valor
Redondeos - $a[][xx] = valor
tipo Sintaxis A Resultado Array asociativo
Parte entera (int)$a -7.3 -7 - $a[“nombre”] [“nombre2”] = valor
Redondeo por defecto floor($a) 138.546 13
Redondeo por exceso ceil($a) 138.546 14 Array con índice tipo variable
Redondeo round($a) -138.546 -14 - $a[$variable][$variable] = valor
Array mixtos
- Un índice es un escalar y el otro un número.
10 de 33 11 de 33
TIC 2º BTO IES Grande Covián TIC 2º BTO IES Grande Covián
Curso 2017-18 Zaragoza Curso 2017-18 Zaragoza
12 de 33 13 de 33
TIC 2º BTO IES Grande Covián TIC 2º BTO IES Grande Covián
Curso 2017-18 Zaragoza Curso 2017-18 Zaragoza
La función exit() interrumpe la ejecución del script con lo que la respuesta del servidor a la while(condición)
petición del cliente incluirá únicamente los contenidos generados antes de su ejecución. instrucción
La instrucción siguiente (sólo una instrucción) se ejecuta repetidamente hasta que deje de
Instrucción continue cumplirse la condición.
Mediante continue se puede impedir que, se ejecuten algunas o todas las instrucciones de un
Si queremos que se repita un bloque de instrucciones:
bucle sin que por ello se interrumpa la ejecución de las iteraciones siguientes. Se puede utilizar con
bucles for, while o do while. Basta con incluir la línea: while(condición){
instrucción
continue; .....
}
11. La funció n switch – (switch con break)
Condicional que evalúa una variable y, según su valor, ejecuta unas instrucciones u otras. 13. El bucle do... while
Su sintaxis es la siguiente: La sintaxis es la siguiente:
switch ( variable ) { do {
case n1: intrucción 1...
instrucciones caso n1... instruccion2...
case n2: } while(condición) ;
instrucciones caso n2...
En este caso se comprueba la condición después de haber ejecutado las instrucciones contenidas
.....................
en el bucle, con lo cual, en el caso de que desde el comienzo no se cumplieran las condiciones
}
establecidas en while, las instrucciones del bucle se ejecutarían una vez.
Cuando se usa esta sintaxis solo se ejecutan TODAS las instrucciones que han sido incluidas a
partir de la etiqueta en la que el número que sigue a case coincide con el valor de la variable.
14. El bucle for
La forma más habitual de uso de esta función es combinada con la orden break La sintaxis es la siguiente:
switch ( variable ) { for ( desde ; hasta ; incre ){
case n1: ...instrucciones....
instrucciones caso n1... }
break;
- desde permite asignar un valor inicial a una variable ($var=num) que hará funciones de
case n2:
instrucciones caso n2...
controladora de iteraciones.
break; - mientras establece la condición que limita el fin del bucle, mientras sea cierta el bucle
} continuará funcionando.
- incre (con una sintaxis del tipo $variable++; $variable--; ++$variable --$variable; $variable
Esta opción incluye antes de cada nuevo case la función de ruptura break. Cuando PHP encuentra +=n o $variable -=n establece los incrementos o decrementos de la variable controladora en
el break interrumpe la ejecución y no la reanuda hasta la instrucción siguiente a la } que cierra la cada iteración del bucle.
función switch.
El siguiente ejemplo muestra un bucle en el que la variable de control $i, toma
default:
inicialmente el valor 1, en el que el bloque de instrucciones internas se repetirá mientras
Bajo este nombre (default:) se pueden incluir –dentro de la función switch– un conjunto de
el valor de dicha variable sea menor de 10 y que en cada iteración incrementa su valor
instrucciones que solo serán ejecutadas en el caso que el valor de la variable no coincida con ninguno en una unidad.
de los case.
for ( $i; $i<10 ; $i++ ){
...instrucciones....
}
14 de 33 15 de 33
TIC 2º BTO IES Grande Covián TIC 2º BTO IES Grande Covián
Curso 2017-18 Zaragoza Curso 2017-18 Zaragoza
Arrays bidimensionales
Cuando se trata de arrays bidimensionales la lectura de los valores que contienen sus elementos
requiere el uso de dos bucles anidados. La sintaxis sería de este tipo:
foreach($a as $i1=>$na){
foreach($na as $i2=>$val){
...
}
}
16 de 33 17 de 33
TIC 2º BTO IES Grande Covián TIC 2º BTO IES Grande Covián
Curso 2017-18 Zaragoza Curso 2017-18 Zaragoza
18 de 33 19 de 33
TIC 2º BTO IES Grande Covián TIC 2º BTO IES Grande Covián
Curso 2017-18 Zaragoza Curso 2017-18 Zaragoza
Conexión con el servidor de bases de datos Ahora cuando queramos realizar la conexión desde una página del sitio web será suficiente con
llamar a ese fichero externo mediante la orden include:
Para que PHP pueda trabajar con la base datos MySQLi es necesario crear una conexión entre
ambos. Para ello y estando activos Apache y MySQLi usaremos la función PHP: include('../seguridad/mysql.inc');
$con = new mysqli(server, login, pass, base); los dos puntos (..) establecen que la ruta absoluta del archivo dentro del servidor.
- $con es una variable que recogerá el identificador de la conexión a la base de datos.
- server es la dirección del servidor de bases de datos, ("localhost" si trabajamos con 19. Operaciones MySQLi desde phpMyAdmin
000webhost).
- login es el nombre de uno de los usuarios registrados en la base de datos. Aunque sería posible utilizar código propio MySQLi combinado con PHP, muchas operaciones
- pass la contraseña (""). (Todo entre comillas). básicas sobre la base datos se pueden hacer utilizando el gestor phpMyAdmin lo cual facilita
- base Nombre de la base de datos. enormemente el trabajo.
Los cuatro parámetros de la conexión pueden ser cadenas de texto (entre comillas) o Creación de tablas
nombres de variables. Seleccionamos la pestaña “Estructura” en el
menú superior. En la ventana “Crear tabla”
Esta conexión de momento es insegura, cualquiera que conozca la dirección ip podría escribimos el nombre que asignaremos a la tabla
entrar fácilmente y el número de campos (columnas) que va a
tener, para terminar pulsamos el botón
Para cerrar la conexión insertaremos:
“continuar”.
mysqli_close ($con)
En el ejemplo, tablaEnsayo con 5 columnas:
18.3.1 Conectando a través del fichero mysql.inc Se mostrará una ventana del tipo:
En los scripts PHP que manejan bases de datos vamos a necesitar insertar continuamente los
datos de conexión: (nombre del servidor, nombre de usuario y contraseña). Por comodidad y
también por privacidad, guardaremos los datos de usuario en lugar seguro.
En primer lugar creamos un fichero, al que llamaremos por ejemplo mysql.inc y lo guardaremos
utilizando Filezilla fuera del directorio public_html de nuestro sitio web. En este caso creamos una
carpeta a la que llamaremos seguridad y lo guardaremos dentro:
20 de 33 21 de 33
TIC 2º BTO IES Grande Covián TIC 2º BTO IES Grande Covián
Curso 2017-18 Zaragoza Curso 2017-18 Zaragoza
Una vez que hayamos definido las propiedades de los campos hacemos clic en guardar para recar - Year: Almacena un año. Valores permitidos desde el 1901 al 2155.
la tabla. Tipos de cadena:
19.1.1 Campo índice: índices MySQLi - Char(n): Almacena una cadena de longitud fija que hay que definir en la ventana de
longitud/valores. La cadena podrá contener desde 0 a 255 caracteres.
Indice MySQLi: Campo o campos de una tabla MySQLi que se utiliza para identificar a cada
- VarChar(n): Almacena una cadena de longitud variable, la longitud máxima se define la
registro de forma unívoca.
ventana longitud/valores. La cadena podrá contener desde 0 a 255 caracteres.
Existen varios tipos de índices con distintas funciones. Nosotros solo utilizaremos índices - Enum: Campo que puede tener un único valor de una lista que se especifica en la ventana
primarios (primary index). longitud/valores. El tipo Enum acepta hasta 65535 valores distintos
- Set: Campo que puede contener ninguno, uno ó varios valores de una lista. La lista puede
El índice primario será el identificador (la “matrícula”) de cada registro. Su valor es único, no
tener un máximo de 64 valores y sus componentes se definen en la ventana longitud/valores.
puede haber dos registros con el mismo índice primario y sirve para distinguir ese registro de
cualquier otro de la tabla. Operaciones con tablas
En una tabla de usuarios un campo que podríamos utilizar como índice primario sería el del DNI Una vez creada la tabla, su nombre aparecerá en el menú de la izquierda de la página de
por ser único. En otros casos activaremos la opción de autoincremento para que sea la base de phpMyAdmin, dentro de la base de datos a la que pertenece. Haciendo clic en este nombre
datos la que asigne valor al índice. podremos acceder a múltiples opciones, las más importantes son:
Por norma, en cada tabla definiremos un campo como índice primario. 19.2.1 Insertar un registro en la tabla
Hacemos clic en la pestaña superior “Insertar”. Se mostrará una ventana en la que podemos
Habitualmente utilizaremos id como nombre del campo que es índice primario.
introducir los datos de dos nuevos registros. Si deseamos añadir más de dos registros de vez
19.1.2 Tipos de campos MySQLi seleccionaremos la cantidad deseada en el selector “Continuar inserción con” situado en la parte
inferior. Una vez que hayamos completado los campos haremos clic en continuar, se mostrará la
Los tipos más importantes son: ventana con el código MySQLi que ejecutará la acción, hacemos clic en continuar para confirmar la
Tipos numéricos: acción y los registros quedarán añadidos.
- Bit ó Bool: Núm. entero que puede ser 0 ó 1. 19.2.2 Eliminar un registro de la tabla
- TinyInt: Número entero muy pequeño con o sin signo. Con signo desde -128 a 127. Sin signo
de 0 a 255. Hacemos clic en la pestaña superior “Examinar”. Se mostrará una tabla con todos los registros.
- SmallInt: Núm. entero con o sin signo. Con signo de -32768 a 32767. Sin signo de 0 a 65535. Seleccionamos el registro a eliminar y hacemos clic en el icono borrar.
- MediumInt: Núm entero con o sin signo. Con de -8.388.608 a 8.388.607. Sin de 0 a Desde esta ventana también existe la posibilidad de copiar el registro en lugar de eliminarlo.
16777215.
- Integer, Int: Núm entero con o sin signo. Con de -2147483648 a 2147483647. Sin de 0 a 19.2.3 Modificar o eliminar uno de los campos de la tabla
429.4967.295. Hacemos clic en la pestaña superior “Estructura”, activamos el selector del registro que
- BigInt: Núm entero con o sin signo. Con de -9.223.372.036.854.775.808 a queremos modificar (izquierda de la tabla de campos) y a continuación seleccionamos la operación
9.223.372.036.854.775.807. Sin signo de 0 a 18.446.744.073.709.551.615. que queremos realizar, las más habituales son:
- Float: Número pequeño en coma flotante de precisión simple. Los valores válidos van desde
-3.402E+38 a -1.175E-38, 0 y desde 1.175E-38 a 3.402+38. - Cambiar: Nos lleva a una tabla en la que puedo cambiar cualquier propiedad del campo.
- xReal, Double: Número en coma flotante de precisión doble. Los valores permitidos van - Eliminar: Elimina el campo seleccionado. Los valores almacenados en él se perderán.
desde -1.797E+308 a -2.225E-308, 0 y desde 2.225E-308 a 1.797E+308. - Primaria: Permite seleccionar otro campo como clave primaria.
- Decimal, Dec, Numeric: Número en coma flotante desempaquetado. El número se almacena 19.2.4 Añadir un nuevo campo a la tabla
como una cadena.
Hacemos clic en la pestaña superior “Estructura”. Justo debajo de la tabla de campos de la tabla
Tipos fecha: aparecerá un selector que permite definir el número de campos que se quieren añadir y la posición
A la hora de almacenar fechas Mysql no comprueba de una manera estricta si una fecha es válida que esos nuevos campos tendrán en la tabla. Por ejemplo:
o no. Simplemente comprueba que el mes está comprendido entre 0 y 12 y que el día entre 0 y 31.
- Date: Tipo fecha, almacena una fecha. El formato de almacenamiento es de año-mes-dia.
Una vez establecidos los valores deseados pulsamos en continuar y se mostrará una ventana en
- DateTime: Combina fecha y hora. El formato es año-mes-dia horas:minutos:segundos.
la que definiremos las propiedades del campo.
- Time: Almacena una hora. El formato de almacenamiento es de 'HH:MM:SS'
22 de 33 23 de 33
TIC 2º BTO IES Grande Covián TIC 2º BTO IES Grande Covián
Curso 2017-18 Zaragoza Curso 2017-18 Zaragoza
19.2.5 Vaciar o eliminar una tabla Consultar los registros de una tabla
Seleccionamos el nombre de la base de datos a la que pertenece la tabla en el menú de la La consulta más simple tiene la forma:
izquierda de la página. Se mostrará un listado con todas las tablas contenidas en la base de datos.
$sel= $con ->query("SELECT * FROM tabla ");
Seleccionamos la tabla que queremos eliminar y elegimos la opción variar o eliminar según lo que
nos interese. Esta línea de código almacena todos los campos, de todos los registros, de la tabla de nombre
“tabla” en la variable $sel. Se leen todos los campos (*) de todos los registros, la salida está en el
orden en el que fueron añadidos los registros.
20. Comunicació n PHP con MySQLi
La expresión tabla puede ser una variable php.
La función que utiliza PHP para comunicar con MySQLi es:
$sel= $con ->query("sent"); El resultado recogido en la variable $sel, está estructurado en líneas. La forma más sencilla de
leer los campos de cada registro es a través del siguiente bucle while:
la cadena sent contiene las instrucciones propias de MySQLi y $con sigue siendo la variable que
while($fila=$sel ->fetch_assoc()){
contiene el identificador de la conexión. El resultado de la consulta se guaradará en $sel.
echo $fila['id'].' - ';
Obviamente $sel y $con son nombres de variables a modo de ejemplo, no han de ser echo $fila['pregunta'].'<br>';
esos valores necesariamente. }
Veamos las operaciones básicas: Parece complicado, pero no lo es tanto. Observa el ejemplo anterior:
Al comenzar el bucle la variable array $fila recoge el contenido de la primera línea y coloca su
Añadir registros a una tabla puntero interno al comienzo de la línea siguiente. Esta nueva línea se leerá en la pasada siguiente y
La orden MySQLi tiene la forma: así sucesivamente.
INSERT INTO tabla (campo1,campo2,..) VALUES (‘valor1’, ’valor2’,..) Además la función fetch_assoc() hace que $fila sea un array asociativo en el cual el índice del
- tabla es el nombre de la tabla en la que queremos añadir el registro. elemento del array es el nombre del campo en la tabla. Es decir en el ejemplo anterior se supone
- campo1,… es el nombre de cada uno de los campos de ese registro a los cuales queremos que tenemos una tabla en la que dos de sus campos se llaman id y pregunta. Al utilizar fetch_assoc()
asignar algún valor se crean elementos dentro del array con esos índices y sus valores asociados.
- valor1…. Es el valor que queremos asignar a cada uno de los campos del registro. Cuando ya no hay más filas que leer fetch_assoc() genera un valor NULL y el bucle while termina.
Los valores tipo numérico no se incluyen entre comillas, mientras que los no numéricos 20.2.1 Consultando sólo algunos campos
tienen que estar contenidos entre comillas incluso en el caso de no se inserten
directamente sino a través de una variable PHP. Cambia la forma de la sentencia
Normalmente estas líneas de código son muy largas y es frecuente que aparezcan errores. Suele SELECT campo1,campo2, ... FROM tabla
ser buena idea montar una estructura del tipo: 20.2.2 Consultando sólo algunos campos y ordenando la salida
$sql = "INSERT INTO $tabla (nombre, apellido, password) VALUES ('$nombre', SELECT campo1,campo2, ... FROM tabla ORDER BY campo_n [ASC|DESC],
'$apellido','$password')"; campo_m [ASC|DESC]
$resultado=mysql_query($sql,$c);
Genera una lista ordenada por el primero de los campos indicados en ORDER BY, y en caso de
Separando en dos partes la línea de código. coincidencia de valores en ese campo, utilizaríamos el criterio de ordenación señalado en segundo
También suele ser buena noticia añadir un if que nos informe del éxito o fracaso de la operación lugar.
de inserción.
20.2.3 Consulta seleccionando registros
if($sel){
echo ‘fila insertada’; SELECT campo1, ... FROM tabla WHERE condición
}else{ Devuelve la lista de registros que cumplen la condición indicada.
echo ‘fila no insertada’;
} La cláusula WHERE permite un variado abanico de condiciones:
Operador Tipo de campo Sintaxis
= Numérico WHERE campo=num
24 de 33 25 de 33
TIC 2º BTO IES Grande Covián TIC 2º BTO IES Grande Covián
Curso 2017-18 Zaragoza Curso 2017-18 Zaragoza
26 de 33 27 de 33
TIC 2º BTO IES Grande Covián TIC 2º BTO IES Grande Covián
Curso 2017-18 Zaragoza Curso 2017-18 Zaragoza
22. Filezilla
Aplicación de código libre que
permite conectarse a través de
protocolo FTP al servidor donde
tenemos alojada nuestro sitio web.
Una vez realizada la conexión
intercambiar archivos entre nuestro
ordenador y el espacio web que
tengamos reservado en el servidor
es tan sencillo como arrastrar los Para configurar el servidor remoto ir a Servidores:
iconos de estos elementos entre la
ventana que muestra el contenido
de nuestro equipo (ventana de la
izquierda) y la ventana que muestra
el contenido en el servidor (ventana
de la derecha).
28 de 33 29 de 33
TIC 2º BTO IES Grande Covián TIC 2º BTO IES Grande Covián
Curso 2017-18 Zaragoza Curso 2017-18 Zaragoza
Tabla de contenido
1. Introducción a PHP ............................................................................................................. 1
Páginas PHP ........................................................................................................................... 1
Sitios web dinámicos con PHP ............................................................................................... 1
2. Funciones básicas ............................................................................................................... 2
Escribir por pantalla, echo ..................................................................................................... 2
Comentarios .......................................................................................................................... 2
Constantes ............................................................................................................................. 2
Variables ................................................................................................................................ 3
Para terminar haz clic en Guardar. Ya solo quedaría crear un archivo de prueba, guardar y subir Tipos de variables .................................................................................................................. 3
con “Colocar”. Funciones............................................................................................................................... 4
Cosas ...................................................................................................................................... 4
24. Anexo II - Funciones que informan sobre las variables 3. Comunicación cliente-servidor sencilla ................................................................................ 5
Envío de información a través del navegador al servidor ..................................................... 5
En muchos casos nos serán de utilidad: Recepción de información mandada a través navegador..................................................... 5
- sizeof(variable) Devuelve el número de elementos de un array. Con una variable (no array) 4. Formularios ........................................................................................................................ 5
da uno y tanto si se aplica sobre un array vacío, una variable con valor nulo o sobre una Crear el formulario ................................................................................................................ 6
variable no definida, devolverá cero. Elementos de un formulario.................................................................................................. 6
- count(variable) Idéntica a sizeof. 4.2.1 Campo de texto .......................................................................................................... 6
- isset(variable) Comprueba si una variable está definida o no lo está. Si lo está devuelve 4.2.2 Campo de texto PASSWORD ...................................................................................... 7
UNO, en caso contrario NUL. 4.2.3 Botón de opción ......................................................................................................... 7
- is_array(variable) Da UNO si la variable es un array, NUL en el caso contrario. 4.2.4 Casilla de verificación (checkbox)............................................................................... 7
- is_long(variable) ó is_int(variable) ó is_integer(variable) devuelven UNO en el caso de que 4.2.5 Lista, menú ................................................................................................................. 8
la variable sea del tipo y NUL en el caso contrario. 4.2.6 Área de texto (textarea) ............................................................................................. 9
- is_float(variable) ó is_double(variable) ó is_sting(variable) devuelven UNO en el caso de 4.2.7 Campo oculto ............................................................................................................. 9
que la variable sea del tipo y NUL en el caso contrario. 4.2.8 Botón (enviar)............................................................................................................. 9
- unset(variable) Destruye la variable indicada. Se puede aplicar tanto sobre variables, sobre 4.2.9 Botón (reset)............................................................................................................... 9
un array y sobre un elemento de un array. Trabajar con los datos enviados al servidor con el formulario ............................................. 9
5. Operaciones aritméticas ................................................................................................... 10
Formato de presentación de números:............................................................................... 11
6. Arrays ............................................................................................................................... 11
Arrays bidimensionales (o multidimensionales) ................................................................. 11
Función Array ...................................................................................................................... 12
7. Operadores de comparación ............................................................................................. 12
8. Operadores lógicos ........................................................................................................... 12
Varios ................................................................................................................................... 13
8.1.1 Orden de precedencia .............................................................................................. 13
8.1.2 Operadores de preincremento................................................................................. 13
8.1.3 Operadores de post-incremento .............................................................................. 13
9. Operador condicional, orden if ......................................................................................... 13
if sencillo .............................................................................................................................. 13
If ... else ............................................................................................................................... 13
if ... elseif .. else ................................................................................................................... 13
10. La función exit() y la instrucción continue ....................................................................... 14
La función exit() ............................................................................................................... 14
Instrucción continue ........................................................................................................ 14
30 de 33 31 de 33
TIC 2º BTO IES Grande Covián TIC 2º BTO IES Grande Covián
Curso 2017-18 Zaragoza Curso 2017-18 Zaragoza
11. La función switch – (switch con break) ........................................................................... 14 Apuntes elaborados a partir de los materiales:
12. Bucle while .................................................................................................................... 15 - PHP Aplicación en la Enseñanza de Joaquín Álvarez García
13. El bucle do... while ......................................................................................................... 15 - Programación web en PHP (http://www.mclibre.org/consultar/php/index.html) de
14. El bucle for ..................................................................................................................... 15 Bartolomé Sintes Marco
15. Bucles foreach ............................................................................................................... 16 - php para principiantes. Curso con información de sentencias mysqli.
Arrays bidimensionales.................................................................................................... 16 https://www.udemy.com/php-para-principiantes/learn/v4/content
16. Llamadas a ficheros externos ......................................................................................... 16
16.1.1 Seguridad .............................................................................................................. 17
Bases de datos MySQLi............................................................................................................. 18
17. Bases de datos: MySQLi ................................................................................................. 18
18. Creando bases de datos con phpMyAdmin ..................................................................... 18
Creando una base de datos en 000webhost ................................................................... 18
Administrar la base de datos desde phpMyAdmin ......................................................... 19
Conexión con el servidor de bases de datos ................................................................... 20
18.3.1 Conectando a través del fichero mysql.inc........................................................... 20
19. Operaciones MySQLi desde phpMyAdmin ...................................................................... 21
Creación de tablas ........................................................................................................... 21
19.1.1 Campo índice: índices MySQLi .............................................................................. 22
19.1.2 Tipos de campos MySQLi ...................................................................................... 22
Operaciones con tablas ................................................................................................... 23
19.2.1 Insertar un registro en la tabla ............................................................................. 23
19.2.2 Eliminar un registro de la tabla............................................................................. 23
19.2.3 Modificar o eliminar uno de los campos de la tabla ............................................ 23
19.2.4 Añadir un nuevo campo a la tabla ........................................................................ 23
19.2.5 Vaciar o eliminar una tabla ................................................................................... 24
20. Comunicación PHP con MySQLi ...................................................................................... 24
Añadir registros a una tabla............................................................................................. 24
Consultar los registros de una tabla ................................................................................ 25
20.2.1 Consultando sólo algunos campos ....................................................................... 25
20.2.2 Consultando sólo algunos campos y ordenando la salida .................................... 25
20.2.3 Consulta seleccionando registros ......................................................................... 25
Modificar registros........................................................................................................... 26
20.3.1 Modificar un campo en todos los registros de una tabla ..................................... 26
20.3.2 Selección y modificación de un solo registro ....................................................... 27
Eliminar registros de una tabla ........................................................................................ 27
21. Los errores MySQLi ........................................................................................................ 27
22. Filezilla .......................................................................................................................... 28
23. Anexo I - Servidor internet gratuito ................................................................................ 28
Servidor ftp ...................................................................................................................... 28
Crear sitio web en Dreamweaver .................................................................................... 28
24. Anexo II - Funciones que informan sobre las variables .................................................... 30
32 de 33 33 de 33