Archivo de la etiqueta: mysql

Opencart


Para todos aquellos que desean un carrito de compras rapido, seguro y ya probado les presento opencart, una aplicacion de codigo abierto para la operacion de carrito de compras, permite el manejo de articulos, categorias y precios, excelente para empezar a trabajar lo mas rapido posible las ventas en linea, tambien cuenta con la posibilidad de conexion para pagos en lina via tarjeta de credito o paypal, les dejo los links del sitio y la descarga, recomiendo mucho la aplicacion de subida de imagenes un excelente framework para la manipulacion de archivos.

La version de descarga es la actualizada hasta el 10 de diciembre del 2010

Sitio web Opencart

Descargar Opencart Version 1.4.9.3


Conectar PHP a Mysql


Hacia tiempo que no subia algo de codigo o programacion al blog, estos ultimos meses me he metido a programar en php, mysql y javascript un mundo que hacia tiempo no tomaba pues tenia un buen que no programaba en ellos, pero bueno a lo que nos interesa el siguiente articulo se basa en conectar mysql a php, para ello se utilizan los siguientes componentes:

Conector: mysql_connect()
Selector de BD: mysq_select_db()

En caso del mysql_connect este metodo o funcion recibe 3 parametro principales el nombre del servidor, el nombre de usuario y la contraseña.

En caso del mysql_select_db, solo ingresamos el nombre de la base de datos a seleccionar, a continuacion el ejemplo de como utilizar estas dos funciones, para ello crearemos una variable de nombre cn, NOTA: recordemos que la variables dentro de php se declaran anteponiendo el simbolo de ‘$’, al nombre de la variable Ej: $variable = 0;,

EJEMPLO DE CONECCION:
              $cn = mysql_connect(‘localhost’,’usuario’,’Contraseña’);
              mysql_select_db(‘base_de_ datos’);

Con esto ya tenemos establedida nuestra conexion, NOTA: la funcion mysq_connect(), puede no recibir parametros y esto no cambiara en nada, solo tomara los datos por default que pueda tener nuestro servidor mysql. con esto en teoria llegariamos al fin de este post, pero bueno como hoy estoy algo generoso, pondre tambien como crear una consulta y ejecutar un comando dentro de mysql utilizando php.

EJEMPLO DE CONSULTA EN MYSQL Y PHP

Para esta consulta generaremos una variable de nombre “sql” y en ella introduciremos el query, despues esta la ejecutaremos con la funcion mysql_query();, que recibe 2 parametros principales, el primero es la consulta o comando a mysql y la segunta, una variable de conexion, en nuestro caso seria $cn como en el ejemplo anterior:

              $sql = “SELECT * FROM tabla”;
              $data = mysql_query($sql,$cn);

Observece que el resultado de la consulta que arrojara la funcino mysql query lo guardaremos en una variable de nombre data que es la que nos servira de bandeja para los datos recolectados, pero…, como vemos los datos, es sencillo para ello utilizamos un while y recorremos el arreglo que trajo la consulta.

          whiel($rows = mysql_fetch_array($data)){
                  echo (” El nombre es: “.rows[0]);
          }

en caso de que solo necesitemos de un registro el resultado es el mismo con la diferencia que no se utilizara un while para recorrer un solo registro del arreglo, seria ridiculo, para ello utilizamos de nuevo la funcion mysql_fetch_array(), para sacar la informacion de los datos de la consulta:

                  $dat = mysql_fetch_array($data);
                   echo (“El nombre es: “.$dat[0]);

Como ven no es dificil esta sencillo no???, ahora por ultimo creamos un ejemplo de como ejecutar un insert desde php e insertarlo en mysql:

              $sql = “INSERT INTO tabla (campo1,campo2) VALUES(‘valor1′,’valor2’)”;
              $data = mysql_query($sql,$cn);

Como ven la funcion a utilizar para el insert es la misma que para realizar el SELECT, bueno hasta aqui esta parte de php espero sea de su ayuda, saluds a todo lectores y sigan hechandole ganas se despide su amigo

