Import aus WBB3.1

PHP Newsletter Software/Script und E-Mail-Marketing Software SuperWebMailer

Moderator: mirko

Antworten
Benutzeravatar
mirko
Beiträge: 23082
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Beitrag von mirko »

SuperWebMailer macht das beim Geschlecht so:

\'weiblich\', \'w\', \'f\' und die Zahl 1 sind weibliche Kontakte
\'männlich\', \'m\' und die Zahl 0 sind immer männliche Kontakte

andere Werte werden nicht angeschaut.
Benutzeravatar
-chris-
Beiträge: 5
Registriert: 10.07.2010, 16:37

Beitrag von -chris- »

Bei nochmaliger Kontrolle habe ich bemerkt, dass

IF (`wcf1_user_option_value`.`userOption8`=1, \'m\', IF(`wcf1_user_option_value`.`userOption8`=2, \'w\', \'undefined\')) AS Geschlecht

nicht funktioniert, egal ob \"undefined\" richtig geschrieben ist oder nicht. Datensätze ohne Geschlechtsangabe bekommen durch diese Anweisung das Geschlecht männlich zugewiesen. Auch dann, wenn man statt \"undefined\" einen beliebigen Buchstaben wählt.

Es wird nur dann ein \"undefined\" korrekt in die Zieltabelle geschrieben, wenn der Wert numerisch ist! Woran das liegt, habe ich nicht durchschaut. Eigentlich sollte im Import-Script alles außer \"w\", \"m\", \"f\", \"0\" oder \"1\" ein \"undefined\" bekommen.

Ich verwende MySQL version 4.1.22, die ausgelesenen Daten sind UTF8-codiert.

Habe die SQL-Anweisung im ersten Beitrag dementsprechend ausgebessert.

Chris
Benutzeravatar
-chris-
Beiträge: 5
Registriert: 10.07.2010, 16:37

Beitrag von -chris- »

Danke, schon ausgebessert :augenroll:

Chris
Benutzeravatar
mirko
Beiträge: 23082
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Beitrag von mirko »

Ein kleiner Fehler ist drin, das darf nicht

\'undefinded\'

heißen, sondern

\'undefined\'

:)
Benutzeravatar
-chris-
Beiträge: 5
Registriert: 10.07.2010, 16:37

Beitrag von -chris- »

Als SuperWebMailer-Neuling war ist zuerst skeptisch, ob es wirklich möglich ist, den Userbestand aus WBB3 (Woltlab Burning Board) komfortabel zu übernehmen, aber nach einer Auffrischung meiner SQL Kenntnisse hab ich es doch geschafft. Vielleicht erspart es anderen WBB3-Admins ein paar Stunden Arbeit :d_zwinker: .

> Die folgende SQL Anweisung bei \"erweiterter Import\" einfügen:

[table=#FFFFFF,95%,1,center]


[td=#FFFFFF,95%,left]
SELECT `wcf1_user`.`userID` , `wcf1_user`.`email` , `wcf1_user`.`username` ,
`wcf1_user_option_value`.`userOption7` AS Geburtstag, `wcf1_group`.`groupName` AS Gruppe,
IF( `wcf1_user_option_value`.`userOption8` =1, \'m\', IF( `wcf1_user_option_value`.`userOption8` =2, \'w\', \'3\' ) ) AS Geschlecht
FROM wcf1_group
INNER JOIN (
(
wcf1_user
INNER JOIN wcf1_user_option_value ON `wcf1_user`.`userID` = `wcf1_user_option_value`.`userID`
)
INNER JOIN wcf1_user_to_groups ON `wcf1_user`.`userID` = `wcf1_user_to_groups`.`userID`
) ON `wcf1_group`.`groupID` = `wcf1_user_to_groups`.`groupID`
WHERE (
`wcf1_user_to_groups`.`groupID` >1
);




> Die Felder richtig zuordnen,
> beim Datumsformat \"yyyy-mm-dd\" wählen (Achtung, das Datumsformat stellt sich immer wieder zurücK!)
> bei \"Gruppennamen übernehmen\" das Feld \"Gruppe\" auswählen

Nach dem Import stehen alle User aus dem WBB3-Forum zur Verfügung und man kann nach WBB3-Benutzergruppen auswählen.

Die Felder aus der Tabelle \"wcf1_user_option_value\" können natürlich beliebig erweitert werden, was die Felder enthalten, muss man in der Tabelle \"wcf1_user_option\" nachlesen, ich habe nur \"birthday\" und \"gender\" ausgelesen.

Die WBB3-Gruppe \"Jeder\" habe ich vom Import ausgeschlossen, weil in dieser Gruppe sowieso ausnahmslos alle WBB3-User enthalten sind - wer die Gruppe jeder behalten will, kann sich die\"WHERE\"-Anweisung am Ende sparen.

Nicht vergessen, zu kontrollieren, ob das Tabellenpräfix der WBB3-Tabellen wirklich \"wcf1\" ist, bei Mehrfachinstallationen kann statt \"1\" auch eine andere Nummer stehen.

Chris
Zuletzt geändert von -chris- am 13.07.2010, 00:41, insgesamt 4-mal geändert.
Antworten