Archivos del Tag: Programacion’

Tutorial: PHP, SQL y Bases de Datos

Sunday, November 29th, 2009

A la hora de hacer grandes proyectos en PHP necesitaremos almacenar y tener clasificados muchos datos en algún lugar. Las Cookies solo nos sirven para almacenar datos temporalmente, y solo es visible para el visitante. Guardar la información en archivos de texto por otro lado resultaría imposible de leer en caso de que tuviéramos muchos datos, sin contar que la seguridad de estos datos seria muy mala.
Para facilitar el almacenamiento de información existen las Bases de Datos.

¿Que son las Bases de Datos?

Son espacios donde se pueden guardar en formato de tablas grandes cantidades de datos. Las Bases de Datos se ordenan de la siguiente Manera:

Bases De Datis

Bases De Datos

Cada Base de Datos cuenta con una serie de tablas y cada tabla tiene diferentes campos (fields) y a su vez estos campo tiene propiedades y valores.  Le llamaremos Registro a este conjunto de campos que conforman una tabla.
De esta manera si visualizamos una Tabla de una Base de Datos la veríamos así.




Campo1 Campo2 Campo3
1 Registro Valor Valor Valor
2 Registro Valor Valor Valor



De esta manera cada vez que insertemos datos dentro de una tabla se irá creando una nueva columna con los datos. Por ejemplo si tuviésemos una tabla que guardara el nombre, el apellido y la edad de distintas personas la visualizaríamos así luego de que 3 personas hallan ingresado sus datos:




Nombre Apellido Edad
1º Javier Letelier 17
2º Jaime Ruiz 52
3º Pedro Troemel 26



Tipos de Bases de datos:

Existen diferentes tipos de Bases de datos, entre estos podemos destacar:

  • Oracle
  • Mysql
  • MS SQL Server
  • Acces

Cada una con sus ventajas y desventajas.

Diseñar Bases de Datos:

Al momento de idear como estará ordenada nuestra base de datos, cuantas tablas, cuantos campos o para que usaremos tablas y no campos etc… deberemos intentar hacerlo de la mejor manera y es aquí donde más tiempo le debemos dar antes de comenzar cualquier proyecto. La Base de Datos debe ser ordenada y estar pensada para poder acceder a los datos de la manera más cómoda posible. Pensando bien una base de datos desde un principio nos ahorraremos problemas luego.



En fin una Base de Datos nos puede ser de gran utilidad al momento de hacer paginas web mucho más dinámicas y ahorrarnos un montón de trabajo.


SQL

Si bien ahora sabemos que es una base de Datos debemos aprender como ingresar datos a esta y manejarlos. Para la interacción con Bases de Datos usamos el Lenguaje SQL (Lenguaje de Consultas Estructurado o Structured Query Lenguage). Este lenguaje es Estándar por ello es soportado por casi todos los tipos de bases de datos.

SQL como dice su nombre funciona a través de Consultas o Querys que no son más que ordenes o preguntas que se le dan a una Base de Datos para que agregue datos o nos los dé.

Funciones Básicas de SQL:




Crear Base de datos:

CREATE DATABASE nombrebase;

Ocuparemos mayúsculas para denotar cuales son las palabras claves de el lenguaje, y minúsculas para las variables y datos ingresados.  Pero realmente no importa por que SQL no distingue entre mayúsculas y minúsculas, pero si es una buena practica para facilitar la lectura.



Borrar Base de Datos:

Una vez creada una base de datos podremos borrarla con todas sus tablas e información.

DROP DATABASE nombrebase;

Usar Base de Datos:

Cuando queramos trabajar con alguna base primero deberemos especificar en cual, para ello usamos:
USE nombrebase;

de ahí en adelante todo lo que escribamos será aplicado sobre la Base de datos “nombrebase”.



Crear Tablas:

Antes de leer el siguiente código, te aviso que no debes asustarte a pesar de que se ve algo más complicado es bastante simple.

CREATE TABLE nombretabla ( campo1 int(6) auto_increment, campo2 varchar(50)  NOT NULL, campo3 varchar(4) NULL, PRIMARY KEY (campo1) );

