Mysql

[LAMP] Instalando un servidor Apache2, MySQL, PHP y PhpMyadmin en GNU/Linux Debian

Bueno les estaba preparando un post sobre Python-Django con apache pero creo que antes voy a postear esto.

Bueno la idea es instalar un servidor LAMP completo con Apache MySQL y PHP(de momento luego python también),en un entorno GNU/Linux, esto lo haremos mediante nuestro gestor de paquetes apt o aptitude, que vienen siendo casi lo mismo, luego quizá lo hagamos compilando nuestros propios binarios pero para la practica esta bien aprender con esto.

Primero abrimos nuestra Terminal(Konsole en KDE4) o vamos directamente a nuestra consola si no tenemos interfaz grafica y con el comando su nos logueamos como root.


ajaxman@debian:~$ su
Contraseña:

root@debian:/home/ajaxman#

Una vez como root procederemos a instalar nuestros paquetes los cuales serán los siguientes.

  • Apache
    • apache2
  • PHP
    • php5
    • php5-mysql
    • libapache2-mod-php5
    • php5-curl
    • php5-mcrypt
    • php5-gd
  • MySQL
    • mysql-server
    • mysql-client
    • phpmyadmin

Con la lista anterior estaremos instalando Apache, PHP y MySQL, además de algunos módulos necesarios para que estos tres softwares estén instalados y algunos módulos extras, los cuales a veces pueden ser necesario como en mi caso que le puse el modulo GD, el CURL y el MCRYPT.

GNU/Linux es muy practico y por ello nos permite instalar todo desde un solo comando, ojo puedes ser necesario tener instalado ncurses para que el MySQL no pida los datos de acceso, inserta la siguiente linea en tu consola y ahí te mostrara si las dependencias están completas o si necesitas algún software extra(para ncurses instala libncurses5-dev).


root@debian:/home/ajaxman#apt-get install apache2 php5 php5-mysql libapache2-mod-php5 php5-curl php5-mcrypt php5-gd mysql-server mysql-client phpmyadmin

Leer más

[Manual] Usando PHP y MySQL, Insertando datos de manera dinamica parte 2

Bueno como vimos en el manual anterior de Php y MySQL, realmente no es tan complicado aprender este lenguaje.

ajaxman

Ahora que solo hemos visto como volcar los resultados de una consulta hecha a una base de datos MySQL, sin embargo vamos ha hacerlo mas creativo, ahoro procederemos acrear un formaulario donde nos permitira insertar nuevos registros y tambien otro donde nos permitira borrar los mismos.

Para empezar necesitamos un formulario que nos permita poder introducir datos y enviarlos mediante metodo post, le get no lo usamos por que se pueden enviar menos datos y ademas es mas inseguro.

Entoces hagamos nuestro formulario este archivo se llamara alta.php

< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<form method="post" action="alta.php"> <label>Escriba el nombre del alumno</label>
<input name="nombre" type="text" /> <label>Escriba la calificación del primer parcial</label>
<input name="parcial1" type="text" /> <label>Escriba la calificación del segundo parcial</label>
<input name="parcial2" type="text" /> <label>Escriba la calificación del segundo parcial</label>
<input name="parcial3" type="text" /> <input value="Aceptar" type="submit" />

</form>

Una vez llenados los campos le damos click en aceptar y listo se envian los datos al mismo archivo; pero me imagino que se preguntaran por que lo mando al mismo archivo, pues para organizarlo mejor y no tener mil archivos ahora vamos a crear lo que nos permitira insertar datos en nuestra base.

Ahora haremos el script php que guardala la informacion recibida.

Nota importante: hare uso de la funcion var_dump, para verificar que información esta llegando,ya que var_dump revisa el contenido total de cierta variable y los muestra en pantalla.

var_dump($_POST);
/*
* use solo $_POST para que me diga todos los campos y valores que recibio mediante este metodo
* Ahora bajaremos todas las variables recibidas a variables normales esto lo hago para mejorar
* el mantenimiento de dicho script asi como por seguridad, ya que le agregare la funcion addslashes
* la cual escapa comillas simples, dobles y algunos caracteres extranos, evitando que alguien hackee nuestro sitio
*/

$nombre=addslashes($_POST['nombre']);
$parcial1=addslashes($_POST['parcial1']);
$parcial2=addslashes($_POST['parcial2']);
$parcial3=addslashes($_POST['parcial3']);

