BorjaFuertes Posted May 10, 2014 Share Posted May 10, 2014 Muy buenas a todo el mundo, Pese a que escribo poco, suelo leer bastante el foro. como novato (cada dia algo menos) en esto de creacion de webs, me he lanzado "a ver hasta donde llego" con la creacion de un modulo. Hasta ahora la idea que tengo es un modulo de estadisticas que cree su propia tabla, chupe datos de otras 4 tablas (de distintos arrays de esas 4 tablas) y una vez este completa cree sus propias formulas para acabar ciertos arrays de mi propia tabla. Una vez recopilada esta informacion, mostrar ciertos datos de la tabla creada en funcion de una busqueda temporal. Hasta ahora he creado correctamente el sistema de archivos, tengo el config.xml, config_es.xml, el index.php, el miPrimerModulo.php y su carpeta de translations con su index.php y es.php, tambien he creado un logo.png.comence con sentencias de php (miPrimerModulo.php, ahi es donde tengo el pastel) y hasta ahora he conseguido que haga satisfactoriamente lo siguiente: -Modulo operativo -Modulo instalado por BO correctamente, asi como desinstalado (con la consiguiente creacion y eliminacion de su propia tabla en la base de datos -> miPrimermodulo.sql con los parametros e id correctas).-Creacion de interfaz en el BO dentro de Estadisticas>miPrimerModulo, donde se muestra unos combos de fechas y una tabla a mostrar con los campos seleccionados pertenecientes a columnas de mi base de datos miPrimerModulo.sql.Llego al momento en el que tengo que dar instrucciones a traves de un $this->query = 'SELECT... , en MySQL, y es aqui donde la falta de conocimientos y experiencia se unen para frustrarme por momentos.Como secuencia logica he de completar la tabla ps_miPrimerModulo con columnas (no todas solo unas pocas de cada tabla) de 4 tablas diferentes, en principio y si he entendido los conceptos basicos, he de hacer un SELECT de los id que quiero copiar (respecto a sus respectivas tablas cada uno de ellos) y hacer un INSERT INTO los id que quiero rellenar en mi propia tabla (ps_miPrimerModulo).He estado trasteando con el PhpMyAdmin de mi servidor local a traves de la pestaña SQL donde se pueden lanzar consultas, pero me encuentro mi primer problema LA SINTAXIS!!!He conseguido ver (y realizar) consultas en dicho motor que funcionan, pero solo puedo hacerlas referidas contra una tabla en concreto, no contra una base de datos (en este caso me quita los selectores para seleccionar e introducir en el codigo arrays concretos a traves de una interfaz que aparece cuando las consultas se lanzan contra una tabla en concreto). Esto me hace imposible crear expresiones que se refieran a dos tablas distintas y testearlas.En cualquier caso siempre me encuentro con mi segundo dilema!!La sintaxis del motor de consultas (Pestaña SQL en PhpMyAdmin) no es igual que el de los modulos que he ido analizando para ver como funcionan, es decir el lenguaje en los moduloCualquiera.php en sus funciones $this->query '...., no se parece en nada al de PhpMyadmin.Alguna sugerencia para la correcta sintaxis del SELECT y del INSERT INTO???Seguro que he divagado mas que nada, pero la abstraccion es necesaria para seguir adelante con algo desconocido... ;P Link to comment Share on other sites More sharing options...
BorjaFuertes Posted May 20, 2014 Author Share Posted May 20, 2014 A medida que voy avanzando (a paso de tortuga) voy dando con soluciones. A modo general he dado con esta sintaxis que funciona:INSERT ps_tabla_destino(id_destino) SELECT id_origen FROM ps_tabla_origen WHERE id_condicional = 'valor_condicional'; Ahora bien, con esta orden SQL lo unico que cogemos es valores de una columna de la tabla origen e introducimos los valores en la columna de la tabla destino correspondiente.Mi siguiente tarea es que en funcion del valor anteriormente introducido quiero seleccionar de otra tabla (distinta a la ps_tabla_origen anterior) mas datos para seguir complementando las columnas de la tabla que crea mi modulo. He dado con esta orden que lo hace, aun que no como yo deseo ya que no relaciona los datos y los introduce en entradas nuevas en vez de relacionarlos:INSERT ps_tabla_destino(id_destino2) SELECT id_origen2 FROM ps_tabla_origen2, ps_tabla_destino WHERE id_condicional != id_destino1; como resultado obtengo muchisimas entradas en mi tabla y jamas correlacionadas la primera y la segunda consulta, todo apunta a que hay que utilizar sentencias del tipo JOIN, pero aun estoy averiguando como y cuales y porqué.He intentado usar un SQLBuilder pero no se como crear la conexion de dicho programa a la base de datos (trabajo en local para ahorrarme disgustos).Os iré comentando, pero a cada paso que avanzo, me doy cuenta que las posibilidades de cara al marketing son infintas...Saludos! Link to comment Share on other sites More sharing options...
vblanch Posted May 24, 2014 Share Posted May 24, 2014 Hola, yo te aconsejo que te bajes una versión de Prestashop (ponle la 1.5.x, la última). Busca en /modules/ la palabra "SELECT". Yo uso notepad++ para eso ("Find in Files"). No hace falta que reinventes la rueda. Ahí verás claramente cómo hay que hacer las Selects en Prestashop. Saludos Link to comment Share on other sites More sharing options...
Recommended Posts