Shad86 Posted June 2, 2017 Share Posted June 2, 2017 Hallo Community, ich möchte gern die Kunden aus dem 1.5er Shop exportieren und habe mir da folgendes mit Hilfe bauen lassen: SELECT l.name AS Kundengruppe,a.active AS Aktiv, a.deleted AS Geloescht, a.id_customer AS Kundennummer, a.alias AS Alias, a.company AS Firma, cl.name AS Land, a.lastname AS Name, a.firstname AS Vorname, c.id_gender AS Geschlecht, a.newsletter AS Newsletter, a.address1 AS Strasse, a.address2 AS Hausnummer, a.postcode AS PLZ , a.city AS Ort, a.other AS Zusatz, a.phone AS Telefon, a.phone_mobile AS Mobil, a.vat_number AS Steuernummer, c.email AS Email FROM ps_address a LEFT JOIN ps_customer c ON ( a.id_customer = c.id_customer) LEFT JOIN ps_customer_group g ON ( a.id_customer = g.id_customer) LEFT JOIN ps_group_lang l ON ( g.id_group = l.id_group) LEFT JOIN ps_country_lang cl ON ( a.id_country = cl.id_country) WHERE a.id_country > 0 AND l.id_lang = 1 AND cl.id_lang = 1 GROUP BY a.id_customer Funktioniet soweit auch richtig gut. Nur leider werden nicht alle Kunden exportiert. Mir kommt es so vor als wenn nur Kunden exportiert werden die sich auch schonmal eingeloggt haben. Ja ich weiß, klingt blöd, wir haben aber auch einige aus dem Backend angelegte Kunden dabei. Die sollen natürlich auch exportiert werden. Gibt es da eine Möglichkeit ohne das ich mich einmal als jeder Kunde anmelden muss? Link to comment Share on other sites More sharing options...
rictools Posted June 2, 2017 Share Posted June 2, 2017 Ich würde in der Datenbank nachschauen, inwieweit sich da die nicht eingeloggten Kunden unterscheiden. Link to comment Share on other sites More sharing options...
Claudiocool Posted June 4, 2017 Share Posted June 4, 2017 Wird vermutlich mit dieser selektion "a.active AS Aktiv" zusammenhängen. Was passiert, wenn man diesent Teil weglässt? Link to comment Share on other sites More sharing options...
eleazar Posted June 4, 2017 Share Posted June 4, 2017 Nein, mit Boolschen Werten hat das nichts zu tun.Da aber die Abfrage auf die Sprache Deutsch und Deutschland beschränkt ist, können Kunden entfallen. Besser daher die Bedingungen nicht unnötig einschränken, sondern offen anlegen: WHERE a.id_country > 0 AND l.id_lang >= 1 AND cl.id_country >= 1 In Whileys Testshop habe ich dies mal so eingegeben. Sobald du es mit deinen Bedingungen versuchst, fehlt Kunde 1, da er aus Frankreich kommt. Link to comment Share on other sites More sharing options...
Shad86 Posted June 7, 2017 Author Share Posted June 7, 2017 @rictools: Habe ich auch versucht aber ich finde keine wirkliche Gemeinsamkeit. Habe mich sogar als einer der Kunden angemeldet um zu sehen ob es wirklich daran liegt. Wurde danach aber trotzdem nicht exportiert. @Claudiocool: Hätte ich auch gedacht aber die nicht aktiven bräuchte er auch nicht exportieren. Aber auch aktive werden nicht exportiert. @eleazar: Wir haben momentan nur deutsche Kunden in unserem Shop. Daran kanns also nicht liegen. Könnten es bestimmte "wichtige" Felder sein wo NULL drin steht? Ich bearbeite gleich mal einen Screenshot um die ersten 3 Kunden bzw. deren Tabelleneinträge zu zeigen. Vielleicht sieht jemand das Problem. Link to comment Share on other sites More sharing options...
Claudiocool Posted June 7, 2017 Share Posted June 7, 2017 (edited) Lässt sich das im MySQL-Bereich des Webspaces nicht einigermaßen komfortabel lösen? Sind da eventuell ein paar Feldnamen geändert worden zwischen den Versionen 1.5 und 1.6? Wenn du alle Kundendaten exportierst, kannst du doch im Normalfall in der Datei die Feldnamen setzen und es dann sequentiell richtig wieder einlesen lassen, das sollte doch in jedem Fall gehen. Edited June 7, 2017 by Claudiocool (see edit history) Link to comment Share on other sites More sharing options...
Whiley Posted June 7, 2017 Share Posted June 7, 2017 Hallo Community, ich möchte gern die Kunden aus dem 1.5er Shop exportieren und habe mir da folgendes mit Hilfe bauen lassen: SELECT l.name AS Kundengruppe,a.active AS Aktiv, a.deleted AS Geloescht, a.id_customer AS Kundennummer, a.alias AS Alias, a.company AS Firma, cl.name AS Land, a.lastname AS Name, a.firstname AS Vorname, c.id_gender AS Geschlecht, a.newsletter AS Newsletter, a.address1 AS Strasse, a.address2 AS Hausnummer, a.postcode AS PLZ , a.city AS Ort, a.other AS Zusatz, a.phone AS Telefon, a.phone_mobile AS Mobil, a.vat_number AS Steuernummer, c.email AS Email FROM ps_address a LEFT JOIN ps_customer c ON ( a.id_customer = c.id_customer) LEFT JOIN ps_customer_group g ON ( a.id_customer = g.id_customer) LEFT JOIN ps_group_lang l ON ( g.id_group = l.id_group) LEFT JOIN ps_country_lang cl ON ( a.id_country = cl.id_country) WHERE a.id_country > 0 AND l.id_lang = 1 AND cl.id_lang = 1 GROUP BY a.id_customer Funktioniet soweit auch richtig gut. Nur leider werden nicht alle Kunden exportiert. Mir kommt es so vor als wenn nur Kunden exportiert werden die sich auch schonmal eingeloggt haben. Ja ich weiß, klingt blöd, wir haben aber auch einige aus dem Backend angelegte Kunden dabei. Die sollen natürlich auch exportiert werden. Gibt es da eine Möglichkeit ohne das ich mich einmal als jeder Kunde anmelden muss? Um dem Fehler auf die Spur zu kommen sind 2 Schritte notwendig: 1. Du überprüfst mit phpmyadmin ob die Kunden die du vermisst in der Tabelle ps_address tatsächlich vorhanden sind. Wenn ja 2. Du nimmst aus deiner sql-Abfrage alle "where and"- Bedingungen raus und schaust dir dann das Ergebnis an. also so: SELECT l.name AS Kundengruppe,a.active AS Aktiv, a.deleted AS Geloescht, a.id_customer AS Kundennummer, a. Alias AS Alias, cl.name AS Land, c.company AS Firma, a.lastname AS Name, a.firstname AS Vorname, c.id_gender AS Geschlecht, a.address1 AS Strasse, a.address2 AS Hausnummer, a.postcode AS PLZ , a.city AS Ort, a.other AS Zusatz, a.phone AS Telefon, a.phone_mobile AS Mobil, a.vat_number AS Steuernummer, c.email AS Email, c.newsletter AS Newsletter FROM ps_address a LEFT JOIN ps_customer c ON ( a.id_customer = c.id_customer) LEFT JOIN ps_customer_group g ON (c.id_customer = g.id_customer) LEFT JOIN ps_group_lang l ON (c.id_default_group = l.id_group) LEFT JOIN ps_country_lang cl ON ( a.id_country = cl.id_country) GROUP BY a.id_customer Grüsse Whiley Link to comment Share on other sites More sharing options...
eleazar Posted June 7, 2017 Share Posted June 7, 2017 Whiley hat recht! Im Grunde kann ganze die WHERE-Bedingung entfallen, dann steigt die Trefferzahl. WHERE a.id_country > 0AND l.id_lang = 1AND cl.id_lang = 1 Link to comment Share on other sites More sharing options...
Shad86 Posted June 7, 2017 Author Share Posted June 7, 2017 @ Claudiocool: um den Import geht es erstmal garnicht. Ich hätte in erster Linie erstmal gern eine einzige Datei mit allen zusamengeführten Kundeninfos. Die ich dann sowohl für den neuen Shop als auch für Newsletter und andere Dinge verwenden kann. @Whiley & eleazar: Ich glaube damit konnte ich tatsächlich das Problem definieren. Einmal habe ich WHERE Bedingung raus genommen so wurden aus 127 schon 136 Einträge (wi gesagt sind eigentlich nur Deutsche im Shop) aber durch den ersten Schritt ist mir aufgefallen das nur Kunden exportiert werden die sowohl in der ps_customer als auch in der ps_address eingetragen sind... Wie bekomme ich denn alle exportiert auch wenn die keine Versandadresse angegeben haben? Kann ja ruhig leere Felder enthalten wo es keine Infos gibt. 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