jueves, 14 de abril de 2011

php

http://redmine.lighttpd.net/projects/lighttpd/wiki

domingo, 18 de abril de 2010

Fechas con MySQL: "El manejo de fechas en MySQL es extenso así que solo haré una introducción a las funciones de fechas. Para ejecutar las siguientes querys yo recomiendo usar "mysql gui tools".

Obtener la fecha y hora en MySQL

Código :


select now();   #   ejemplo:  '2010-01-12 10:50:43'

Obtener solo día mes y año en MySQL

Código :


select CURDATE();  # ejemplo: '2010-01-12'  #sin hora

Obtener hora actual en MySQL

Código :


select curTime(); #Selecciona la hora

Obtener día, mes, año, u hora de una fecha en MySQL


El formato de la fecha debe ser YYYY-MM-DD HH:MM:SS, aunque para obtener el año, mes o día solo es necesario YYYY-MM-DD

Código :


select YEAR(NOW());  #Selecciona el año
select MONTH (NOW()) as mes;  #Selecciona el mes
select DAY(NOW()) as dia; #Selecciona el día
select TIME(NOW()) as hora;  #Selecciona la hora
Select LAST_DAY(NOW()); # Selecciona el ultimo dia del mes

También existe MICROSECOND, SECOND, MINUTE, HOUR, MONTHNAME, etc.

Dar formato a una fecha en MySQL


Para esto usamos Date_format, DATE_FORMAT(fecha,formato); ejemplo:

Código :


select Date_format(now(),'%Y/%M/%d'); # '2010/January/12'
select Date_format(now(),'%Y-%M-%d %h:%i:%s %p'); #'2010-January-12 12:34:29 AM'
select Date_format(now(),'%W %d %M %Y'); # 'Tuesday 12 January 2010'
select Date_format(now(),'El año actual es %Y'); # 'El año actual es 2010'

Estos son algunos de los especificadores que tenemos disponibles para dar formato a una fecha, la lista completa pueden verla en los manuales de MySql:

Código :


- %d #Día del mes numérico (00...31)
- %H #Hora (00...23)
- %h #Hora (01...12)
- %i #Minutos, numérico (00...59)
- %M #Nombre mes (January...December)
- %m #Mes, numérico (00...12)
- %p #AM o PM
- %W #Nombre día semana (Sunday...Saturday)
- %Y #Año, numérico, cuatro dígitos
- %y #Año, numérico (dos dígitos)
- %s #Segundos (00...59)


Sumar o restar días a una fecha con DATE_ADD o DATE_SUB en MySQL


DATE_ADD(fecha,INTERVAL valor tipo), DATE_SUB(fecha,INTERVAL valor tipo)

Sumar tiempo en MySQL

Código :


select DATE_ADD(NOW(),INTERVAL 20 DAY); # Agrega 20 días a la fecha actual
select DATE_ADD(NOW(),INTERVAL 30 MINUTE); # Agrega 30 minutos a la fecha actual
select DATE_ADD(NOW(),INTERVAL 50 YEAR); #Agrega 50 años a la fecha actual
select DATE_ADD(NOW(),INTERVAL '10-5' YEAR_MONTH); #Agrega 10 años 5 meses a la fecha actual


Restar tiempo en MySQL

Código :


select DATE_SUB(NOW(),INTERVAL 8 YEAR); #Resta 8 años a la fecha actual 
select DATE_SUB(NOW(),INTERVAL 24 HOUR); #Resta 24 horas a la fecha actual
select DATE_SUB(NOW(),INTERVAL '7-2' YEAR_MONTH); #Resta 7 años dos meses a la fecha actual

Estos son algunos de los argumentos que podemos usar, para una lista completa consulten los manuales de MySql

Código :


SECOND #Segundos
MINUTE #Minutos
HOUR #Horas
DAY #Días
MONTH #Meses
YEAR #Años
YEAR_MONTH #'Años-meses'
DAY_HOUR #'Días Horas'


Restar dos fechas


DATEDIFF(fecha_1,fecha_2) devuelve el número de días entre la fecha fecha_1 y la fecha_2

Código :


SELECT DATEDIFF(NOW(),'2002-11-02'); #cuantos días han pasado
SELECT DATEDIFF(NOW(),'2010-03-20'); #Cuantos días faltan


Espero les sea util :)

Enviar comentario



"

jueves, 26 de noviembre de 2009

Videos de Instalación (Debian lenny y LAMP)

Que tal a qui les dejo los videos en estas ligas para que los descargen:


Instalación de Debian Lenny