JHODRICK…..


INSTRUCCIONES BASICAS SQL


A continuación mostrare algunas de las instrucciones básicas del lenguaje SQL, realizaremos desde una base de datos, hasta la moho ficción de algún registro en la base.Creando una Base de datos, para poder realizar operaciones, necesitamos antes tener creada una base de datos, en la cual podamos trabaja toda la información que necesitemos, para ello existe la siguiente instrucción.

Sintaxis:

Create Database [nombre]

Create Database bdPrueba

Usando la base: Una vez creada la base necesitamos especificarle al gestor que trabajaremos sobre ella, ya que si no lo hacemos podemos hacer que nuestras sentencias se guarden en otra base, para ello se utiliza la sentencia:

Sintaxis

Use [nombre]

Use bdPrueba

Creando una tabla: para la creación de una tabla en SQL se utiliza la siguiente sentencia:

Create Table [nombre] (campo1 [tipo de dato] ([dimensión]) [nulo, o no nulo], campo1 [tipo de dato] ([dimensión]) [nulo, o no nulo])

Create Table tbprueba (id numeric (6) not null, Nombre varchar(20) not null, Apellidos varchar (30) not null)

Note se que cada campo de la tabla esta separado por una coma,Guardando datos en la tabla: para guardar datos en alguna tabla,  utilizamos la sentencia

Sintaxis:

