Coyotee Posted December 30, 2014 Share Posted December 30, 2014 Hallo zusammen, leider verabschiedet sich die Datenbank nach einigen Upgrades nun entgültig. Zeit für einen "sauberen" Umstieg auf 1.6. Für dieses Problem brauche ich allerdings die Datenbank Exports der - Kategorien (mit Bildern) - Produkte (mit Bildern) und - Kunden (mit Adressen) Leider hat keines der gefundenen Ergebnisse im Form zum Erfolg geführt. Bestimmt ist hier jemand, der mir etwas unter die Arme greifen kann. Viele Grüße Stig Link to comment Share on other sites More sharing options...
Coyotee Posted December 31, 2014 Author Share Posted December 31, 2014 Hallo zusammen, kleines update: Die Abfrage: SELECT ps_category.id_category as 'ID', ps_category.active as 'Active', ps_category_lang.name as 'Name', ps_category_lang.id_lang as 'Language', ps_category_lang.name as 'Parent category', ps_category.is_root_category as 'Root category', ps_category_lang.description as 'Description', ps_category_lang.meta_title as 'Meta title', ps_category_lang.meta_keywords as 'Meta keywords', ps_category_lang.meta_description as 'Meta description', ps_category_lang.link_rewrite as 'URL rewritten', CONCAT('http://www.yoursite.com/img/c/',ps_category_lang.id_category,'.jpg') as 'Image URL' FROM ps_category LEFT JOIN ps_category_lang on ps_category_lang.id_category = ps_category.id_category WHERE ps_category_lang.id_lang is "1" Brache bei den Kategorien jetzt ein glaubwürdigeres Ergebnis. Als nächstes geht es an die Produkte Link to comment Share on other sites More sharing options...
Luca01 Posted January 1, 2015 Share Posted January 1, 2015 Hallo Coyotee, vielen Dank für das Teilen Deines sql-Statments. Ich bin mir während der Entwicklung meiner Statements ziemlich alleine vorgekommen. Darum wollte ich Dir eine Rückmeldung geben. Ich habe mich bei der Entwicklung zumindest ziemlich alleine gefühlt und hätte mir feedback gewünscht. Ich habe bei dem Statment zum Export der Kategorien hier im Thread bewußt einen /inner join/ zur Verknüpfung der Tabellen angewendet. Der Grund ist, dass ich die 1:n Beziehung im Export abbilden wollte. Daten, die nicht der 1:n Beziehung beider Tabellen folgten, wollte ich nicht in den Export nehmen. Warum hast Du einen /outer join/ zur Verküpfung gewählt? Du weist das Attribut "Parent category" aus. Aber das kann doch abfragetechnisch gar nicht die Elternkategorie der Kategorie sein, weil die Verknüpfung eine ps_category_lang.id_category = ps_category.id_category ist wird dort nur der Kategoriename als Attribut ausgewiesen. Das ist der gleiche Inhalt wie das Attribut "name". Ein Import dürfte den Kategoriebaum ziemlich zerhauen. Du schränkst das Abfrageergebnis durch eine where Bedingung "where ps_category_lang.id_lang is "1"" ein. Ich vermute, weil in der Datenbank mehrere Spracheinstellungen in den Stammdaten auch mehrere gleicher Datensätze in der Tabelle ps_categorie_lang für die id_categorie angelegt haben. Du exportierst in diesem Zusammenhang das Attribut ps_category_lang.id_lang as 'Language' an welcher Stelle kann man das Attribut denn importieren? Notwendig wäre es ja für einen logischen csv-Import in Prestashop, aber soweit ich weiß, gibt der csv-Import das Attribut für den Kategorieikmport nicht her. Hast Du einen Weg gefunden? Viele Grüße und ein schönes neues Jahr Link to comment Share on other sites More sharing options...
Coyotee Posted January 2, 2015 Author Share Posted January 2, 2015 Hallo Luca01, Dir auch ein gutes neues Jahr. Die SQL Abfrage musste ich so bauen, da andere Versuche bei mir zu falschen Ergebnissen geführt haben. Sprachen sind keine mehr vorhanden, aber nur im Shop - nicht aber in der Datenbank. Inzwischen habe ich den Verdacht, dass die Datenbank kaputt ist. Ich finde es sehr schade, dass gerade bei solchen Problemen, die Cracks sehr zurückhaltend sind. Danke für Dein Posting - man kommt sich allerdings sehr alleine vor. Tatsächlich gibt ein Problem: die CSV Datei ist nicht saber getrennt. Hier mein Script: SELECT a.id_product, a.active, b.id_lang, b.name, c.categories, a.price, a.id_tax_rules_group, a.wholesale_price, a.reference, a.supplier_reference, d.name, e.name, a.ean13, a.upc, a.ecotax, a.width, a.height, a.depth, a.weight, f.quantity, a.minimal_quantity, a.visibility, a.additional_shipping_cost, a.unity, a.unit_price_ratio, b.description_short, b.description, g.tags, b.meta_title, b.meta_keywords, b.meta_description, b.link_rewrite, b.available_now, b.available_later, a.available_for_order, a.available_date, a.date_add, a.show_price, h.bild, 1 as bilder_loschen, a.online_only, a.condition, a.customizable, a.uploadable_files, a.text_fields, a.out_of_stock, b.id_shop FROM ps_product as a left outer join ps_product_lang as b on a.id_product = b.id_product left outer join (SELECT ps_category_product.id_product, GROUP_CONCAT(ps_category_lang.name) as categories FROM ps_category_product left outer join ps_category_lang on ps_category_product.id_category = ps_category_lang.id_category GROUP BY ps_category_product.id_product) as c on a.id_product = c.id_product left outer join ps_supplier as d on a.id_supplier = d.id_supplier left outer join ps_manufacturer as e on a.id_manufacturer = e.id_manufacturer left outer join (SELECT * FROM ps_stock_available where id_product_attribute = 0) as f on a.id_product = f.id_product left outer join (SELECT ps_product_tag.id_product, GROUP_CONCAT(ps_tag.name) as tags FROM ps_product_tag left outer join ps_tag on ps_product_tag.id_tag = ps_tag.id_tag GROUP BY ps_product_tag.id_product) as g on a.id_product = g.id_product left outer join (SELECT ps_image.id_product, GROUP_CONCAT('http://www.germangoodies4u.com/img/p/', (CASE WHEN LENGTH(ps_image.id_image)=1 THEN substr(ps_image.id_image,1,1) ELSE (CASE WHEN LENGTH(ps_image.id_image)=2 THEN CONCAT(substr(ps_image.id_image,1,1),'/',substr(ps_image.id_image,2,1)) ELSE (CASE WHEN LENGTH(ps_image.id_image)=3 THEN CONCAT(substr(ps_image.id_image,1,1),'/',substr(ps_image.id_image,2,1),'/',substr(ps_image.id_image,3,1)) ELSE (CASE WHEN LENGTH(ps_image.id_image)=4 THEN CONCAT(substr(ps_image.id_image,1,1),'/',substr(ps_image.id_image,2,1),'/',substr(ps_image.id_image,3,1),'/',substr(ps_image.id_image,4,1)) ELSE CONCAT(substr(ps_image.id_image,1,1),'/',substr(ps_image.id_image,2,1),'/',substr(ps_image.id_image,3,1),'/',substr(ps_image.id_image,4,1),'/',substr(ps_image.id_image,5,1)) END) END) END) END),'/',ps_image.id_image, '.jpg') AS bild FROM ps_image GROUP BY ps_image.id_product) as h on a.id_product = h.id_product WHERE b.id_lang = '1' Link to comment Share on other sites More sharing options...
Coyotee Posted January 2, 2015 Author Share Posted January 2, 2015 Man kann Post nicht mehr bearbeiten? Nicht gut. Das Skript dürfte Dich bekannt vorkommen ;-) Link to comment Share on other sites More sharing options...
Luca01 Posted January 2, 2015 Share Posted January 2, 2015 (edited) Hallo coyotee, ich würde jetzt erstmal bei Deinem Script zum Kategorien-Export bleiben. Die SQL Abfrage musste ich so bauen, da andere Versuche bei mir zu falschen Ergebnissen geführt haben. Der sql zum Kategorien-Export führt auch zu einem falschen Ergebnis, weil Du nicht alle notwendigen Daten einbindest. Es mag ja ein schönes Ergebnis sein, ist aber falsch. Inzwischen habe ich den Verdacht, dass die Datenbank kaputt ist. Das ist etwas zu früh geurteilt. Es kann zu Inkonsistenzen (falsche Zuordnungen in den Tabellen) kommen, aber das bedeutet nicht, das die ganze Datenbank defekt ist. Zunächst überarbeite doch den Kategorien-Export-Sql so, dass auch die Eltern-Kategorie mitgeliefert wird. Damit überhaupt eine csv-Datei mit schönem und richtigem Inhalt entsteht, die man dann auch importieren kann. Hier mein Script: ....... Das Skript dürfte Dich bekannt vorkommen ;-) Dieses Script für den Produkt-Export, muß man verstehen. Es ist ein Grundlagenwerkzeug. Der Vorteil ist, das man es nicht selber schreiben muß. Man muß es aber schreiben können, damit man es auf die eigene Datenbank anwenden kann. Tatsächlich gibt ein Problem: die CSV Datei ist nicht saber getrennt. Diese Fehlerbeschreibung hilft keinem, weil ich z.B. mit den von mir geposteten sql-Statments meinen Shop auch tatsächlich exportiert und importiert habe. Darum kann ein Nutzer erstmal davon ausgehen, das die Statments funktionieren und auch in ihrem Dateninhalt sauber getrennt sind. Ich poste keine Arbeiten, die nicht bei mir im praktischen Einsatz getestet sind. Zumindest könntest Du ja mit einem Beispiel schreiben, welche Attribute (Informationsinhalte eines Datensatzes) nicht sauber getrennt sind und wo Deiner Meinung nach das Statment Fehler hat und warum. Wenn es uns gemeinsam gelingt, das sql zu verbessern würde das auch die Leute weiter bringen, die noch vor einem Update dieser Art stehen. Viele Grüße Edited January 2, 2015 by Luca01 (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now