Instalación de LAMP

miércoles, 25 de noviembre de 2009

Instalando LAMP


El acrónimo LAMP se refiere a un conjunto de subsistemas de software necesarios para alcanzar una solución global, en este caso configurar sitios web o Servidores dinámicos con un esfuerzo reducido.

En las tecnologías LAMP esto se consigue mediante la unión de las siguientes tecnologías:

La combinación de estas tecnologías es usado primariamente para definir la infraestructura de un servidor web, utilizando un paradigma de programación para desarrollo.


Bueno empezemos a instlar LAMP:

1) Asegurarse que en Ubuntu estan activados los repositorios Universe y Multiverse (un repositorio es una fuente de localidades en internet para aplicaciones), para esto, necesitan abrir el archivo sources.list

sudo gedit /etc/apt/sources.list

en el archivo, deben estar descomentariadas las siguientes lineas:

deb http://security.ubuntu.com/ubuntu dapper-security universe
deb-src http://security.ubuntu.com/ubuntu dapper-security universe

2) Actualizar la lista de repositorios

sudo aptitude update

3) Instalar Apache 2 (el aptitude, como el apt-get, o el synaptic, hacen las configuraciones automaticamente, uno solo tiene que decir “S” ! ) (aprox 2 mb)

sudo aptitude install apache2

4) Instalar php5 (aprox 2mb)

sudo aptitude install php5

5) Instalar las librerias que permitiran interaccion entre MySql, apache y php (aprox 500kb)

sudo aptitude install libapache2-mod-auth-mysql php5-mysql

6) Instalar MySql server 5 (aprox 50 mb)

MySql 5 : sudo aptitude install mysql-server-5.0

ó

MySql 4.1 : sudo aptitude install mysql-server-4.1

7) Reiniciar los servicios para ponerlos a prueba

sudo /etc/init.d/apache2 restart

sudo /etc/init.d/mysql restart

por ultimo, ponemos a prueba cada una de las aplicaciones

Apache: abrimos el firefox , y tecleamos en la barra de direcciones : http://localhost

debera aparecernos una pagina donde dice que apache esta instalado y trabajando, para alojar nuestros archivos en el servidor web, en ubuntu la carpeta esta en /var/www

MySql: abrimos la consola y escribimos : mysql -u root

debe salirnos un mensaje de bienvenida y el label del command line ahora debe decir mysql>

php: aqui es necesario crear un archivo y almacenarlo en el directorio raiz del servidor (o crear una subcarpeta, tu decides) /var/www

sudo gedit /var/www/archivo.php

dentro de ese archivo copiamos el codigo php que se nos ocurra, yo recurro al famoso echo, o al

phpinfo()

echo ”Mensaje de prueva en LAMP”;

phpinfo();

?>

por fin, ejecutamos el archivo escribiendo en el firefox : http://localhost/archivo.php


A qui les dejo un archivo q pueden utilizar para vizualizar sus archivos mas rapidamente en el host local de nuestro servidor:

http://rapidshare.com/files/349775358/www_by_gustavorr.rar.html



lo desclomprimen su archivo y copian los tres documentos a la carpeta de /var/www/

Sia un no lo tienes instalado el paquete para descomprimir archivos sigue esto pasos:
#nano /etc/apt/sources.list

deb http://ftp.de.debian.org/debian stable main contrib non-free

guardamos los cambios y cerramos.

En una terminal y como root:

#apt-get update
#apt-get install unrar







y eso es todo ya pueden trabajar de una manera mas grafica y tal vez bonita si no pueden modificar el codigo del archivo index.php

viernes, 4 de septiembre de 2009

Formas de acceder a mysql

# mysql

# mysql -u root -p



Lo primero que debes hacer una vez que instalas un servidor de base de datos MySQL (casi todas las distros actuales lo instalan por defecto, sino, bájalo de mysql.com) es establecer la contraseña del usuario administrador o root, de hecho no tiene que llamarse root, puedes ponerle el nombre que desees. Es muy sencillo, pero hay que entender los alcances de lo que hacemos, asi que veámoslo paso a paso. Una vez arrancado el servicio de mysql (aqui para un tutorial sobre servicios), indicamos en el shell que inicie el monitor mysql:

#> mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 5.0.26

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

Lo primero que notamos es que al iniciar el monitor de mysql o la línea de comandos de MySQL es que no necesitamos de una contraseña, malo, muy malo, porque obviamente cualquiera puede entrar y manipular las bases de datos que tengamos. Asi que vamos a establecer al usuario 'root' como el usuario administrador global de todas las bases de datos, aunque todavía no se hayan creado, y tendrá todos los privilegios sobre estas, asi como la capacidad de otorgar (grant) privilegios a otros usuarios:

