Sei sulla pagina 1di 24

Clases de PHP

Clase 1: Primeros pasos en PHP Clase 2: Variables y Constantes Clase 3: Estructura condicional (if/elseif/else) Clase 4: Tipos de bucles (while, Do while, for y foreach) Clase 5: Envo de datos de un formulario Clase 6: Vectores, Array, Arreglos en PHP Clase 7: Funciones en PHP Clase 8: Base de Datos Clase 9: MySQL - Crear conexin Clase 10: MySQL Introduccin SQL Clase 11: MySQL Insertar datos Clase 12: MySQL Consultar datos en MySQL Clase 13: MySQL Editar registros

Primeros pasos en PHP


Que es PHP? PHP es un lenguaje de programacin interpretado, diseado originalmente para la creacin de pginas web dinmicas. Es usado principalmente en interpretacin del lado del servidor (server-side scripting) pero actualmente puede ser utilizado desde una interfaz de lnea de comandos o en la creacin de otros tipos de programas incluyendo aplicaciones con interfaz grfica usando las bibliotecas Qt o GTK+. Fuente: Wikipedia Primeros pasos En este curso suponemos que conoses los tags principales del html. Para agregar un programa PHP dentro de una pgina HTML debemos crear un archivo con extencion .php en vez de .html y dentro del contenido de la pagina encerramos los cdigos PHP dentro de los tags <?php y ?> Ejemplo:
<html> <head> <title>Tutorial de PHP</title> </head> <body> <?php echo "Hola Mundo"; ?>

</body> </html>

La mal llamada funcion echo porque en verdad es un constructor del lenguaje, sirve para decir / escribir todo lo que esta dentro de las comillas, en este ejemplo es Hola Mundo. Variables Las variables son elementos al cual le asignamos valores o datos especificos, que puede cambiar a medida que se ejecuta el cdigo. Para definir una variable se le antepone al nombre de la misma el signo $ Ejemplo:
$saludar = "Hola Mundo";

En el ejemplo definimos la variable saludar y el dato que guarda esa variable son las palabras Hola Mundo. Al final de la linea agrege un punto y coma (;) esto se le agrega siempre al final de una instruccin. Para imprimir la variable $saludar vamos a utilizar lo que aprendimos anteriormente que es el echo. Ejemplo:
<?php $saludar = "Hola Mundo"; ?> <html> <head> <title>Tutorial de PHP</title> </head> <body> <?php echo $saludar; ?> </body> </html>

Estructura condicional (if) en PHP


La estructura condicional (if) es fundamental a la hora de hacer una pgina web dinmica, sirbe para que una vez llegado a un cierto punto, tome un camino concreto en determinados casos. Se utiliza el conjunto de instrucciones: if, else y elseif.

Estructura base:
if (Condicin) { Instruccin 1; Instruccin 2; } else { Instruccin A; Instruccin B; }

Cuando la ejecucin llega al punto donde se encuentra la instruccin if, el programa verificar el cumplimiento o no de la condicin. Si la condicin es verdadera se ejecutarn las instrucciones 1 y 2, de lo contrario, se ejecutarn las instrucciones A y B. En los casos en que las condiciones sean varias se agregan if dentro de los if. Estructura:
if (Condicion 1) { Instruccin 1; Instruccin 2; } else { if (Condicion 2) { Instruccin A; Instruccin B; } else { Instruccin X; Instruccin Z; } }

De este modo se pueden introducir tantas condiciones como se quiera dentro de la condicin principal. Una variante de este sistema es utilizando la sentencia elseif, que permite en una sola lnea introducir una condicin adicional:
if (Condicion 1) { Instruccin 1; Instruccin 2; } elseif (Condicion 2) { Instruccin A; Instruccin B;

} else { Instruccin X; Instruccin Z; }

== para ver si una variable es igual a otra. != distinto. >= mayor o igual. > mayor. <= menor o igual < menor La mejor forma de entender esta estructura condicional es por medio de ejemplos. El primero que nos plantearemos es generar un valor aleatorio (es decir lo elige la mquina al azar, como extraer una bolilla de un bolillero de lotera) comprendido entre 1 y 10. Luego mostraremos un mensaje si es menor o igual a 5 o si es mayor a 5. El programa completo es:
<html> <head> <title>Problema</title> </head> <body> <?php $valor=rand(1,10); echo "El valor sorteado es $valor<br>"; if ($valor<=5) { echo "Es menor o igual a 5"; } else { echo "Es mayor a 5"; } ?> </body> </html>