Esto creará una Tabla dentro de de la base anteriormente especificada con USE, esta tabla tendrá los campos:

  • campo1, que soportara datos enteros (int) de 6 caracteres y se auto-incrementará lo que quiere decir que es un campo que se completa solo con un valor que aumenta a medida que más datos se ingresen.
  • campo2 que soporta texto de máximo 50 caracteres y no puede estar vacía (no puede ser nula)
  • campo3 que puede ser nulo, y que soporta una cadena de texto de máximo 4 caracteres.

Además se especifica que el campo1 sera la clave primaria, lo que quiere decir que es campo que encabeza esa tabla.



Insertar datos en una tabla (Crear un Registro):

Al insertar datos en una tabla nos crea un nuevo registro, que seria como una nueva fila en la tabla. Siendo cada columna un campo. Como en el ejemplo del principio donde 1º, Javier, Letelier 17 era un Registro y 2º,  Jaime Ruiz, 52 era otro.

INSERT INTO nombretabla (campo1, campo2, campo3) VALUES ('valor_campo1','valor_campo2','valor_campo3');

Como vemos los datos se agregan primero especificando la tabla y los campos a rellenar en orden. Luego los valores de cada campo en el mismo orden. En caso de que esta tabla fuese la misma del ejemplo anterior, no sería necesario rellenar el campo1 ya que es de auto-incremento y se podría omitir al igual que el campo3 que puede ser nulo.



Borrar una tabla:

Casi igual que para borrar Bases de datos.
DROP TABLE nombretable;



Consultar:

Luego de que tenemos todos nuestros datos guardados en una tabla lo más seguro es que luego necesito consultarle a la tabla cuales son los datos que esta tiene para esto tenemos diferentes formas.



Seleccionar:

SELECT campo1, campo2 FROM nombretabla;

Esto nos devolverá todos los datos ingresados en los campos campo1 y campo2 de la tabla nombretabla

Si quisiéramos que nos mostrase TODOS los campos podemos usar el comodín *

SELECT * FROM nombretabla;

lo que nos devolvería todos los datos ingresados en todos los campos.

así mismo podemos filtrar las búsquedas para que nos devuelven campos que cumplan ciertas condiciones.

SELECT * FROM nombretabla WHERE campo1="Condición";

Esta consulta nos dará como resultado todos los datos de cualquier campo de la tabla nombretabla que cumplan la condición de que su campo1 tenga el valor Condición

También se puede usar la palabra LIKE para encontrar resultados que no sean idénticos a lo pedido, si no que solo lo contengan.
SELECT *  FROM nombretabla WHERE campo1 LIKE  "%plo%";

como vemos usamos el signo %, que sirve para indicar un “comodín” lo que quiere decir que si ponemos un % antes de la condición se encontraran todos los que terminen en la condición. Si lo tiene al final todas las que comiencen, y si la tiene a los dos lados, no importa donde se encuentre.
Por ejemplo:
%plo% nos devolvería cualquier campo1 que contenga cosas como palabra “Plomero, Ejemplo, aplomar” etc..
si fuera %plo, solo nos encontraria “Ejemplo, Templo, Contemplo”, si fuese plo% nos encontraría solo los que tuviesen “Plomero, Plomo” y por ultimo si fuese a%to% nos encontraria palabras como “Anatomico, Atomico, Atontado, Amatorio, Ato”



Borrar datos de una tabla (Borrar un Registro)

Para borrar un registro ocupamos DELETE, como vemos debemos especificar que borrar para ello ocupamos una condición.Aquí es cuando los campo “Auto-increment” comienzan a ser muy útiles, ya que siempre estos campos tendrán un valor único (Ningún registro más que el mismo tendrán ese numero que se da por el orden en que fueron ingresados) Así podremos borrar un registro especifico.

DELETE FROM nombretabla WHERE campo1="Condición";

Y para borrar uno especifico:
DELETE FROM nombretabla WHERE campoautoincrement=2;

De esta manera nos borrara el registro numero 2.



Actualización y edición de datos (Edición de un registro):

Cuando necesitemos actualizar los datos de algun registro, por ejemplo por que alguien cambio su numero de telefono, o desea cambiar su avatar necesitaremos cambiar ese registro.
UPDATE nombretabla SET campo1 = "Nuevo valor", campo2 = "Nuevo valor2" WHERE campo1="Condición";

Al igual que al borrar datos, nos será muy util usar campos de auto incremento para reconocer registros únicos. Por ejemplo ocupando nuevamente la tabla del ejemplo de las Bases de Datos si quisiéramos cambiar la edad de Pedro podríamos usar:

