Guia PHP Nivel 2
Guia PHP Nivel 2
Guia PHP Nivel 2
1
FUNCION PARA GESTIONAR ARCHIVOS .......................................... 33
EJERCICIO PRACTICO ENCUESTA ....................................................... 33
ENCUESTA.PHP ................................................................................... 34
GUARDARENCUESTA.PHP..................................................................... 35
COOKIES .................................................................................................. 38
ELIMINAR COOKIES ............................................................................. 40
SESSIONES .............................................................................................. 41
2
OPERACIONES A LA BASE DE DATOS
donde tengamos una base de datos más real, donde haya más de una
Ejercicio
3
BASE DE DATOS
matricula, posee dos claves foráneas una que viene de la tabla materia y
ellas dos, por lo tanto no podemos crearla sin que previamente este
4
CONEXIÓN.PHP
Este archivo define la ruta de conexión con una base de datos, para
este caso el modelo entidad relación del ítem anterior, para ello usamos
<?php
$link= mysqli_connect("localhost","root","","DB");
?>
MENÚ.HTML
AGREGARMATERIA.PHP
menú.html para así poder tener acceso a cualquier modulo del sistema
5
Después de crear el formulario se debe insertar en la base de datos
cual chequea que estén definida las variable que se envió en el formulario
<?php
include "conexion.php";
if (isset($_POST['materia'])) {
$sql="insert into materia value ('','$_POST[materia]','$_POST[descripcion]')";
if(mysqli_query($link,$sql))
{
print "se inserto con exito";
}
else
{
print "Error".mysqli_error($link);
}
}
?>
6
AGREGARALUMNO.PHP
cual chequea que estén definida las variable que se envió en el formulario
7
<?php
include "conexion.php";
if (isset($_POST['nombre'])) {
$sql="insert into alumno value ('','$_POST[nombre]','$_POST[apellido]')";
if(mysqli_query($link,$sql))
{
print "se insertó con exito";
}
else
{
print "Error".mysqli_error($link);
}
}
?>
MATRICULA.PHP
registrado en una materia que ya exista para ello realizaremos dos lista
8
Se define el código PHP que nos permitirá consultar la información
tanto de los alumnos como de las materias para luego llenar la lista
desplegable
<?php
include "conexion.php";
include "menu.php";
$alumno="select idAlumno,nombre,apellido from alumno";
$a=mysqli_query($link,$alumno);
$materia="select idMateria,nombre from materia";
$m=mysqli_query($link,$materia);
echo mysqli_error($link);
?>
9
Después de ello se define el formulario que debe quedar como se indica
10
<tr><td>Alumno</td>
<td>
<select name="alumno">
<?php while ($v1= mysqli_fetch_array($a)) {?>
<option value=" <?php print $v1[0];?>">
<?php print $v1[1]." ".$v1[2];?>
</option>
<?php } ?>
</select>
</td>
</tr>
<tr><td>Materia</td>
<td>
<select name="materia">
<?php while ($m1 = mysqli_fetch_array($m)) {?>
<option value="<?php print $m1[0];?>">
<?php print $m1[1]?>
</option>
<?php } ?>
</select>
</td>
</tr>
11
claves foránea extraídas del atributo value de la etiqueta <select>, donde
<?php
include "conexion.php";
if (isset($_POST['n1'])) {
$sql="insert into matricula value
('','$_POST[materia]','$_POST[alumno]','$_POST[n1]','$_POST[n2]')";
if(mysqli_query($link,$sql))
{
print "se inserto con exito";
}
else
{
print "Error".mysqli_error($link);
}
}
?>
12
ARREGLOS Y MATRICES
ARREGLOS
entre sí por medio de índices. Los arreglos pueden ser de una o más
13
recorrer los arreglos asociativos (tablas asociativas) que observaremos
más adelante.
Sintaxis
ARRAY ASOCIATIVO
<?php
$a=array("nombre"=>"Joel","apellido"=>"Rodríguez" , "edad"=>20);
echo $a["nombre"]; ?>
14
RECORRIDO DE TABLAS ASOCIATIVAS
<?php
$arr =
array("primero"=>array("nombre"=>"joel","apellido"=>"ruiz","edad"=>20),
"segundo"=>array("nombre"=>"luis", "apellido"=>"perez" ,"edad"=>21),
"tercero"=>array("nombre"=>"vivi", "apellido"=>"Torres", "edad"=>19));
echo $arr["primero"]["nombre"];
echo $arr["segundo"]["nombre"];
?>
15
A continuación se muestra cuadro con las funciones y la descripción.
Función Descripción
current Devuelve el valor del elemento que indica el
puntero
pos Igual que current
reset Mueve el puntero al primer elemento de la tabla
end Mueve el puntero al último elemento de la tabla
next Mueve el puntero al elemento siguiente
prev Mueve el puntero al elemento anterior
count Retorna el número de elementos de una tabla
FUNCION EACH()
each() haya sido ejecutado, el cursor del array será puesto en el siguiente
$visitas=array("lunes"=>200,"martes"=>186,"miércoles"=>190,
"jueves"=>175);
reset($visitas);
while ($var = each($visitas))
{
echo "el día {$var[0]} ha tenido {$var[1]} visitas<BR>";
}
16
FUNCIONES
FUNCIONES
nombre nos sirve para utilizar el bloque de código en algún punto del
valor al algoritmo que las llama, mientras que las acciones no retornan
valor. Tanto las acciones como las funciones pueden tener una
17
Esta es una de las instrucciones más importante en cualquier
Sintaxis:
Ejemplo 1
<?php
function suma($a,$b){
$r = $a+$b;
return $r;
}
$x= suma(5,6);
print "El resultado es: ".$x;
?>
18
Ejemplo 2
<?php
function mayor($x, $y)
{
if($x > $y)
return $x;
else
return $y;
}
print "El mayor es: ".mayor(3,5);
?>
defecto todos los parámetros se pasan por valor, por ello, cuando se
19
se antepone un ampersand (&) al nombre del parámetro en la definición
20
t Número de días en el mes dado 28 a 31
L Indica si es un año bisiesto 1 si es un año
bisiesto, 0 de lo
contrario.
Y Una representación numérica completa de un Ejemplos: 1999 o
año, 4 dígitos 2003
y Una representación de dos dígitos de un año Ejemplos: 99 o 03
a Ante meridiano y Post meridiano en am o pm
minúsculas
A Ante meridiano y Post meridiano en AM o PM
mayúsculas
B Hora Swatch Internet 000 a 999
g formato de 12-horas de una hora sin ceros 1 a 12
iniciales
G formato de 24-horas de una hora sin ceros 0 a 23
iniciales
h formato de 12-horas de una hora con ceros 01 a 12
iniciales
H formato de 24-horas de una hora con ceros 00 a 23
iniciales
i Minutos con ceros iniciales 00 a 59
s Segundos, con ceros iniciales 00 a 59
e Identificador de zona horaria (agregado en Ejemplos: UTC,
PHP 5.1.0) GMT,
Atlantic/Azores
I Indica si la fecha están en hora de ahorro de 1 si es Hora de
luz diurna Ahorro de Luz
Diurna, 0 de lo
contrario.
O Diferencia con la hora Greenwich (GMT) en Ejemplo: +0200
horas
21
T Configuración de zona horaria de esta Ejemplos: EST,
máquina MDT ...
Z Desplazamiento de la zona horaria en -43200 a 43200
segundos. El desplazamiento para zonas
horarias al oeste de UTC es siempre
negativo, y el de aquellas al este de UTC es
siempre positivo.
c Fecha ISO 8601 (agregada en PHP 5) 2004-02-
12T15:19:21+00:00
r Fecha en formato RFC 2822 Ejemplo: Thu, 21
Dec 2000 16:01:07
+0200
U Segundos desde el Epoch Unix (January 1 Vea también time()
1970 00:00:00 GMT)
FUNCION DE CADENAS
Función ord, int ord(str cadena); Devuelve el valor ASCII del primer
104
22
Función strstr, string strstr(string pajar, string aguja); Devuelve todo
blanco del comienzo y del final de la cadena, trim(" hola como estas
23
Función nl2br, string nl2br(string cadena); Devuelve la cadena con
//retorna 7
"/archivo.php"
las cuales nos permiten trabajar con la programación modular, para ello
tendremos
24
CALCULADORA.PHP
numero2) y 4 del tipo radio de opción que será el tipo de operación (tipo
definida en funcion.php
25
<?php include "funcion.php";?>
<form method="POST" action="">
<table border="0" cellspacing="1">
<tr>
<td align="center"> <h3> Calculadora</h3> </td>
</tr>
<tr>
<td width="292" align="center" height="23">
<input type="text" name="num1" size="10"><br>
<input type="text" name="num2" size="10"></td>
</tr>
<tr>
<td width="292" align="center" height="24">
<input type="submit" value="+" name="operacion">
<input type="submit" value="-" name="operacion">
<input type="submit" value="*" name="operacion">
<input type="submit" value="/" name="operacion"><br>
<input type="submit" value="^2" name="operacion">
<input type="submit" value="^3" name="operacion">
<input type="submit" value="Raiz" name="operacion">
</td>
</tr>
<tr> <td width="292" align="center" height="19"><br><b>Resultado: <?php
echo calculo(@$_POST['num1'],@$_POST['num2'],@$_POST['operacion'])
?></b></td>
</tr>
</table>
</form>
26
FUNCION.PHP
<?php
function calculo($num1,$num2,$operacion){
switch($operacion) {
case "+": $resultado = $num1 + $num2;
break;
case "*": $resultado = $num1 * $num2;
break;
case "/": $resultado = $num1 / $num2;
break;
case "-":$resultado = $num1 - $num2;
break;
case "Raiz": $resultado = sqrt($num1);
break;
case "^2": $resultado = $num1*$num1;
break;
case "^3": $resultado = $num1*$num1*$num1;
break;
default: $resultado= 0;
} return $resultado;
} ?>
27
ARCHIVOS
ficheros o archivos, bien sea para recuperar sus datos, o para modificar o
ABRIR UN ARCHIVO
sintaxis:
file_handler=fopen(“nombre_de_archivo”,”modo”);
28
r+ Lectura y escritura; apuntador al inicio del archivo
(sobrescribe el contenido)
del contenido)
como linux no existe esta diferencia así que el indicador b será ignorado.
todas las funciones de tipo fgets, fputs, fclose, fread, fwrite, etc. Con
comienza con "http://" (o HTTP://), php abre una conexión HTTP hacia el
29
del texto de respuesta. Así puedes acceder (en modo lectura solamente) a
completa.
contenido. fopen solo debe usarse para abrir un archivo cuyo contenido
mejor.
CERRAR UN ARCHIVO
fopen.
30
Su sintaxis es fclose (file_handler), Es muy importante cerrar el
fichero al terminar de operar con el, para evitar deterioro de los datos.
Ejemplo 2
<?php
//vamos a ir construyendo un contador básico
//abrimos "contador.txt" en modo lectura
if ($file = fopen( "/otros/contador.txt", "r")) {
// tenemos un puntero ($file) sobre contador.txt
// apunta al comienzo ... Aqui incluiriamos código para recuperar datos
fclose($file); // hemos terminado, cerramos el apuntador
}
// Abrimos el archivo de nuevo, ahora en modo escritura.
if ($file = fopen( "/otros/contador.txt", "w")) {
// tenemos nuevo apuntador. Aqui iria el código que sobreescribiria
// el archivo con los nuevos datos.
fclose($file); //hemos terminado, cerramos el archivo.
}
?>
31
que si usas barras invertidas \ tienes que incluir la barra adicional de
escape \\.
32
FUNCION PARA GESTIONAR ARCHIVOS
Para este ejercicio, vamos a hacer uso de las funciones para abrir y
33
ENCUESTA.PHP
<!DOCTYPE html>
<head>
</head>
<body>
<form method="post" action="resultados.php">
<table width="200" align = "center">
<th colspan ="2" align ="center">
Postre Favorito</th>
<tr>
<td>
<select name="voto">
<option value="v1">Torta de chocolate</option>
<option value="v2">Torta tres leches</option>
<option value="v3">Quesillo</option>
<option value="v4">Torta Selva Negra</option>
<option value="v5">Pie de Limon</option>
</select>
</td>
</tr>
<tr>
<td colspan ="2" align ="center">
<input type="submit" value="Votar"></td>
</tr>
</table>
</form>
</body>
</html>
34
En este archivo simplemente lo que tenemos es un formulario con
una select que contenga las opciones que el usuario puede seleccionar, al
GUARDARENCUESTA.PHP
<!DOCTYPE html>
<head>
</head>
<body>
<p>
<?php
$op1=0;$op2=0;$op3=0;$op4=0;$op5=0;
//variable del archivo para sus próximo uso
$archivo="resultados.txt";
//abrimos el archivo como escritura
$fp=fopen("$archivo","a+");
//grabamos el contenido con el // para poder separarlos
$w=fputs($fp,"$_POST[voto]//");
//volvemos a abrir el archivo
$fp=fopen("$archivo","r");
//leemos el contenido del archivo
$resultado=fread($fp, filesize($archivo));
//separamos el contenido por el simbolo //
$div=explode("//",$resultado);
//contamos el total de votos
$total=count($div)-1;
35
//for, para sumar ++voto
for($i=0; $i<$total; $i++)
{
if($div[$i]=="v1"){
$op1++;
}
if($div[$i]=="v2"){
$op2++;
}
if($div[$i]=="v3"){
$op3++;
}
if($div[$i]=="v4"){
$op4++;
}
if($div[$i]=="v5"){
$op5++;
}
}
$p1=$op1*100/$total;
$p2=$op2*100/$total;
$p3=$op3*100/$total;
$p4=$op4*100/$total;
$p5=$op5*100/$total;
?></p>
36
opción, la siguiente parte del mismo archivo contiene la impresión en
tablas de los resultados anteriormente calculados.
37
COOKIES
petición del servidor web, ya sea directamente desde la propia página web
tiempo
38
La sintaxis es la siguiente:
expire.
Ejemplo
<?php
/* setcookie escribe el contenido de la cookie en el computador del cliente
*/
setcookie("cookie1","Soy la cookie1",time()+3600);
# escribe el valor leído en la cookie
@print "Esta es la <i>variable cookie </i>: ".$_COOKIE['cookie1'];
?>
39
Ejemplo 2
<?php
@$numero=$_COOKIE['visitante'];
$numero+=1;
setcookie("visitante",$numero,time()+86400);
ELIMINAR COOKIES
<?php
setcookie("user", "", time() - 3600);
?>
<html>
<body>
<?php
echo "Cookie 'user' ha sido borrada.";
?>
40
SESSIONES
41
sesión, se creará una sesión nueva. PHP rellenará la variable superglobal
almacenamiento de sesiones.
$ _SESSION.
una cookie. Luego, cada vez que el navegador solicita otra página al
mismo sitio, envía esta cookie (clave única) con la cual el servidor
archivo de texto las variables de sesión que se han creado. Cuando han
42
Una variable de sesión es más segura que una cookie ya que se
navegador del cliente está configurado para desactivar las cookies las
Ejemplo
<?php
session_start();
session_destroy();?>
43