Ahora vamos a poner en ejemplo un if con otro if dentro


<html> <head> <title>Problema</title> </head> <body> <?php $valor=rand(1,100); echo "El valor sorteado es $valor<br>"; if ($valor<=9) {

echo "Tiene un dgito"; } else { if ($valor<100) { echo "Tiene 2 dgitos"; } else { echo "Tiene 3 dgitos"; } } ?> </body> </html>

Lo que hace este script es saber si el nmero generado aleatorioamente por nuestro servidor, esto lo hace la lnea $valor=rand(1,100);, tiene 1, 2 o 3 digtos. Si el valor generado es menor a 9 tiene 1 digto, si no es menor a 9 sigue otro camino para saber si tiene 2 o 3 digtos. El mismo ejemplo con la estructura if/elseif
<html> <head> <title>Problema</title> </head> <body> <?php $valor=100;//rand(1,100); echo "El valor sorteado es $valor<br>"; if ($valor<=9) { echo "Tiene un dgito"; } elseif ($valor<100) { echo "Tiene 2 dgitos"; } else { echo "Tiene 3 dgitos"; } ?> </body> </html>

Para hacer esta clase me gue en la explicacin que dio la pagina PHPYA para buscar la mejor forma de que entiendan esto que se me hacia difcil de explicar.

Tipos de bucles en PHP

Un bucle sirve para ejecutar repetidas veces una tarea, por ejemplo , una funcin que muestra los ultimos 5 usuarios registrados, lo unico que cambia es el nombre del usuario pero la estructura es siempre la misma. En PHP existen cuatro tipos de bucles: while, Do while, for y foreach Bucle while El bucle while repite todo lo que esta dentro del bloque hasta que la condicion pase de true a false. Estructura
while (condicin) { [Instrucciones]; }

En este ejemplo vamos a contar hasta 30, cuando llege al nmero 30 se va a detener el bucle.
<html> <head> <title>Clase de PHP: Bucles</title> </head> <body> <?php $desde=1; while($desde<=30) { echo $desde; echo "<br>"; $desde++; } ?> </body> </html>

La variable $desde tiene el valor 1 antes de iniciar el while. Cada vez que se ejecuta el bloque del while se le incrementa $desde en 1, cuando la variable $desde llegue a 30 se detendra el while y seguira prosesando el resto de la pgina. Es importante notar que luego de la condicin del while NO disponemos PUNTO y COMA.

Bucle do while Este bucle no es muy diferente al anterior, la nica diferencia es que primero ejecuta la instruccion y despus se fija si cumple la condicin, al cumplicar vuelve a ejecutar una vez ms y as sucesivamente Estructura
do { [Instrucciones]; } while (condicin);

Tener en cuenta que al final de la lnea del while SI LLEVA punto y coma. Bucle for El bucle for tiene la siguiente estructura
for([Inicializacin de la variable];[Condicin];[Incremento o decremento de la variable]) { [Instrucciones]; }

Siguiendo el mismo ejemplo anterior, el de contar del 1 al 30, lo vamos a hacer con el bucle for ahora.
<html> <head> <title>Clase de PHP: Bucles</title> </head> <body> <?php for($i=1;$i<=30;$i++) { echo $i; echo "<br>"; } ?> </body> </html>

Este ciclo se repite hasta que la condicion for se verifica false, es decir, en este ejemplo va a repetir las veces que sea necesaria para que $i llege con el valor 30. En este caso inicia la variable en el valor 1, puede ser cualquier nmero. El segundo argumento es la condicin en este caso es que tiene que repetir hasta que $i llege a 30. El tercer argumento es el incremento o decremento de la variable $i, en este caso es $i++, es

decir, se incrementa en 1 el valor de $i. (tambin podemos poner en lugar de $i++ la asignacin $i=$i+1) Bucle foreach El bucle foreach nos permite iterar para cada elemento de un vector. Estructura
<?php $vector = array("uno", "dos", "tres"); foreach ([Nombre del array] as [Variable que identifica el valor del elemento]) { [Cdigo] } ?>

su sintaxi es sencilla, solo hay que indicar el identificador de la matriz, la expresion as y seguidamente la variable que identificar el valor del elemento. Ejemplo:
<?php $vector = array("uno", "dos", "tres"); foreach ($vector as $valor) { echo "Valor: $valor<br>"; } ?>