UPDATE nombretabla SET edad="27" WHERE nombre="Pedro";

y para evitar que podamos cambiar tal vez la edad de otra persona también llamada Pedro seria mejor usar:
UPDATE nombretabla SET edad="27" WHERE id="3";

PHP y SQL

Por fin! ahora podremos desde PHP modificar, crear, actualizar, etc… nuestras bases de datos.
A pesar de que PHP soporta conexión con la gran mayoría de los tipos de bases de datos nosotros hablaremos solo de la conexión con las de tipo MySQL, pero no te sientas tan excluido si no es la que usas tu. Ya que la manera de usarlas es prácticamente igual cambiando tal vez una que otra palabra, busca en Google cuales serian los reemplazos de las funciones.  Por ejemplo una función para conectarse a SyBase es sybase_connect() mientras que la de Mysql es mysql_connect(); como vez no es muy grande la diferencia.



Conectarnos al Servidor

Antes que nada debemos conectarnos al servidor para poder realizar cualquier modificación de nuestra base de datos.
mysql_connect("Servidor","usuario","contraseña");

pero es importante que deberemos dejar la conexión dentro de una variable para poder despues usarla con mayor facilidad.

$conexion=mysql_connect("localhost","myuser","mypass");





Desconectandonos del Servidor

Una vez que hayamos hecho todo lo que necesitábamos deberemos desconectarnos del Servidor, para ello usaremos la funciona mysql_close() dándole como valor nuestra conexión.

$conexion=mysql_connect("localhost","myuser","mypass");
mysql_close($conexion);





Seleccionar Base de Datos.
Es común que se tengan más de una base de datos, por ello deberemos luego seleccionar cual es la base de datos con la cual trabajaremos. Usaremos la función mysql_select_db() y se le dan como valores el nombre de la base de datos y la conexión a la base de datos.

$conexion=mysql_connect("localhost","myuser","mypass");
mysql_select_db("nombreBaseDeDatos",$conexion);
mysql_close($conexion);





Realizar una consulta

Ahora lo más importante, como realizar cualquier clase de consulta a través de PHP.
Para ello usaremos la función mysql_query() y le daremos como valores la consulta misma en SQL y la conexión.
Siempre que esperemos resultados de nuestra consulta deberemos almacenarla en una variable, para después poder acceder a los resultados.

$conexion=mysql_connect("localhost","myuser","mypass");
mysql_select_db("nombreBaseDeDatos",$conexion);
$resultados = mysql_query("SELECT * FROM nombretabla WHERE campo1='condición';",$conexion);
mysql_close($conexion);




Obtener datos de la consulta:

Muchas veces nuestras consultas nos darán respuestas, ya sean tablas completas o numero de resultados para ello contamos con las siguientes funciones.

mysql_num_rows($resultados); Nos dará el numero de registros obtenidos por nuestra consulta.

mysql_result($resultado, registro, campo); Nos dará el valor que tenga el campo de un registro. Su uso es colocando números por ejemplo si ocupamos mysql_result($resultado, 2,4) nos dara el valor del campo que esta en la posición numero 5 (4+1) de el registro encontrado numero 3 (2+1) .


Bueno existen muchas otras funciones que nos permitirán ver los datos en forma de Arrays, saber los nombres de los campos, tipos de datos, crear o borrar Bases etc… Les dejare aquí una pequeña lista sin especificar mucho como se usan, pero de seguro realizando una búsqueda en Google de dicha función encontraran la manera correcta de usarla.

  • mysql_fetch_array($resultado) = Crea un array con los resultados.
  • mysql_field_name($resultado, campo) = Nos da el nombre de un campo.
  • mysql_field_type($resultado, campo) = Nos da el tipo de dato que almacena el campo.
  • mysql_errno() = Numero del ultimo error dado.
  • mysql_error() = Nos da el ultimo mensaje de error dado.
  • mysql_create_db(“NombreBaseNueva”, $conexion) = Crea una nueva base de datos.
  • mysql_drop_db(“Nombrebase”,$conexion) = Borra una base.
  • mysql_free_result($resultados)= Libera la memoria de resultados.




Espero que esto haya sido de utilidad, realmente este tutorial no es más que una pincelada de lo mucho que se puede aprender. Con esto entenderán las bases, pero aun queda mucho por aprender. Busca en Google y documentate.