Insert Into  [nombre tabla] ([campos]) Values([datos a insertar]

Insert into  tpprueba (id,nombre,apellidos) Values (1,’Juan’,’Perez’);

Note se que los campos de tipo carácter o varchar van encerrados entre comillas sencillas, caso que no pasa con los números.Actualizando los datos de la tabla: para ello utilizamos la sentencia:

Sintaxis

Update [nombre tabla] Set [Campo] = [nuevo valor del campo] Hiere[condición o            criterio para actualizar]

Update tpprueba Set nombre = ‘David’, apellidos = ‘Garduño’ Where id = 1

Nota: en cuestión del update siempre debe haber un criterio para hacer la actualización de los registros, Borrando los datos de una tabla: para borrar los datos de una tabla se utiliza la sentencia:

Sintaxis:

Delete From [nombre de la tabla] Hiere [condición o criterio]

Delete From tpprueba Where id = 1

Nota: se tiene que definen algún criterio en caso de que se desee eliminar un registro o solo algunos, ya que si no se utiliza el Where eliminaremos todos los datos de la tabla, es todo por ahora, les dejo el codigo de como crear una llave primaria en SQL usando el ejemplo de crear la tabla anterior

Create Table  tpprueba (id numeric (6) not null constraint pk_id primary key clustered, Nombre varchar(20) not null, Apellidos varchar (30) not null)


CONECTAR MYSQL A JAVA (Netbeans)


Conocemos la forma de conectar mysql o alguna base de datos como lo es Sql Server, Oracle, PosgreSQL a java perousando lis driversManager una forma visual muy practica pero muy compleja a la hora de mandar la aplicacion a alguna otra computadora, para olvidarnos de esto y no tener un desorden de codificaciones visuales en el form crearemos una clase de conexcion, en ella realizaremos un metodos para la conexion y otros dos para hacer las consultas y operaciones de insert y update a la base de datos.

La Clase

para crear la clase de conexion en nuestra solucion damos clic en el boton de Agregar Archivo, o nos vamos a archivo una vez que nos aparesca la ventana de nuevo archivo escojemos la carpeta de Clases Java y el tipo de archivo Clase Java, una vez que nos ha creado la , empezamos bueno de esta seccion, la codificacion.

Codificacion:

Empezamos anexando la siguiente directiva que utilizaremos java.sql.*, esto nos permitira utilizar todos los componentes para la creacion de la conexion y otros metodos que utilizemos

Ejemplo:

Import java.sql.*

 

Metodo de conexion , para el metodo de conexcion para ello utilizaremos los siguientes componentes: Connection, Statement y ResultSet, a continuacion generamos el metodo o en este caso el constructor de la clase.

public Conexion() {
try
{
Class.forName(“com.mysql.jdbc.Driver”);
String url = “jdbc:mysql://localhost:3306/bdpruebrasjava”;
cn= DriverManager.getConnection( url, “root”, “123456” );
}
catch(Exception ee)
{
System.out.println(“Error: ” + ee.getMessage());
}
}

 

Sis e observa detenidamente, se utiliza una variable string denominada url, que sera la direccion de nuestra base de datos, la primera linea nos crea la informacion del driver de conexion y por ultimo se genera dicha conexion usando la variable “cn” y asignandole los parametros de ruta de la base de datos,usuario y contraseña.

Metodos Auxiliares

 

Acontinuacion crearemos los metodos para generar los insert, update y deletes de los registros de la base de datos.

public String Ejecutar(String sql)
{
String error=””;
try
{
St=Conec.createStatement();
St.execute(sql);
}
catch(Exception ex)
{
error = ex.getMessage();
}
return(error);
}

El St es nuestro Statemen el cual generara el comando de ejecucion, para ello todo este comando lo mandamos en el parametro sql, la funcion es de tipo string, por ello se regresa la variable de tipo string error la cual contendra el error que pueda optenerce en el proceso de insert o update,o en su caso no traer nada debido a que la accion fue exitosa.

Por ultimo creamos el metodo para ejecutar consultas para ello utilizaremos un componente llamado ResultSet.

public ResultSet Consulta(String sql)
{
String error=””;
try
{
St=Conec.createStatement();
reg=St.executeQuery(sql);
}
catch(Exception ee)
{
error = ee.getMessage();
}
return(reg);
}

Dentro de esta funcion volvemos a encontrar a nuestro Statement por lo anteriormente mencionado sera nuestro ejecutor de comandos del parametro sql el cual tendra como valor la consulta que deseamos ejecutar.

Conclusion:

Todas la variables de conexion (cn), Statement (St) y ResultSet(reg) fueron declaradas fuera de todos los metodos, es decir son globales y pueden verse en toda la clase no importa en que proceso lo utilizemos, y para saldar la duda, anteriormente dije que todos estos son metodos, asi es pero por que ejecutar y consulta los llame funciones, es sencillo recordemos algo de teoria, toda funcion retorna un valor es por ello que se le llama funciones a ejecutar y a consulta por que regresan el valor de la variable error y reg respectivamente.

Uso

Para terminar esta entrada, les dejo la forma de utilizar esta clase.

//Instanciamos la clase de conexion

Conexion cxn = new Conexcion();

//Generamos un insert en la tabla de clientes usando el metodo ejecutar de la clase conexion

string msg =

cxn.Ejecutar(“INSERT INTO tpjclientes (nombre,apellidos) VALUES (‘Juan’,’Perez’);

//Generamos un select a la tabla de clientes, el resultado caera en resultset

ResultSet = cxn.Consulta(“SELECT * FROM tpjclientes”);

NOTA IMPORTANTE: Las funciones o metodos utilizados, regresan un tipo de datos o componente especifico, es por ello que en ejecutar el resultado lo guardo en eun string y en consulta lo guardo en n ResultSet, ademas hay que resaltar algo, java obliga a los usuarioa utilizar el clasico catch y try para manejar correctamente las exepciones que puedan existir dentro de la llamada al metodo, eso es todo por el dia de hoy espero les sea de gran utilidad este codigo, dejen sus comentarion y/o sugerencias de que desean ver sobre tecnologia en el blog.

Descargar Clase de Conexion

Mis correos, por alguna duda:

jhodrickgg@hotmail.com

jhodrickgg@gmail.com


REPORTEADOR DINAMICON CON TREEVIEW Y LISVIEW EN C#


Esta es la forma de trabajar de un reporteador dinamico las caracteristicas principales son:Primera version:

– Cuatro parametros de rango (valores que permiten determinar que registros necesito),utilizo
un textbox
– Un listView (cuadro de lista) para visualizar los datos
-CheckBox Cuadros que permiten seleccionar al usuario los tipos de datos (tengo un maximo de 15 posibles campos)
– Botones para (Exporta(En varios formatos), generar la consulta, limpar la pantalla y cancelar o salir)

Segunda version:
– Cuatro parametros de rango (valores que permiten determinar que registros necesito),utilizo
un textbox
– Un Treeview (cuadro de lista) para visualizar los datos
-CheckBox Cuadros que permiten seleccionar al usuario los tipos de datos (tengo un maximo de 15 posibles campos)
– Botones para (Exporta(En varios formatos), generar la consulta, limpar la pantalla y cancelar o salir)

si observan las versiones no varian mucho, solo se cambia el listview por treview, esto fue idea del lider de proyecto (Rodrigo) esto con el fin de hacer una herramienta Olap, en pocas palabras algo parecido a lo que hacen las consultas en access, si tienes alguna referencia esta aparece en la linea inferior con un signo de “+” para poder visualizar los datos de la tabla a la que se le hace referencia (Algo muy bueno por supuesto), por lo que me explico rodrigo, es una especie de cubo de informacion el cual llena el treeview para poder visualizar los datos en forma de arbol.

El codigo:

El codigo es algo complejo la verdad, todos los metodos dentro del codigo del formulario esta parametrisados,

el constructor:
la mayoria estamos acostumbrados a ver costructores de formularios sin parametrisar, y en algunos casos solo un constructor, el reporteador tiene tres constructores los cuales estan para metrisados de la siguiente manera

– Para soportar de una a tres tablas
– Parametros para las columnas y las medidas de las columnas (en caso del listview)
– Parametro donde se almacena los campos de la tabla, estos ya debidamente formateados a como se desa que aparesca en la propiedad text de los checkbox, ya que este parametro se ira directamente a una funcion la cual e llamado formatoCBX donde se formatearan todos los chekbox del formulario

Variables Globales:

Dentro de la clase del formulario he creado varias variables globales, esto con el fin de que sean vistas en todo el codigo del form, acontinuacion las presento:

string campos = “”; //Variable para los campos
string tablaPrincipal = “”; //Variable para la tabla principal
string tablaSecundaria = “”; //Variable para la tabla secundaria
string tablaTercera = “”; //Variable para una tercera tabla
string condicion = “”; //Variable parala condicion de la consulta
bool entroDos = false, entroTres = false, entroCuatro = false; //Varianble booleana para saber si entro a alguna caja de texto
AdMySQL miAdMySql = new AdMySQL(); //Instanciamos la clase de conexion
reportes Generador = new reportes();
String[] parametrosBD = { “bdeldisloque”, “localhost”, “ElDisloque”, “sdel08disloke” }; //Parametros para loa base de datos
Validar miValidar = new Validar(); //Instancia la clase validar
General miGeneral = new General(); //Instancia la clase general
string primerValor = “”, segundoValor = “”, tercerValor = “”;
string camposFiscales = “”; //Variable para la tabla de clientes en caso de tener datos fiscales
string[] columnasDefault ={ }; // Variable tipo array para las columnas
public string nombreArchivo = “”; //Determina el nombre que tendra el archivo exportado
int[] medidasDefault = { }; //Medidad de las columnas por default
DataSet Reporte; // dataset para exportar el reporte

Formato a los checkbox:

es muy complicado hacer una funcion donde utilizemos el gran famoso switch esto para generar en la propiedad text, por ello he realizado una esta funcion la cual recibe como parametro un control (form, grupbox, panel etc.) esto con el fin de hacer mas rapido el proceso una vez que mandamos el componente o control declaramos una variable de tipo checkbox, despues creamos un ciclo forech en el cual contaremos los checkbox que se encuentran en el componente, una vez que se tienen los controles, se procede a verificar que existan, si existen se asigna a la propiedad text el valor del campo, para ello he creado un DataSet en el cual se formatea a los campos y se verifia que exista la tabla.

Genera consulta:

como lo mensione anteriormente, el form tiene que soportar varias tablas, ya que este es totalmente dinamico, entonces como genero una consulta, acotinuacion se presenta la forma,
como ya tenemos el nombre de los campos en la propiedad text de los checkbox y el nombre de la tabla en la variable tabla principal solo concatenamos (unimos) para realizar la consulta Ejemplo:
if(checkBox.checked ==true) //Presunta si el checkbox esta seleccionado
{ cadena = tablaPricipal + “.” + checkbox.text;}

donde cadena es una variable tipo string que nos permitira unir los campos que se desean visualizar

una vez que ya tenemos los campos y las tablas tendremos que revisar si existen alguna condicion, para ello tenemos la variable global condicion en la cual contenemos las condiciones o criterios con los qe se realizara la consulta, para llenar esta variable nos vamos a las propiedades de los componentes ejemplo textbox y en los eventos buscamos el evento leave y le damos doble click una vez dentro del codigo del evento leave escribimos el siguiente codigo:

condicion = condicion + Generador.where(textxbox.text);

Donde generador es nuestra clase que alimentara al reporte (Vea Clase generadora “abajo”), y where es un metodo publico de esta clase.

NOTA: si se tienen dos campos en un grupbox y se desea ahorrar trabajo para no hacerlo textbox por textbox entonces buscamos en los eventos el grupbox el evento leave y realizamosel mismo proceso anterior, ahoramos mucho trabajo y lineas de codigo,

Una vez que sea ha generado la consulta o guardado en una variable DataSet se procede visualizarla en la lista, para ello se he creado un metodo que agrega las filas del data set al listview para ello en la funcion cargarlista tengo dos parametros, uno para obtener el dataset o registros encontrados, y otro para saber la cantidad de columnas que contiene la lista, este ultimo con el fin de que el sistema no trueno o marque errores, para ello dentro del metodo, tengo un switch en el cual pregunto el numero de columnas y en base a ello agrego las filas a la cantidad de columnas o mejor dicho las opciones y subopciones necesarias en la lista, es decir si mi numero de columnas es tres solo insertare los registros en tres columas nada mas en caso de ser quince entonces agregare quince columnas del dataset

En caso del treeview existe algo parecido, con la diferencia que aqui solo concateno las columnas que y las mando en una sola cadena al componente, aun asi existe la funcion para determinar la cantidad de columnas que ha seleccionado el usuario, esto para saber cuatos valores hay que unir para que se visualizen

Clase Generadora:

Este formulario no se crea por arte de magia, para ello tenemos una clase en la cual se agregaran las funciones para consultar a la base de datos, los criterios o condiciones de la consulta, el formateo de los campos (como queremos que aparescan en los checkbox) y algunas otras funciones mas, es decir esta clase alimentara a todos los componentes del form, es algo complicado de explicar puesto que esta clase contendra informacion de toda las tabla que queremos anexar al reporte, una funciones con varios parametros para abrir la ventana de reportes, y nuestro gran exito, el codigo de exportacion a distintos formatos.

Conclusion:

Esta aplicacion es muy util en caso de generar reportes, es muy practica y aun estoy pensando en la forma de hacerla mas robusta, esto con el fin que soporte mas tablas, mas columnas y por que no que interactura dos o mas bases de datos al mismo tiempo, pero eso es mas adelante, por ahora en el grupo estamos contentos con el logro optenido por esta aplicacion y esperamos generar nueva soluciones, por funcionalidad se ha tomado la desicion de usar el reportador con treeview, siendo sincero a mi me gustaron los dos pero tambien con el treeview se pueden hacer maravillas, les recomiendo utilizarlo, ya que esta primera vez que lo utilize me agrado su funcionalidad

Nuevo reto:

– Aplicacion de pedidos para una empresa (algo compleja pero exelente)
-Erramienta Case ( para generar codigo mas rapido, en varios lenguajes, para varias bases de datos)

Nos vemos la proxima con otra anecdota de tecnologia, dudas busquenme en el msn champi_30@hotmail.com,
jhodrickgg@gmail.com