$vector es la variable donde esta alojado el array y $valor es la variable que identificar al valor del array. El bucle foreach tambien nos permite trabajar con vectores con indice en este caso la estructura es la siguiente
<?php $vector = array( "uno" => 1, "dos" => 2, "tres" => 3, "diecisiete" => 17 ); foreach ($vector as $key => $value) { echo "$key vale $value <br>"; } ?>

Como vemos en este caso especificamos la variable que identifica el indice y la que identifica el valor separadas por =>

Envo de datos de un formulario con PHP


En esta clase vamos a hablar del envo de datos de un formulario. El proceso que se lleva a cabo para el manejo de formularios requiere 2 etapas, una es donde esta el formulario y la otra donde esta lo que procesa los datos del formulario. Esto se puede hacer en 2 pginas o hacer las 2 etapas en una sola. En el ejemplo que vamos a usar se van a procesar los datos en 2 pginas diferentes as no se confunden. Suponemos que tenemos un formulario que nos pide ingresar nuestro nombre algo bien simple
<html> <head> <title>Formulario de entrada del dato</title> </head> <body> <form method="post" action="pagina2.php"> Ingrese su nombre: <input type="text" name="nombre"> <br> <input type="submit" value="confirmar"> </form> </body> </html>

Los tags <form> y </form> nos permiten definir el formulario en la pgina. Dentro de <form> obligatoriamente hay que ingresar 2 propiedades que son action y method. La primera, action, indica el nombre del archivo que procesara los datos enviados del form al apretar el boton (submit). La propiedad method es como se codifican estos datos para enviarlos, pueden ser mediante POST y GET (Normalmente los datos de un formulario se envan va POST). Mediante POST se enva la informacin en forma oculta. En cambio con el metodo GET la informacin nos va a aparecer en la url del sitio. Para crear un cuadro de texto para el ingreso del nombre debemos definir un objeto de tipo "text" y darle un nombre:
<input type="text" name="nombre">

La propiedad type nos permite definir el tipo de control y con la propiedad name indicamos el nombre del control. Por ltimo todo formulario tiene un botn de tipo submit:
<input type="submit" value="confirmar">

Tambin utilizamos la marca input pero en la propiedad type indicamos que se trata de un botn de envio de datos. En la propiedad value indicamos el texto que queremos que aparezca en el botn. Ahora necesitamos una pgina para procesar los datos del formulario que se tiene que llamar de la misma manera que pusimos la propiedad action del fomulario, en este ejemplo pagina2.php.
<html> <head> <title>Captura de datos del form</title> </head> <body> <?php echo "El nombre ingresado es:"; echo $_POST['nombre']; ?> </body> </html>

Para acceder al dato del formulario mediante PHP utilizamos $_POST o $_GET, en este caso $_POST y entre corchetes y comillas ['Ac nombre del input'] ponemos le nombre del input que deseamos tomar los datos (dicho nombre es sensible a maysculas y minsculas). Esta clase no termine ac, pero para no hacer la clase tan larga prosigo maana. Quiero agradecer a PHPYA por guiarme de alguna manera a las palabras correctas para explicar esta clase.

Vectores, Array o Arreglos en PHP

Hace mucho que no creamos nuevas clases, pero aca una nueva. En el da de hoy vamos a tocar el tema de Vectores (Arrays). Un array permite guardar muchas informaciones en una sola variable, en la cual va a estar distribuidas por un ndice. Por ejemplo, quiero guardar diferente informacin sobre Carlos en la variable $carlos, lo hacemos de la siguiente manera:
<?php $carlos['nombre'] = "Carlos Samuel"; $carlos['apeliido'] = "Fulanito"; $carlos['edad'] = "21"; $carlos['direccion'] = "Av Siempre viva 1143";

// Para imprimir, por ejemplo la direccin de Carlos hacemos esto, echo $carlos['direccion']; ?>

Ahora le voy a mostrar otra forma que se le asigna un valor entero automaticamente como ndice. Vamos a imprimirles el mismo ejemplo anterior, pero con esta manera.
<?php $carlos[] $carlos[] $carlos[] $carlos[] = = = = "Carlos Samuel"; // Tiene como ndice el nmero 0 "Fulanito"; // Tiene como ndice el nmero 1 "21"; // Tiene como ndice el nmero 2 "Av Siempre viva 1143"; // Tiene como ndice el nmero 3