/*
* Con lo anterior ya podemos usar nuestras variables mas comodamente y mas seguras
* pero recuerden que, no con esto evitaremos ataques, o nuestra web sera 100% Segura
* Sera, mejor dicho un poco mas segura
* Ahora programemos la consulta que insertara los datos, recordemos que en el post anterior,
* ya vimos como hacer una insercion mediante instrucciones SQL
* tomaremos el mismo ejemplo
* el digo era # INSERT INTO `calificaciones` VALUES (1,'Tux',10,8,8,9);
*/

/*
*Nos conectamos a la base de datos
*/

$DB=mysql_connect("localhost","root","localhost");
mysql_select_db("Alumnos");

/*
*creamos una varible que manejara la consulta, es similar al primer ejemplo
* solo que aqui usaremos mas variables
*/

$sql='INSERT INTO `calificaciones` VALUES ("1","Tux",10,8,8,9)';

/*
* Aqui les mencionare un detalle, los valores anteriores se insertaran en los campos, en el orden
* dado, osea que si agregan un campo o reorganizan la base de datos la consulta fallara
* y por logica tambien fallara su a sitio web.
* para evitar eso usaremos set par asignar valores, uno por uno
* asi nos evitamos futuros problemas
*/

$sql='INSERT INTO `calificaciones` set Nombre="Tux", Parcial1=10, Parcial2=8, Parcial3';

/* Listo sin embargo siempre insertara los mismos valores, ha hora reemplazaremos
* los valores por variables y tenemos nuestro sql formado
* para poner valores, los concatenamos con un punto (.) y si el valor es texto, lo ponemos entre comillas
*/

$sql='INSERT INTO `calificaciones` set Nombre="'.$nombre.'", Parcial1='.$parcial1.', Parcial2='.$parcial2.', Parcial3='.$parcial3;

/*
* Ahora ejecutamos la consulta
*/

$Q=mysql_query($sql,$DB);

/*
* Y listo ya insertamos los datos en nuestra base, sin embargo
* es mejor estar seguro de que se insertaron los datos con exito.
* por ello usando el operador if, preguntaremos si se inserto con exito
* si hay exito mostraremos un texto y si no mandaremos un mensaje de error
*/

if($Q)
{
echo ' El registro se agrego correctamente';
}
else
{
echo 'Ups!! hubo errores con el registro, trata de revisar tu script';
}

/*
* Mucho mejor no
*
*/

Listo ahora metemos todo a un solo archivo y lo presentamos

Archivo alta.php

Leer más

[Manual] Usando PHP y MySQL,para manejar una base de datos parte 1

Varios lectores me han pedido que si no hacia un manual de php, sin embargo como ha veces no tengo mucho tiempo, pues prefiero no poner mas manuales por que de por si, con los de Javascript, y Xul, ando algo atrasado.

Sin embargo como me gusta compartir, pues aqui les pongo un manual con lo necesario para poder conectarnos con php, a una base da datos MySQL y formatear los resultados a nuestro gusto, bueno empecemos.

Primero que nada, necesitamos haber instalado y configurado Apache, Php y MySQL, si no saben como hacerlo, pueden checarlo en este post.

Manual de instalacion y configuracion de apache con windows

Ahora veamos el problema

Necesitamos llevar un control de 20 alumnos de la escuela “Ajax-SQL”, este control sera llevado a cabo por el maestro el cual nos ha pedido, que elaboremos un sistema que nos permita dar de alta a los alumnos asi como sus calificaciones mediante una intranet o una pagina web donde los administradores, en este caso los maestros, puedan dar sus datos y accesar a una zona privada donde podran hacer los cambios que deseen.

Para empezar primero necesitamos saber lo mas basico, he ir armando parte por parte, asi que empezaremos por la creacion de la base de datos y el volcado de los mismos.

Como ya tenemos instalado todo lo que vamos a ocupar, vamos a empezar por crear la base de datos, a la cual llamaremos “Alumnos”, esto lo podemos hacer mediante un SQL, ya se por linea de comandos o mediante una interfaz grafica, por facilidad y disponibilidad de herramientas les recomiendo usar una GUI.

En mi caso en el trabajo cuando uso Windows uso, MySQL Front, software el cual esta descontinuado, sin embargo todavia pueden conseguir este software en la web, y se lo recomiendo por que simplemente era y es el mejor para manipular bases de datos desde Windows si usan linux pues el Mysql Administrator el cual lo pueden obtener gratuitamente desde el sitio de MySQL AB.

Entonces creamos la base de datos y le agregamos una tabla llamada “Calificaciones”, con 6 campos, que son

  • ID_Alumno
  • Nombre
  • Parcial1
  • Parcial2
  • Parcial3
  • Promedio

Sin embargo se que muchos tendran dudas, ¿Como creo la base de datos, como agrego la tabla, si no tengo GUI, etc?

Bueno las mismas instrucciones pero ahora con codigo SQL