mysql> grant all privileges on *.* to root@'localhost' identified by 'sesamo' with grant option;
Query OK, 0 rows affected (0.00 sec)

  • grant: es el comando que permite 'conceder' privilegios a un usuario.
  • all privileges: se conceden todos los privilegios a este usuario, los posibles privilegios (hasta esta versión 5.0.26) son: SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE_TMP_TABLE, LOCK_TABLES, CREATE_VIEW, SHOW_VIEW, CREATE_ROUTINE, ALTER_ROUTINE, EXECUTE y GRANT.
  • on: los objetos a los que se aplican los privilegios, el formato es base_de_datos.tabla, *.* quiere decir entonces, todas las bases de datos y todas las tablas. Otros ejemplos: ventas.*, contabilidad.polizas, etc.
  • to: el usuario al que se le conceden los privilegios, el formato es usuario@'equipo', en el ejemplo el usuario es 'root' cuando se conecte desde 'localhost', es decir, solo conectado localmente el usuario 'root' tiene acceso total. El comodin en este caso es '%', asi que si se indica root@'%', el acceso podrá ser desde cualquier equipo (no muy buena idea en el caso de root). En 'equipo' es válido una dirección IP, un nombre de dominio o un nombre de dominio con comodines. Ejemplo: sergio@'192.168.10.132', sergio@'linuxtotal.com.mx', sergio@'pruebas.linuxtotal.com.mx', sergio@'*.linuxtotal.com.mx'
  • identified by: la contraseña se indica en esta parte y se escribe en texto plano, asi que cuidado con quien esté a tu espalda. Una vez que presiones 'Enter' la contraseña se encripta.
  • with grant option: esta última parte es opcional, e indica que el usuario en cuestión puede a la vez otorgrar privilegios a otros usuarios sobre los que el tenga permisos, que en este caso son todos. Aqui se nota la importancia de que 'root' solo sea accesible localmente (localhost) por que queda con posibilidades de otorgrar privilegios a otros usuarios.

Una vez creado el usuario 'root' y si nos salimos del monitor con el comando exit, veamos que sucede si deseamos volver a ingresar:

#> mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
#>

Ya no es posible ingresar porque una vez creado un usuario con la opción 'identified by' siempre se requerira que se indique la contraseña para ingresar al monitor, incluso no solo al monitor sino también a herramientas gráficas de administración de MySQL, como phpmyadmin y mysql administrator.

Entonces, ahora debemos indicar la opción '-u' de usuario y '-p' de password para poder ingresar al monitor:

#> mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6 to server version: 5.0.26

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

También es posible indicar la contraseña inmediatamente después de la '-p' sin espacio:

#> mysql -u root -psesamo

Aunque es obvio que es bastante inseguro este método.

Para terminar con este tip, veamos ahora un ejemplo de como deberíamos crear un usuario que se dedica a capturar pólizas de un sistema de contabilidad, donde queremos que pueda seleccionar, insertar o actualizar pólizas pero no borrarlas ni nada más, muy restringido, además solo puede ingresar desde su PC:

#> mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6 to server version: 5.0.26

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| linuxtotal |
| mysql |
| contabilidad |
+--------------------+
4 rows in set (0.03 sec)

mysql>
mysql>use contabilidad;
Database changed
mysql> show tables;
+---------------+
| Tables_in_ca |
+---------------+
| catalogos |
| cuentas |
| polizas |
| saldos |
+---------------+
4 rows in set (0.00 sec)

mysql>
mysql> grant select, insert, update on contabilidad.polizas to capturista@'10.0.0.23' identified by 'secreto';
Query OK, 0 rows affected (0.07 sec)
mysql>

Como puede observarse, existen varias bases de datos, una de ellas 'contabilidad' y dentro de esta existen varias tablas. Con el comando grant estamos solo concediendo tres permisos muy específicos de seleccionar, insertar y actualizar registros solo en la tabla 'polizas' de la base de datos 'contabilidad' al usuario 'capturista' cuando se conecte desde el equipo '10.0.0.23' y se identifique con la contraseña 'secreto'. Nótese que no se le concedió la opción with grant option, asi que no podrá este usuario a la vez otorgar ningún privilegio a ningún usuario. Y todo se hizo como el usuario 'root' que es al que inicialmente le concedimos privilegios completos sobre todas las bases de datos y sus tablas.


viernes, 21 de agosto de 2009