// Para imprimir, por ejemplo la direccin de Carlos hacemos esto, echo $carlos[3]; ?>

Una vez explicado esto, le doy todas las formas posibles para hacer lo mismo que en los ejemplos anteriores.
<?php $carlos = array('Carlos Samuel','Fulanito','21','Av Siempre viva 1143'); // Para imprimir, por ejemplo la direccin de Carlos hacemos esto, echo $carlos[3]; ?> <?php $carlos = array ( "nombre" => "Carlos Samuel", "apeliido" => "fulanito", "edad" => 21, "direccion" => "Av Siempre viva 1143" ); // Para imprimir, por ejemplo la direccin de Carlos hacemos esto, echo $carlos['direccion']; ?>

(*) Tambien se puede hacer un array con varios arrays, ms adelante lo voy a explicar (**) La cantidad de elementos de un array se puede obtener con la funcin count($carlos);

Funciones en PHP

El da de hoy vamos a aprender a utilizar funciones, las funciones nos sirven a la hora de reutilizar un cdigo para ejecutar un conjunto de instrucciones. Sintaxis
function [nombre de la funcin]([parmetros]) { [instruccion] }

Ejemplo
function negrita($palabra) { $resultado = "<strong>".$palabra."</strong>"; return $resultado; }

En este ejemplo, lo que hace es obtener X cantidad de palabras y aplicarle negrita a esas palabras. Ahora te voy a explicar la estructura, negrita es el nombre de la funcin, $palabra es la variable en la cual nosotros vamos a guardar el texto a convertir a negrita, dentro del cuerpo de la funcin tenemos los cdigos que hacen que se convierta en negrita y despus con un return devolvemos el resultado. Para hacer correr esta funcion lo hacemos con su nombre y pasando los parmetros que requiere en este caso uno solo.
echo negrita("Este texto va a aparecer en negrita");

En este otro ejemplo vamos a utilizar 3 parmetros para pasar el nombre, la edad y el telfono de X persona.
function texto($nombre,$edad,$telefono) { $resultado = "Mi nombre es ".$nombre." y tengo ".$edad." aos, llamame al ".$telefono.""; return $resultado; }

Para llamar a esta funcion e imprimirla hacemos esto


echo texto("Marco",15,11111111);

Cada parametro va separado por coma (,) y entre comillas salvo los nmeros que no hace falta.

Bases de Datos
En esta clase vamos a hablar sobre base de datos, va ser fundamental para que entiendan de que se trata todo esto.

Qu es una base de datos? Una base de datos o banco de datos es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemticamente para su posterior uso. En este sentido, una biblioteca puede considerarse una base de datos compuesta en su mayora por documentos y textos impresos en papel e indexados para su consulta. En la actualidad, y debido al desarrollo tecnolgico de campos como la informtica y la electrnica, la mayora de las bases de datos estn en formato digital (electrnico), que ofrece un amplio rango de soluciones al problema de almacenar datos. Fuente: Wikipedia Servidores de base de datos - MySQL - Microsoft SQL Server - Oracle - PostgreSQL - SysBase - FrontBase - Informix - InterBase - Ingres - mSQL - dBase - SQLlite La base de datos ms empleada con PHP es MySQL ya que es muy potente y gratuito. Esta clase fue cortita, pero necesaria, ahora me encuentro creando las dems clases.

MySQL - Crear conexin


Conectar la Base de Datos MySQL con PHP es el primer paso a dar. Al tener una conexin podremos insertar, editar y consultar registros en la Base de Datos. Creando conexin Para conectarnos a MySQl utilizamos la funcin mysql_connect en el cual recibe 3 parmetros, y para seleccionar la Base de Datos utilizamos la funcin mysql_select_db.
$link = mysql_connect("localhost", "usuario", "clave"); mysql_select_db("demo", $link);

Tenes que editar estos datos con tu respectiva informacin.


localhost: es la direccin IP o el nombre del servidor de base de datos. usuario: nombre usuario para acceder a MySQL. clave: clave de acceso a MySQL. demo: Nombre de la Base de Datos.

Desconectando Una vez que creamos la conexin e hicimos las consultas necesarias a nuestra Base de Datos tenemos que cerrar la conexin de esta forma liberamos recursos del servidor y mejoramos el rendimiento de nuestra aplicacin.
mysql_close($link);