Video: 100 años de Efectos Especiales.

Saturday, August 22nd, 2009

Queridos lectores, después de tanto tiempo sin publicar nada les dejo este vídeo que a mi parecer es espectacular e inspirador. Lo vi en Aeromental, uno de los mejores blog de latino américa sin duda.
El vídeo esta muy bien cuidado, la música le va muy bien, me gusta como no solo muestran los efectos si no que como seria la escena sin ellos para luego ir transformándola en la que nosotros vemos en los cines.

Como un agregado extra, les quiero pedir perdón a todos los que tienden a leerme.  Muy poco motivado por actualizar el blog he estado por que digamos que el colegio es mi primera prioridad, después mi vida, mis aficiones y luego el blog para el que no me queda tiempo. Además tengo malas noticias para los que seguían el curso de programación de juegos, jia200x el genio tras las publicaciones esta muy ocupado estudiando preparándose para su prueba de selección universitaria (PSU) por lo que no tiene tiempo ni para practicar sus mayores hobbys.
Puede que jestudio.cl, cambie su enfoque que a tenido últimamente para transformarse en una pagina web algo diferente.

Hora del Planeta, asegurar que nuestro PC se apague.

Saturday, March 28th, 2009

Como muchos saben hoy es la hora del planeta, así que les dejo una pequeña recomendación para asegurarnos de que nuestro PC se apague, incluso si nosotros no estamos en casa.
Para ello sigan los siguientes pasos:

(Solo probado en XP, no se si funcione en Vista)
1. Shell de Comandos.
Lo primero que haremos sera ir a Inicio->Ejecutar y luego escribiremos CMD y presionamos ENTER.

2. Ingresando Comandos.

En la ventana que nos aparece escribiremos:
at 20:20 shutdown -s -t 600 -c "El PC se esta apagando, tienes 10 minutos para guardar todo lo necesario"

y presionamos ENTER.

De esta manera, a las 20:20 horas, nuestro pc nos avisara que se apagara en 10 minutos. (Por si llega a agarrar por sorpresa a alguien, este podrá guardar las cosas que este haciendo)

Guía de Programación de Vídeo Juegos, Capitulo 2.

Sunday, March 22nd, 2009

Lo prometido es un hecho, la segunda parte de la Guía de Programación de Vídeo Juegos.
En esta profundizaremos más en la mecánica de un juego, como es las colisiones y la animación.

Recuerdo que todo esta en un Pseudocódigo, por lo cual si tienen dudas y quieren saber más menos como se hace en algún lenguaje en especifico no duden en comentar su pregunta.

Las partes anteriores:

Guia de Programacion de Videojuegos.

Sunday, March 8th, 2009

Como fruto de la genialidad de nuestro nuevo colaborador jia200x y un poco de mi ayuda. Les presentamos a todos los lectores del blog y a los interesados en la Programación de Videojuegos esta excelente guía de la cual podrán aprender los puntos básicos y luego no tan básicos de este “arte”. Explicaciones simples y claras.
Aquí les dejo el primer Capitulo, el segundo pronto lo publicare y esperamos que no nos quedemos solo con esos.

Esperamos sus comentarios.

Programación en Batch 4º Parte

Sunday, June 8th, 2008

Esta es la cuarta parte de otros tres tutoriales más. Ve aquí El primero, El Segundo y El tercero.
En el tutorial pasado vimos como ejecutar acciones en gran cantidad de archivos a la vez y además creamos un código que creaba listas de reproducción para winamp.
Como prometí, ahora les enseñare a hacer listas pero para Windows Media Player, agrege un tema más para que entiendan mejor el código de la lista.

Indice:

  • Acortar direcciones
  • Listas de reproducción para Windows media Player.

Acortar direcciones:

Cuando usamos un for para recorrer los archivos nos devuelve la dirección entera del archivo. Esto es molesto, cuando lo que queremos es solo su nombre, o saber su ubicación.
Ahora les voy a enseñar una técnica para acortar esas direcciones.
En el caso por ejemplo de que la variable X tenga la dirección de un archivo y solo quisiéramos saber su extensión, usaríamos:

%~xX

y si quisiéramos saber en que unidad se encuentra:

%~dX

