Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] Esportar categorias/subcategorias en Prestashop

Estas en el tema de Esportar categorias/subcategorias en Prestashop en el foro de Mysql en Foros del Web. Buenos días a todos, he estado buscando por el foro pero no he encontrado la solución. Estoy con Prestashop y necesito exportar las categorias/subcategorias a ...
  #1 (permalink)  
Antiguo 14/10/2013, 03:00
 
Fecha de Ingreso: enero-2006
Mensajes: 7
Antigüedad: 18 años, 3 meses
Puntos: 0
Esportar categorias/subcategorias en Prestashop

Buenos días a todos, he estado buscando por el foro pero no he encontrado la solución.

Estoy con Prestashop y necesito exportar las categorias/subcategorias a través de MySQL, he encontrado esta página: http://www.jose-aguilar.com/blog/importar-categorias-productos-de-prestashop-otro/ , pero no hace exactamente lo que necesito. La consulta es la siguiente:
Código SQL:
Ver original
  1. SELECT c.id_category, active, name, id_parent, description, link_rewrite
  2. FROM ps_category c
  3. LEFT JOIN ps_category_lang cl ON ( c.id_category = cl.id_category )
  4. WHERE c.id_category >2
  5. AND cl.id_lang =4
  6. ORDER BY c.id_category ASC

RESULTADO:

id_category active name id_parent description link_rewrite

9 1 SELLOS DE ESPAÑA 1 sellos-de-espana

10 1 SELLOS DE ANDORRA ESPAÑOLA 1 sellos-de-andorra-espanola


El resultado es todas las categorias (nombres) con los parent_id. Necesito que haga en vez del id del parent que salga el nombre de la categoria madre. Alguien que domine de sql??



Muchas gracias.

Última edición por gnzsoloyo; 14/10/2013 a las 07:43
  #2 (permalink)  
Antiguo 14/10/2013, 04:48
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Esportar categorias/subcategorias en Prestashop

Código MySQL:
Ver original
  1. SELECT c.id_category, c.active, cl.name, c.id_parent, clp.name, c.description, c.link_rewrite
  2. FROM (ps_category c
  3. LEFT JOIN ps_category_lang cl ON ( c.id_category = cl.id_category ))
  4. LEFT JOIN (ps_category cp
  5. LEFT JOIN ps_category_lang clp ON ( cp.id_category = clp.id_category ))
  6. WHERE c.id_category >2
  7. AND cl.id_lang =4
  8. ORDER BY c.id_category ASC

Creo
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 14/10/2013, 05:12
 
Fecha de Ingreso: enero-2006
Mensajes: 7
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: Esportar categorias/subcategorias en Prestashop

Muchas gracias por contestar pero me da error.

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE c.id_category >2 AND cl.id_lang =4 ORDER BY c.id_category ASC LI' at line 6
  #4 (permalink)  
Antiguo 14/10/2013, 07:16
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Esportar categorias/subcategorias en Prestashop

Código MySQL:
Ver original
  1. SELECT c.id_category,
  2.        c.active,
  3.        cl.name,
  4.        c.id_parent idpadre,
  5.        clp.name padre,
  6.        c.description,
  7.        c.link_rewrite
  8. FROM ((ps_category c
  9.           LEFT JOIN ps_category_lang cl
  10.              ON ( c.id_category = cl.id_category ))
  11.       LEFT JOIN (ps_category cp
  12.                    LEFT JOIN ps_category_lang clp
  13.                        ON ( cp.id_category = clp.id_category )))
  14.              ON c.id_parent=cp.id_category
  15. WHERE c.id_category >2
  16. AND cl.id_lang =4
  17. ORDER BY c.id_category ASC

Faltaba una linea....ON c.id_parent=cp.id_category

Estoy suponiendo que id_parent es una FK a la misma tabla que refrencia id_category
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #5 (permalink)  
Antiguo 14/10/2013, 09:06
 
Fecha de Ingreso: enero-2006
Mensajes: 7
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: Esportar categorias/subcategorias en Prestashop

Gracias por la ayuda. Si es FK a la misma tabla, me sigue dando error:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') ON c.id_parent=cp.id_category WHERE c.id_category >2 ' at line 13
  #6 (permalink)  
Antiguo 14/10/2013, 09:21
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Esportar categorias/subcategorias en Prestashop

@Monxu: Tal parece que estás haciendo sólo Copy+Paste, y esperando haber recibido de regalo el código completo, funcional y sin errores. Creo que deberías al menos hacer un esfuerzo por buscar tu mismo el error, de ese modo se logra dominar las cosas.
Por lo pronto, te sugiero que descargues e instales el MySQL Workbench, que es gratuito, y el cual tiene un corrector sintáctico que te permitirá encontrar ese tipo de defectos sin problemas. Al menos eso es lo que solemos hacer nosotros.

Te dejo el link: http://dev.mysql.com/downloads/tools/

Hay un error, pero es tan nimio que con sólo revisar el código lo hubieras encontrado, porque no está en las clausulas, ni las tablas, ni las columnas. Está en los paréntesis y el orden.
Código MySQL:
Ver original
  1. SELECT c.id_category,
  2.        c.active,
  3.        cl.name,
  4.        c.id_parent idpadre,
  5.        clp.name padre,
  6.        c.description,
  7.        c.link_rewrite
  8. FROM ps_category c
  9.     LEFT JOIN ps_category_lang cl ON c.id_category = cl.id_category
  10.     LEFT JOIN ps_category cp ON c.id_parent=cp.id_category
  11.     LEFT JOIN ps_category_lang clp ON cp.id_category = clp.id_category
  12. WHERE c.id_category > 2 AND cl.id_lang = 4
  13. ORDER BY c.id_category ASC

Personalmente, me parece que eso te puede generar un producto cartesiano, pero eso lo verás eventualmente.

Por cierto, te aconsejo dos cosas:
1) No abuses de los paréntesis, y no los pongas donde no se necesitan. Alteran la lógica de la consulta y pueden causar bajas de performance.
2) No uses palabras reservadas como "name", o cosas así en los nombres de las columnas o de las tablas. Pueden provocar errores sintácticos indetectables.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 14/10/2013 a las 09:28
  #7 (permalink)  
Antiguo 15/10/2013, 01:20
 
Fecha de Ingreso: enero-2006
Mensajes: 7
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: Esportar categorias/subcategorias en Prestashop

Muchísimas gracias gnzsoloyo, por fin lo he conseguido. Si que había probado de cambiar paréntesis y alguna cosa pero no me funcionaba por eso volví a escribir. Probaré el programa que comentas.

Muchas gracias también a quimfv.

Saludos!!

Etiquetas: join, prestashop, select, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:53.