Creamos la base de datos

create database “Alumnos”;

Seleccionamos la base de datos
use Alumnos;

Creamos la tabla

CREATE TABLE `calificaciones` (
  `ID_Alumno` int(11) NOT NULL auto_increment,
  `Nombre` varchar(40) default NULL,
  `Parcial1` int(11) default NULL,
  `Parcial2` int(11) default NULL,
  `Parcial3` int(11) default NULL,
  `Promedio` int(11) default NULL,
  PRIMARY KEY  (`ID_Alumno`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;

Con lo anterior hemos creado una tabla con 5 campos, el primero es la clave primaria, osea que no se repetira nunca en la tabla, ademas es auto-incrementable, ademas no puede ser nulo; el siguiente camo llamado nombre, es de tipo varchar lo que significa que contendra unicamente texto y tendra la capacidad que le indiquemos en este caso 40 caracteres, los otros son campos enteros.

Ahora procederemos a llenar la base datos usando sql:


INSERT INTO `calificaciones` VALUES (1,'Tux',10,8,8,9);
INSERT INTO `calificaciones` VALUES (2,'Ajaxman',7,5,9,7);
INSERT INTO `calificaciones` VALUES (3,'Javier',8,9,10,9);
INSERT INTO `calificaciones` VALUES (4,'Debian',10,10,10,30);

Nota como tenia sueño solo agregue 5 pero haganlo con mas datos (20) para ver mas a detalle como funciona
Una vez, hecho este tenemos los datos suficientes para empezar a trabajar

Creamos nuestro archivo php, haciendo una conexion a la base de datos

Archivo Consulta.php

Leer más

[Noticias] Sun Compra MySQL AB!!!!

Leyendo en mis feeds el blog de Seraphinux, casi me da un infarto, por que algo completamente extraño y raro acaba de pasar.

SUN la empresa creadora de java compra MySQL AB“, lo tuve que leer varias veces por que realmente no daba credito a lo que estaba, leyendo.

sun mysql

Ahora bien, ya se que es cierto, esto de la compra, pensemos por un momento, que pasara, con la relacion JAVA-ORACLE, sabemos que un gran segmento del mercado usan esta poderosa combinacion, sin embargo, con esta compra cualquier cosa puede pasar, sera que ahora la dupla se convertira en JAVA-MYSQL?

La otra interesante cuestion a plantearse es, modificaran MySQL, para que soporte PL SQL’s.

Cuantas interrogantes surgen con esta compra, despues de esto podemos esperarnos cualquier cosa.
Quizas mañana cuando despierte vea que Google, compro Ajaxman.net por varios millones de dolares,jaja.

En la pagina de Sun Microsystem informan

Sun anuncia un acuerdo para adquirir MySQL AB, un icono de código abierto y desarrolladores de una de las de más rápido crecimiento de las bases de datos de código abierto. Esta adquisición permitirá que la posición de la empresa Sun en las TI mejore ya que ahora incluyen a los 15 mil millones de dólares en el mercado de bases de datos y reafirma la posición de Sun como el proveedor líder de plataformas de la Web de la economía y su papel como el mayor contribuyente comercial de código abierto.

traduccion google

En ingles

Sun announced an agreement to acquire MySQL AB, an open source icon and developer of one of the world’s fastest growing open source databases. This acquisition accelerates Sun’s position in enterprise IT to now include the $15 billion database market and reaffirms Sun’s position as the leading provider of platforms for the Web economy and its role as the largest commercial open source contributor.

Bueno no se ustedes, pero hay les dejo unas imagenes para que no duden, bueno veamos que nos depara esta coalicion el dia de mañana.

mas imagenes tras el salto

Leer más

[Manual] Transformacion de fechas MySql a PHP

El otro dia en la programacion de una pagina web, tuve un problema, con el uso de fechas en Php y MySQL me tarde en resolverlo por eso mejor pongo un post que sin duda les ayudara a mas de uno , ya que yo practicamente nunca encontre una solucion eficaz.

La cosa esta asi, supongamos que tenemos, una base de datos MySQL, con una tabla en la cual, tenemos el campo fecha, este campo fecha es de tipo “date”.

En el campo date tenemos la siguiente fecha “2007-11-19″, y queremos que al llamarla desde Php nos muestre la fecha asi 19 de noviembre del 2007″.

Muchos pensaran en el uso de un array con los meses, pero nos es lo mas optimo, el codigo es simple imaginemos nuestro query con el siguiente ejemplo


$sql='select * from Registros';
$q=mysql_query($sql,$conexion_mysql);
while($fila=mysql_fetch_assoc($q))
 {
  echo 'se registro el dia'. $fila['fecha'] .'
';
 }

esto nos mostraria lo siguiente

se registro el dia 2007-11-19
se registro el dia 2007-11-18
se registro el dia 2007-11-18
se registro el dia 2007-11-17
se registro el dia 2007-10-10
Etc…

Como vieron, no es lo mas optimo para mostrar fechas aqui que hagamoslo mas entendible para el usuario.

$sql='select * from Registros';
$q=mysql_query($sql,$conexion_mysql);
while($fila=mysql_fetch_assoc($q))
 {
  $Fecha_Mysql=$fila['fecha']
  $Fecha = @strtotime($Fecha_Mysql); //el arroba es para evitar que nos muestre errores en caso de que la variable este vacia
  $FECHA=strftime("%d de %B del %Y",$Fecha);
  echo 'se registro el dia'. $FECHA .'
';
 }

De est foma veremos de resultados lo siguiente

se registro el dia 19 de noviembre del 2007
se registro el dia 18 de noviembre del 2007
se registro el dia 18 de noviembre del 2007
se registro el dia 17 de noviembre del 2007
se registro el dia 10 de octubre del 2007
Etc….

Y listo, como vieron fue simple y sencillo

¿Dudas, Preguntas y Demas ? en los comentarios…

Leer más

[Manual] Order by en MySQL parte 2

En el capitulo anterior de el manual de la clausula order by de MySQL aprendimos el uso basico del mismo ahora vayamos a lo mas avanzado y a lo mas interesante.

Entonces tenemos la tabla he hicimos algunas consultas con la clausual order by.

La tabla original

Programadores
Nombre
Telefono
Color
ID
Douglas
44444548
verde
5
Brendan
23131542
gris
2
Dean
58964121
verde
3
Linus
59684211
azul
1
Jhon
14524695
azul
4

Y luego hicimos la siguiente ordenacion por ID de forma descendente

select * from Programadores order by ID desc

Hasta ahi hibamos bien ok ahora como si queremos que se ordene por colores haremos lo siguiente.

select * from Programadores order by Color asc

Obviamente la order es por orden alfabetico en la columna color y obtenemos lo siguiente.

Nombre Telefono Color ID
Linus 59684211 azul 1
Jhon 14524695 azul 4
Brendan 23131542 gris 2
Dean 58964121 verde 3
Douglas 44444548 verde 5

Bien ahora que pasaria si quisieramos que tambien ordenara los telefonos el mas pequeño (111111) iria primero y el mas grande (9999999) iria despues, obviamente tambien se ordenarian los colores entonces la consulta seria de esta manera.

select * from Programadores order by Color asc, telefono asc

Lo cual nos arroja el siguiente resultado

Nombre Telefono Color ID
Jhon 14524695 azul 4
Linus 59684211 azul 1
Brendan 23131542 gris 2
Douglas 44444548 verde 5
Dean 58964121 verde 3

Leer más

[Manual] Order by en MySQL parte 1

Casi no he escrito sobre MySQL, sin embargo el otro dia descubri algo que me soluciono bastantes problemas asi que voy a escribir este post sobre el order by de MySQL.

Cuando realizamos una consulta SQL imaginemos que tenemos la siguiente tabla “Programadores”.

Programadores
Nombre
Telefono
Color
ID
Douglas
44444548
verde
5
Brendan
23131542
gris
2
Dean
58964121
verde
3
Linus
59684211
azul
1
Jhon
14524695
azul
4

Y queremos que nos muestre todos los datos, seria de la siguiente forma.

select * from Programadores

Con lo anterior bastaría para que MySQL nos entregue la información, sin embargo si deseamos que esta información este organizada u ordenada, la sentencia SQL anterior estará incompleta.

Debemos entonces usar la clausula ORDER BY.

Order by nos permitira ordenar los datos de la manera que deseemos

Entonces hagamos los siguiente, necesitamos ordenar nuestra lista por ID, lo haremos de la siguiente forma.

select * from Programadores order by ID

De esta forma obtendremos un listado ordenado por ID y el resultado seria mas o menos de la siguiente forma.

Leer más

Historico de entradas

febrero 2012
L M X J V S D
« ene    
 12345
6789101112
13141516171819
20212223242526
272829  

Ajaxman

Mi nombre es Javier, soy desarrollador web con especialización en PHP (avanzado), HTML, CSS y Javascript(Medio).

Me considero evangelizador de Kohana Framework, Mozilla Firefox y GNU/Linux Debian.

Estoy casado, y tengo dos hermosos hijos.

Todos los contenidos a menos que se exprese lo contrario estan bajo licencia Creative Commons.

Enlazanos!!

hit counters online counter