Para entender un poco mejor esto, miremos esto como una sintaxis.
Siempre se usara %~ seguido de una letra que representa lo que queremos obtener (el nombre, la extensión, etc) y por ultimo el nombre de la variable.
Las letras que podemos usar son:

  • f Ruta y Nombre
  • d Nombre Unidad donde se encuentra
  • p Solo ruta
  • n Solo nombre
  • x Extensión
  • s Ruta abreviada
  • a Atributos
  • t Fecha y hora de creación
  • z Tamaño del archivo

Por ejemplo, este programa nos mostrara algunos datos de los archivos que existan en la misma carpeta y directorios superiores.

@echo off
FOR /R %%X in (*) DO (
echo Nombre: %%~nX
echo Extension: %%~xX
echo Tamaño: %%~zX
echo.
)

Como vez, en el caso de los FOR debemos agregar un % extra adelante.

Lista de Reproducción para Windows Media Player:

Más o menos siguiendo el esquema anterior, lo que hize fue ver como era aproximadamente como era un archivo de Lista de Reproducción. Después de un no muy intenso análisis podemos ver que es así.

<smil><body><seq>
<media src="RUTA NO FIJA DEL ARCHIVO.mp3" />
</seq></body></smil>

El problema que encontré en la sintaxis de los archivos es que al intentar hacer un echo a los signos < y > el código dejaba de funcionar. Pues encontré la solución, simplemente agregando el signo ^ antes de cada < o >. Pues así quedó:

@echo off
echo. > Lista.wpl
echo ^<smil^>^<body^>^<seq^> >> Lista.wpl
FOR %%X in (*.mp3) DO (
echo ^<media src="%%~nX%%~xX" /^> >> Lista.wpl
)
echo ^</seq^>^</body^>^</smil^> >> Lista.wpl
start Lista.wpl
exit

Explicación:

(Si tienes dudas sobre esta explicación, es que no entendiste bien los 3 tutoriales anteriores)

  • @echo off
    Eliminamos el Eco
  • echo. > Lista.wpl
    Creamos un nuevo archivo Lista.wpl o borramos su contenido si existe
  • echo ^<smil^>^<body^>^<seq^> >> Lista.wpl
    Escribimos <smil><body><seq> en la primera linea del archivo Lista.wpl
  • for %%X in (*.mp3) DO ()
    Ejecutar la acción entre paréntesis para cada archivo encontrado con extensión .mp3
  • echo ^<media src=”%%~nX%%~xX” /^> >> Lista.wpl
    Escribir <media src=”NombreArchivo+Extencion”/> en la siguiente linea de Lista.wpl, esta accion se repite por cada mp3 encontrado.
  • echo ^</seq^>^</body^>^</smil^> >> Lista.wpl
    Escribir </seq></body></smil> alfinal del archivo.
  • start Lista.wpl
    Abrir la lista con el programa predeterminado
  • exit
    Cerrar ventana DOS

Pues, eso es todo por hoy. Ojala les sea de gran utilidad. Hasta la próxima ;) (Si es que me da para más)

No gastes discos en imágenes iso, con MagicDisc.

Sunday, June 1st, 2008

CD

A mi me pasa a menudo que me descargo imágenes iso (u otro tipo parecido) y me tengo que dar la lata de copiarlas a un CD para llegar a su contenido, peor es esto si es que la imagen esta dañada o no tiene el contenido que queríamos.
Por eso ahora tengo la solución para todos. MagicDisc es una aplicación que sirve para simular imágenes estilo iso y ver su contenido. Si nos bajamos un juego de PC por ejemplo, no sera necesario pasarlo a un CD, solamente lo “emulamos” y listo.
Es realmente útil, lo recomiendo pueden bajarlo desde aquí: http://www.magiciso.com/tutorials/miso-magicdisc-overview.htm

Programación en Batch 2º Parte.

Sunday, April 20th, 2008

Esta es la segunda parte de mi tip Programación Batch con archivos .bat, así que te recomiendo leerlo si es que no estas instruido en el tema.

A continuación veremos los siguientes temas:

  • Uso de etiquetas
  • Condicionales
  • Creación de Menús
  • Apagado y Reiniciado de Pc con archivos .bat
  • Leer archivos externos
  • Insertar al Registro
  • Otras cosas útiles

Si te interesa, sigue leyendo.
(more…)


JaLeRu Blog vive gracias a WordPress
Entradas RSS y Comentarios RSS.