Recomendaciones

Se recomienda hacer la conexin en un archivo externo, para poder utilizarlo en diferentes pginas. De esta forma si cambiamos de servidor solo editamos el archivo de conexin con los nuevos datos de conexin. Es recomendable cerrar siempre las conexiones, esto previene que la aplicacin tenga errores por exceso de conexiones.

MySQL - Introduccin SQL

El lenguaje de consulta estructurado o SQL (por sus siglas en ingls structured query language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en stas. Una de sus caractersticas es el manejo del lgebra y el clculo relacional permitiendo efectuar consultas con el fin de recuperar -de una forma sencilla- informacin de inters de una base de datos, as como tambin hacer cambios sobre ella. Fuente: Wikipedia Ejemplo a usar Para todos las clases vamos a utilizar siempre el mismo ejemplo, con lo mismo items, ect. para que vean la diferencia y aprendan ms rpido. El ejemplo que vamos a dar es una agenda de contactos, imaginense para cada persona vamos a guardar su nombre, telefono, direccion, foto (opcional). Entonses vamos a crear una tabla llamada personas en la cual tendra 5 campos:

id: es el identificador de cada persona cual ser un nmero entero.

nombre: es el campo donde se guarda el nombre de la persona. telefono: este campo guarda el telefono de la persona. direccion: ac se van a guardar la direccion. foto: en este campo se va a guardar el nombre de la foto de la persona.

Crear tablas Para crear la tabla en la Base de Datos utilizamos CREATE TABLE, donde se expicifica cada campo, tambien indicando el tipo de dato que vamos a almacenar en los campos. Entre los principales tipos de datos disponibles tenemos:

int: que permite guardar nmeros enteros. float: permite almacenar datos decimales. date: para guardar fechas, el formato de la fecha es aaaa-mm-dd. datetime: es para guardar fecha y hora, el formato es aaaa-mm-dd hh:mm:ss. time: para almacenar la hora, el formato de la hora es hh:mm:ss. char(n): almacena una cadena de texto de longitud fija n (De 0 a 255 caracteres). varchar(n): para cadenas de tamao variable de hasta n caracteres (De 0 a 255). text es un campo para almacenar textos de hasta 65535 caracteres.

Para nuestro ejemplo crearamos la tabla con 5 campos, donde el primero de ellos ser el identificador de la persona que ser un entero que ser ir auto-incrementando.
CREATE TABLE personas ( id INT(11) NOT NULL AUTO_INCREMENT, nombre VARCHAR(180), telefono INT(10), direccion VARCHAR(180), foto VARCHAR(280) )

Notese que por cada campo definimos el tipo de dato que puede almacenar. Los campos nombre y direccin aceptan textos de hasta 180 caracteres mientras que el campo foto solo acepta 280 caracteres como mximo. Insertar datos Para insertar datos en las tablas haremos uso de la sentencia INSERT INTO, para ello podemos indicar los campos con sus respectivos valores, esto respetando los tipos de datos aceptados. Para nuestra tabla recin creada, insertaremos registros de la siguiente forma:
INSERT INTO personas (nombre, telefono, direccion, foto) VALUES ('Marco', 51205120, 'calle falsa 123', 'marco.png')

Como se aprecia no es necesario incluir el dato para el id por el del tipo AUTO_INCREMENT lo cual significa que se crear automticamente y con un valor incrementado en 1 al anterior registro. Si estamos insertando todos los valores de una tabla, podemos sacar los nombres de los campos si mantenemos el mismo orden en el que fueron creados los campos.
INSERT INTO personas VALUES ('Marco', 51205120, 'calle falsa 123', 'marco.png')

Tambin se pueden insertar solo algunos campos de la tabla y no necesariamente en el orden en que fueron creados los campos en donde si debemos indicar los nombres de los campos, por ejemplo:
INSERT INTO personas (nombre, telefono) VALUES ('Marco', 51205120)

Editar datos Para editar, actualizar registro de una tabla se utiliza UPDATE, donde indicamos la tabla donde se harn los cambios, los campos a reemplazar con sus respectivos valores asi como la condicin que se debe cumplir para realizar el cambio de los datos. Para hacer uso de estas condiciones, MySQL provee de funciones de comparacin como:

= para comparar si dos valores son iguales. <> para comparar si dos valores son diferentes. != para comparar si dos valores son diferentes. Igual al operador <>. <= compara si un dato es menor o igual a otro. < verifica si el datos es menor a otro. => para compara si el datos es mayor o igual a otro. > prueba si el datos es mayor a otro. IS NULL devuelve verdadero si el campo es nulo. IS NOT NULL verdadero si el campo no es nulo.

Adicionalmente se pueden utilizar las funciones booleanas como NOT, AND, OR y XOR. Continuando con nuestro ejemplo, suponiendo que tenemos registrada una persona con el identificador 57, podramos actualizar los datos de la siguiente forma:
UPDATE personas SET nombre = 'Pepe', direccion = 'Avenida siempre viva 1647' WHERE id = 57

Tambin podramos asignar una imagen por defecto a todas las empresas que no tengan logo, para ello haramos:
UPDATE personas

SET foto = 'nofoto.png' WHERE foto IS NULL

Eliminar datos con SQL Para eliminar una tabla de MySQL utilizamos DELETE FROM, solo hay que indicar con la clausara WHERE las entradas que queremos eliminar. En nuestro ejemplo eliminaremos todas las personas que tengan el campo del nombre vacio o nulo.
DELETE FROM personas WHERE nombre IS NULL OR nombre = ''

Consultar datos con SQL Para consultar datos (extraer datos) de una tabla se utiliza SELECT indicando los campos que deseamos extraer y el nombre de la tabla que utilizaremos. Para nuestra tabla de ejemplo si deseamos consultar todas nombres y direcciones de las empresas:
SELECT nombre, direccion FROM personas

Se pueden utilizar alias para los campos extrados, por ejemplo:


SELECT nombre AS 'Nombre', direccion AS 'Direccin' FROM personas

Si deseamos extraer todos los campos podemos utilizar el caracter *.


SELECT * FROM personas

Filtrando los resultados Podemos aplicar condiciones a nuestras consultas con la directiva WHERE. Para extraer la personas con identificador 57 la consulta sera:
SELECT * FROM personas WHERE id = 57

Si deseamos mostrar todas las empresas que tengan registradas su direccin:


SELECT * FROM personas WHERE direccion IS NOT NULL

Tambim podriamos consultar todas las empresas cuyo nombre empiece con la letra A.
SELECT * FROM personas WHERE nombre LIKE 'A%'

Ordenando los resultados Para el ordenamiento de los resultados se utiliza ORDER BY, este define por que campo se har el ordenamiento as como si ser en forma ascendente (ASC) o descendente (DESC). Si utilizamos nuestra tabla de ejemplo podramos listar todas las empresas en orden alfabetico:
SELECT * FROM personas ORDER BY nombre ASC

Contando los resultados Es posible contar los registros utilizando COUNT, esto unido al filtro de datos es til para hacer conteos de datos. Si deseamos conocer cuantas empresa registradas tenemos:
SELECT COUNT(*) FROM personas

Podramos conocer cuantas empresas tienen registradas direcciones vacas:


SELECT COUNT(*) FROM personas WHERE direccion = ''

Limitando los resultados MySQL permite limitar la cantidad de resultados utilizando la palabra LIMIT, esta sentencia es muy flexible pues permite definir a partir de que registro y la cantidad de datos devueltos. Si deseamos visualir las 5 ultimas empresas registradas en nuestra tabla tendramos:
SELECT * FROM empresa ORDER BY id DESC LIMIT 5

Si estamos mostrando los resultados ordenados alfabeticamente en grupos de 10, tendramos:


/* Para mostrar los primero 10 SELECT * FROM empresa ORDER BY /* Para mostrar los siguientes SELECT * FROM empresa ORDER BY resultados */ nombre ASC LIMIT LIMIT 0, 10 10 resultados */ nombre ASC LIMIT LIMIT 10, 10

Ahora ya podemos crear, editar, eliminar y consultar los datos utilizando condiciones con la posibilidad de filtrar, ordenar y limitar los resultados.

MySQL - Insertar datos


En esta clase te voy a mostrar como insertar datos en una base de datos, como ejemplo e creado una agenda en la cual la dividi en fragmentos, insertar datos, buscar datos, ver datos y editar datos. Si no entienden esto, ver la clase anterior Crear conexion y Introduccion Sql Cremos la conexin Para tener todo ordenado la conexin a la MySQL la hacemos desde el archivo config.php y despus por medio de un include lo agregamos a las pginas que necesita conectarse a la Base de Datos.
// Configuracion de la base de datos. $dbhost = "localhost"; // Servidor $dbuser = "root"; // Usuario $dbpass = "marco"; // Contrasea $dbname = "agenda"; // Tabla // Creando conexion. $link = mysql_connect($dbhost,$dbuser,$dbpass); // Conectamos a la base de datos mysql_select_db($dbname,$link); // Seleccionamos la base de datos

Agregamos los datos Para agregar datos a la Base de Datos y tener nuestro script PHP lo ms limpio posible, lo que hacemos es poner la consulta SQL (SELECT, INSERT, UPDATE, etc.) en una variable y despues la agregamos a la funcin mysql_query
// Incluimos la configuracion y conexion a la MySQL. include('config.php'); // Insertamos los datos en la base de datos, si da algun error lo muestra. $sql = "INSERT INTO personas (nombre, telefono, direccion, foto) VALUES ('".$nombre."','".$telefono."','".$direccion."', '".$foto."')"; mysql_query($sql,$link) or die(mysql_error());

Como pueden ver la creacin de datos es sencilla, solo necesitamos crear la consulta adecuada y la enviamos mediante mysql_query. Ejemplo Como dije anteriormente vamos a utilizar como ejemplo el funcionamiento en una agenda, ya que viene perfecto para nuestras clases. Abajo dejo la descarga de la agenda, solo la parte de insertar registros y las configuracin, ms adelante la vamos a ir armando juntos.

Esta clase esta asociada con el archivo agregar.php, en el cual tiene un formulario que envia los datos al PHP que esta todo explicado.

MySQL - Consultar datos en MySQL

En esta clase vamos a ver como consultar datos desde la Base de Datos, esto es una tarea muy comun para crear cualquier tipo de script, ya sea una agenda, un sistema de usuarios, ect. Las clases anteriores fueron: Como hacer conexion a la Base de Datos y Como insertar datos, sino lo leiste te recomiendo que lo hagas. Extrayendo y mostrando los datos Para extraer datos de la Base de Datos, vamos a crear una variable que contenga la consulta SQL (SELECT, INSERT, UPDATE, etc.) y despues la agregamos a la funcin mysql_query. Entonses primero incluimos el archivo config.php que crea la conexion a MySQL y depues creamos la consulta.
// Incluimos la configuracion y conexion a la MySQL. include('config.php'); // Definimos el ID de la persona a editar. $id = htmlentities($_GET['id']); // Mostramos los datos $sql = "SELECT * FROM personas WHERE id='".$id."' LIMIT 1"; $query = mysql_query($sql,$link); $row = mysql_fetch_assoc($query);

En este caso, vamos a extraer datos de la persona cuyo id es el que nosotros pongamos en la url, Ejemplo: ver.php?id=1 mostrara datos de la persona que tenga el id 1. El id se obtiene via GET osea desde la URL. mysql_fetch_assoc devolver un array asociativo con el siguiente registro devuelto por la consulta. Para mostrar los datos hacemos un echo a $row['nombre del campo']; Por ejemplo tengo el campo nombre en la Base de Datos y lo quiero imprimir en pantalla.
// Devolvera el nombre de la persona cuyo id es el que definimos echo $row['nombre'];

Esta explicacin esta asociada con el archivo ver.php en el cual esta para descargar en el pie del artculo.

Crear un buscador Una vez que entendiron como pedir datos de la MySQL, podemos crear un buscador de personas para nuestra agenda. Para esto creamos un formulario, donde hay que introducir el nombre de la persona a buscar.
<form action="buscar.php" method="get"> <input type="text" name="q" id="q" /> <input type="submit" name="agendar" value="Buscar" /> </form>

Una vez enviado el formulario, recuperamos los datos, los precesamos y lo enviamos a la consulta. Primero verificamos que se alla apretado el boton Agendar y se alla enviado escrito algo en el input q, pasamos la informacin del input q a una variable y le ponemos un poco de seguridad con la funcin htmlentities y ahora si creamos la variable con la consulta SQL.
if($_GET['agendar']) { // Verificamos que no alla ningun dato sin rellenar. if(!empty($_GET['q'])) { $nombre = htmlentities($_GET['q']); $sql = "SELECT * FROM personas WHERE nombre LIKE '%".$nombre."%'"; $query = mysql_query($sql,$link); // Mostramos un mensaje diciendo que todo salio como lo esperado $msg = "Resultados para el nombre ".$nombre; } else { // Si hay un dato sin rellenar mostramos el siguiente texto. $msg = "Falta rellenar algun dato"; } }

En la consulta vamos a utilizar la sentencia LIKE explicada en la clase, Introduccin SQL Como una busqueda puede tener de 1 a infinitos datos, para mostrar los datos vamos a utilizar un while.
<?php if($_GET['agendar'] && !empty($_GET['q'])){ while($row = mysql_fetch_assoc($query)){ ?> <a href="ver.php?id=<?=$row['id']?>"><?=$row['nombre']?></a> <?php } }

?>

En este ejemplo mostrara todas las personas que en su nombre contengan las letras introducidas en el input q, y con un while creara una lista con cada nombre y su respectivo link de perfil.

MySQL - Editar Registros


En esta clase vamos a ver como Editar Registros en la Base de Datos, como ejemplo vamos a seguir utilizando una agenda. Para editar los datos guardados en nuestras tablas utilizamos la sentencia UPDATE explicada en Introduccion a SQL. El proceso mostrara primero un formulario con los datos que tenemos guardados, luego el usuario puede modificar los datos y enviar el formulario. Al recibir los datos desde el formulario creamos una consulta SQL y lo enviamos a MySQL con la funcin mysql_query. Consultado a la MySQL En este paso vamos a obtener los datos del registro seleccionado, para ello utilizamos como filtro el identificador del registro el cual lo estamos pasando como parmetro GET.
// Definimos el ID de la persona a editar. $id = htmlentities($_GET['id']); // Hacemos el filtrado, y consulta. $sql = "SELECT * FROM personas WHERE id='".$id."' LIMIT 1"; $query = mysql_query($sql,$link); $row = mysql_fetch_assoc($query);

Para entender este prosedimiento tienen que aver leido las clases anteriores. En el cual explicamos cada paso y explicamos de donde obtenemos el id. Mostrando datos Con la consulta y el filtrado del paso anterior va a devolver los datos de cuya persona tenga el parmetro enviado va GET
<form action="editar.php?id=<?=$id?>" method="post" > <strong>Nombre</strong> <input type="text" name="nombre" value="<?=$row['nombre']?>" /> <strong>Telfono</strong> <input type="text" name="telefono" id="telefono" value="<?=$row['telefono']?>" /> <strong>Direccin</strong>

<input type="text" name="direccion" id="direccion" value="<?=$row['direccion']?>" /> <strong>Foto</strong> <input type="text" name="foto" id="foto" value="<?=$row['foto']?>" /> <input type="submit" name="agendar" value="Editar" /> </form>

En el formulario va a parecer inputs con los datos obtenidos de la consulta, en el cual se puede editar y cuando finalizemos apretamos el boton Editar y har una actualizacin ( UPDATE ) a los datos de nuestra persona. Editando los datos Este paso es el siguiente despus de apretar el boton Editar
if($_POST['agendar']) { // Verificamos que no alla ningun dato sin rellenar. if(!empty($_POST['nombre']) || !empty($_POST['telefono']) || !empty($_POST['direccion'])) { // Pasamos los datos de los POST a Variables, y le ponemos seguridad. $nombre = htmlentities($_POST['nombre']); $telefono = htmlentities($_POST['telefono']); $direccion = htmlentities($_POST['direccion']); $foto = htmlentities($_POST['foto']); // Insertamos los datos en la base de datos, si da algun error lo muestra. $sql = "UPDATE personas SET nombre='".$nombre."', telefono='".$telefono."', direccion='".$direccion."', foto='".$foto."' WHERE id='".$id."'"; mysql_query($sql,$link) or die(mysql_error()); // Mostramos un mensaje diciendo que todo salio como lo esperado $msg = "Persona editada correctamente"; } else { // Si hay un dato sin rellenar mostramos el siguiente texto. $msg = "Falta rellenar algun dato"; } }

Lo que hace este cdigo php es verificar que se apreto el boton Editar y tambien comprobar que los inputs no esten vacos. Tambien le pone un poco de seguridad, para evitar inyecciones. Una vez que los 2 if nos dio como resultado true, actualiza los datos de la persona a editar.
Esta clase esta asociada con el archivo editar.php

Potrebbero piacerti anche