Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

MySQL Adressbuch in Outlook importieren (Probleme mit Zeilenumbruch in .CSV)

Frage Entwicklung PHP

Mitglied: SamTrex

SamTrex (Level 1) - Jetzt verbinden

23.09.2009, aktualisiert 21.10.2009, 4422 Aufrufe, 5 Kommentare

Hallo zusammen,
mein Problem scheind eigentlich ganz simpel zu sein, doch irgenwie auch wieder nicht.

Folgendes:
Ich habe mir ein Adressbuch in einer MySQL Tabelle erstellt. Dieses möchte ich jetzt gerne nach Outlook 2003 importieren. - Soweit die Theorie...
In Outlook gibt es die Möglichkeit Adressbücher aus .CSV Dateien zu importeieren. (Windows CSV "," getrennt)

Im Header (1. Zeile) befinden sich die Datenfeldnamen - bei Outlook 90 Stück im Stil von: "Anrede","Vorname", ....
Danach folgen pro Zeile ein Adressbucheintrag.

Alles kein Problem. Jetzt gibt es bestimmt mehrere Möglichkeiten um ans Ziel zu kommen.
Nach ein bisschen Googlen habe ich dann SELECT * INTO OUTFILE gefunden und dies erstmal in PHPMyAdmin ausprobiert.
Tolle Sache, leider stimmen die Datenfelder meines Adressbuches nicht mit Outlook überein.

Daher habe ich mir jetzt etwas kleines geschrieben:

01.
// Das sind die Datenheader von Outlook! 
02.
// "Anrede","Vorname","Weitere Vornamen","Nachname","Suffix","Firma","Abteilung","Position","Straße geschäftlich","Straße geschäftlich 2","Straße geschäftlich 3"
03.
// "Ort geschäftlich","Region geschäftlich","Postleitzahl geschäftlich","Land geschäftlich","Straße privat","Straße privat 2","Straße privat 3","Ort privat"
04.
// "Region privat","Postleitzahl privat","Land privat","Weitere Straße","Weitere Straße 2","Weitere Straße 3","Weiterer Ort","Weitere Region","Weitere Postleitzahl"
05.
// "Weiteres Land","Telefon Assistent","Fax geschäftlich","Telefon geschäftlich","Telefon geschäftlich 2","Rückmeldung","Autotelefon","Telefon Firma","Fax privat"
06.
// "Telefon privat","Telefon privat 2","ISDN","Mobiltelefon","Weiteres Fax","Weiteres Telefon","Pager","Haupttelefon","Mobiltelefon 2","Telefon für Hörbehinderte"
07.
// "Telex","Abrechnungsinformation","Benutzer 1","Benutzer 2","Benutzer 3","Benutzer 4","Beruf","Büro","E-Mail-Adresse","E-Mail-Typ","E-Mail: Angezeigter Name"
08.
// "E-Mail 2: Adresse","E-Mail 2: Typ","E-Mail 2: Angezeigter Name","E-Mail 3: Adresse","E-Mail 3: Typ","E-Mail 3: Angezeigter Name","Empfohlen von","Geburtstag"
09.
// "Geschlecht","Hobby","Initialen","Internet-Frei/Gebucht","Jahrestag","Kategorien","Kinder","Konto","Name Assistent","Name des/der Vorgesetzten","Notizen"
10.
// "Organisations-Nr.","Ort","Partner","Postfach geschäftlich","Postfach privat","Priorität","Privat","Regierungs-Nr.","Reisekilometer","Sprache","Stichwörter"
11.
// "Vertraulichkeit","Verzeichnisserver","Webseite","Weiteres Postfach" 
12.
 
13.
 
14.
// Hier werden diese als erste Zeile in die Variable $NDS geschrieben		 
15.
	$NDS  = '"Anrede","Vorname","Weitere Vornamen","Nachname","Suffix","Firma","Abteilung","Position","Straße geschäftlich","Straße geschäftlich 2","Straße geschäftlich 3","Ort geschäftlich","Region geschäftlich","Postleitzahl geschäftlich","Land geschäftlich","Straße privat","Straße privat 2","Straße privat 3","Ort privat","Region privat","Postleitzahl privat","Land privat","Weitere Straße","Weitere Straße 2","Weitere Straße 3","Weiterer Ort","Weitere Region","Weitere Postleitzahl","Weiteres Land","Telefon Assistent","Fax geschäftlich","Telefon geschäftlich","Telefon geschäftlich 2","Rückmeldung","Autotelefon","Telefon Firma","Fax privat","Telefon privat","Telefon privat 2","ISDN","Mobiltelefon","Weiteres Fax","Weiteres Telefon","Pager","Haupttelefon","Mobiltelefon 2","Telefon für Hörbehinderte","Telex","Abrechnungsinformation","Benutzer 1","Benutzer 2","Benutzer 3","Benutzer 4","Beruf","Büro","E-Mail-Adresse","E-Mail-Typ","E-Mail: Angezeigter Name","E-Mail 2: Adresse","E-Mail 2: Typ","E-Mail 2: Angezeigter Name","E-Mail 3: Adresse","E-Mail 3: Typ","E-Mail 3: Angezeigter Name","Empfohlen von","Geburtstag","Geschlecht","Hobby","Initialen","Internet-Frei/Gebucht","Jahrestag","Kategorien","Kinder","Konto","Name Assistent","Name des/der Vorgesetzten","Notizen","Organisations-Nr.","Ort","Partner","Postfach geschäftlich","Postfach privat","Priorität","Privat","Regierungs-Nr.","Reisekilometer","Sprache","Stichwörter","Vertraulichkeit","Verzeichnisserver","Webseite","Weiteres Postfach"'; 
16.
	$NDS .= '/n'; 
17.
 
18.
	mysql_connect($dbsvr, $dbuser, $dbpass); 
19.
	mysql_select_db($dbname); 
20.
	$RS = mysql_query("SELECT * FROM adressbook ORDER BY status, name"); 
21.
 
22.
// In dieser Schleife werden die Datenfelder aus meinem Adressbuch in Outlook Datenfelder geschrieben / pro Datensatz 
23.
 
24.
	while ($DS = mysql_fetch_assoc($RS)) 
25.
26.
		$NDS .= '"",'; //Anrede 
27.
		$NDS .= '"' . $DS["vorname"] . '",'; //Vorname 
28.
		$NDS .= '"",'; //Weitere Vornamen 
29.
		$NDS .= '"' . $DS["name"] . '",'; //Nachname 
30.
		$NDS .= '"",'; //Suffix	Firma 
31.
		$NDS .= '"",'; //Abteilung 
32.
		$NDS .= '"",'; //Position 
33.
		$NDS .= '"' . $DS["strasse2"] . '",'; //Straße geschäftlich 
34.
		$NDS .= '"",'; //Straße geschäftlich 2 
35.
		$NDS .= '"",'; //Straße geschäftlich 3 
36.
		$NDS .= '"' . $DS["ort2"] . '",'; //Ort geschäftlich 
37.
		$NDS .= '"",'; //Region geschäftlich 
38.
		$NDS .= '"' . $DS["plz2"] . '",'; //Postleitzahl geschäftlich 
39.
		$NDS .= '"",'; //Land geschäftlich 
40.
		$NDS .= '"' . $DS["strasse"] . '",'; //Straße privat 
41.
		$NDS .= '"",'; //Straße privat 2 
42.
		$NDS .= '"",'; //Straße privat 3 
43.
		$NDS .= '"' . $DS["ort"] . '",'; //Ort privat 
44.
		$NDS .= '"",'; //Region privat 
45.
		$NDS .= '"' . $DS["plz"] . '",'; //Postleitzahl privat 
46.
		$NDS .= '"",'; //Land privat 
47.
		$NDS .= '"",'; //Weitere Straße 
48.
		$NDS .= '"",'; //Weitere Straße 2 
49.
		$NDS .= '"",'; //Weitere Straße 3 
50.
		$NDS .= '"",'; //Weiterer Ort 
51.
		$NDS .= '"",'; //Weitere Region 
52.
		$NDS .= '"",'; //Weitere Postleitzahl 
53.
		$NDS .= '"",'; //Weiteres Land 
54.
		$NDS .= '"",'; //Telefon Assistent 
55.
		$NDS .= '"' . $DS["fax2"] . '",'; //Fax geschäftlich 
56.
		$NDS .= '"' . $DS["tel3"] . '",'; //Telefon geschäftlich 
57.
		$NDS .= '"' . $DS["tel4"] . '",'; //Telefon geschäftlich 2 
58.
		$NDS .= '"",'; //Rückmeldung 
59.
		$NDS .= '"",'; //Autotelefon 
60.
		$NDS .= '"",'; //Telefon Firma 
61.
		$NDS .= '"' . $DS["fax"] . '",'; //Fax privat 
62.
		$NDS .= '"' . $DS["tel"] . '",'; //Telefon privat 
63.
		$NDS .= '"",'; //Telefon privat 2 
64.
		$NDS .= '"",'; //ISDN 
65.
		$NDS .= '"' . $DS["tel2"] . '",'; //Mobiltelefon 
66.
		$NDS .= '"",'; //Weiteres Fax 
67.
		$NDS .= '"",'; //Weiteres Telefon 
68.
		$NDS .= '"",'; //Pager 
69.
		$NDS .= '"",'; //Haupttelefon 
70.
		$NDS .= '"",'; //Mobiltelefon 2 
71.
		$NDS .= '"",'; //Telefon für Hörbehinderte 
72.
		$NDS .= '"",'; //Telex 
73.
		$NDS .= '"",'; //Abrechnungsinformationen 
74.
		$NDS .= '"",'; //Benutzer 1 
75.
		$NDS .= '"",'; //Benutzer 2 
76.
		$NDS .= '"",'; //Benutzer 3 
77.
		$NDS .= '"",'; //Benutzer 4 
78.
		$NDS .= '"",'; //Beruf 
79.
		$NDS .= '"",'; //Büro 
80.
		$NDS .= '"' . $DS["email"] . '",'; //E-Mail-Adresse 
81.
		$NDS .= '"",'; //E-Mail-Typ 
82.
		$NDS .= '"' . $DS["email"] . '",'; //E-Mail: Angezeigter Name 
83.
		$NDS .= '"' . $DS["email2"] . '",'; //E-Mail 2 Adresse 
84.
		$NDS .= '"",'; //E-Mail 2 Typ 
85.
		$NDS .= '"' . $DS["email2"] . '",'; //E-Mail 2 Angezeigter Name 
86.
		$NDS .= '"' . $DS["email3"] . '",'; //E-Mail 3 Adresse 
87.
		$NDS .= '"",'; //E-Mail 3 Typ 
88.
		$NDS .= '"' . $DS["email3"] . '",'; //E-Mail 3 Angezeigter Name 
89.
		$NDS .= '"",'; //Empfohlen von 
90.
		$NDS .= '"' . $DS["geb"] . '",'; //Geburtstag 
91.
		$NDS .= '"",'; //Geschlecht 
92.
		$NDS .= '"",'; //Hobby 
93.
		$NDS .= '"",'; //Initialen 
94.
		$NDS .= '"",'; //Internet-Frei/Gebucht 
95.
		$NDS .= '"",'; //Jahrestag 
96.
		$NDS .= '"' . $DS["status"] . '",'; //Kategorien 
97.
		$NDS .= '"",'; //Kinder 
98.
		$NDS .= '"",'; //Konto 
99.
		$NDS .= '"",'; //Name Assistent 
100.
		$NDS .= '"",'; //Name des/der Vorgesetzten 
101.
		$NDS .= '"' . $DS["notes"] & ', ' & $DS["notes2"] . '",'; //Notizen 
102.
		$NDS .= '"",'; //Organisations-Nr. 
103.
		$NDS .= '"",'; //Ort 
104.
		$NDS .= '"",'; //Partner 
105.
		$NDS .= '"",'; //Postfach geschäftlich 
106.
		$NDS .= '"",'; //Postfach privat 
107.
		$NDS .= '"",'; //Priorität 
108.
		$NDS .= '"",'; //Privat 
109.
		$NDS .= '"",'; //Regierungs-Nr. 
110.
		$NDS .= '"",'; //Reisekilometer 
111.
		$NDS .= '"",'; //Sprache 
112.
		$NDS .= '"",'; //Stichwörter 
113.
		$NDS .= '"",'; //Vertaulichkeit 
114.
		$NDS .= '"",'; //Verzeichnisserver 
115.
		$NDS .= '"' . $DS["hp"] . '",'; //Webseite 
116.
		$NDS .= '""';  //Weiteres Postfach	 
117.
		$NDS .= '/n'; 
118.
119.
 
120.
// Der komplette String wird dann in die Datei geschrieben 
121.
 
122.
$dlfile = fopen("testfile.csv", w); 
123.
fwrite($dlfile, $NDS);	 
124.
fclose($dlfile);
So, das ganze funktioniert soweit ganz gut. Allerdings habe ich in der .csv keine Zeilenumbrüche!!!
Ich habe gegoogled bis ich schwarz war. Alles was ich gefunden habe ist: Hänge ein "/n" oder ein "/r/n" an den String....
Wie Ihr seht habe ich das getan. Wenn ich die Datei in Notepad öffne habe ich eine einzige lange Zeile die Notepad von sich aus irgendwann umbricht.
Öffne ich sie in meinem favorisierten Editor (EvolvED) habe ich nur eine ellen lange Zeile.

Kann mir da wer weiterhelfen? Ich kapier das einfach nicht ....
Übrigens, kann ich statt die Datei nur zu erstellen diese nicht auch "nicht" schreiben und den String direkt zum download anbieten? Über "header content-type"???

Bin für jeden Rat dankbar....

Mit freundlichen Grüßen Sam
Mitglied: 76109
23.09.2009 um 00:33 Uhr
Hallo Sam!

Versuch mal anstatt "/r/n" das hier "\r\n".

Gruß Dieter
Bitte warten ..
Mitglied: nxclass
23.09.2009 um 08:35 Uhr
Nach ein bisschen Googlen habe ich dann SELECT * INTO OUTFILE gefunden und dies erstmal in PHPMyAdmin ausprobiert.
Tolle Sache, leider stimmen die Datenfelder meines Adressbuches nicht mit Outlook überein.

wieso erstellst Du dir dann nicht einfach eine Temp.Tabelle und exportierst diese ?
01.
CREATE TEMPORARY TABLE IF NOT EXISTS 'export' 
02.
SELECT 
03.
  '' AS 'Anrede', 
04.
  `vorname` AS 'Vorname', 
05.
/* usw. */ 
06.
FROM `adressbook` ORDER BY `status`, `name`; 
07.
 
08.
SELECT * INTO OUTFILE 'wo/auch/immer' 
09.
/* ggf. noch 
10.
FIELDS TERMINATED BY ',' 
11.
FIELDS ENCLOSED BY '"' 
12.
LINES TERMINATED BY '\n' 
13.
*/ 
14.
FROM `export`;
Bitte warten ..
Mitglied: SamTrex
23.09.2009 um 18:18 Uhr
Danke euch für die schnelle Hilfe!

@Dieter
Wenn ich so etwas sehe kann ich echt verzweifeln... - nur / & \ vertauscht...
Ich habe als erstes das '/n' gegen '/r/n' getauscht. - Das funktioniert auch nicht !!! Es darf kein ' sondern es muß ein " sein!
Muß ich auch sonst irgendwo darauf achten " statt ' zu nehmen? In der "Füllung" des Headers habe ich ja meine lange Zeichenkette die " beinhaltet in ' gekapselt.
Wenn ich die ' als " geschrieben habe bekam ich eine Fehlermeldung....

@nxclass
Interesanter Vorschlag. Ich bin noch sehr neu auf dem Gebiet PHP/MySQL, die Möglichkeit einer temporären Tabelle kannte ich noch gar nicht.
Ich werde mir das auf jeden Fall mal näher ansehen.

Mit freundlichen Grüßen
Sam
Bitte warten ..
Mitglied: nxclass
23.09.2009 um 19:31 Uhr
Beachte die doppelten Anführungszeichen zu benutzen! : "\n" nicht '\n'
PHP parst nur die Strings mit "

zB. echo '$var' sollte auch nicht gehen - nur echo "$var"
Bitte warten ..
Mitglied: SamTrex
23.09.2009 um 19:37 Uhr
Danke, gut zu wissen!

Mit freundlichen Grüßen
Sam
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Outlook & Mail
Outlook: 2. Kontakteordner in Adressbuch einblenden (3)

Frage von hallodri69 zum Thema Outlook & Mail ...

VB for Applications
Bestimmte Daten aus eine CSV-Datei in eine Excel-Tabelle importieren (2)

Frage von MariaElena zum Thema VB for Applications ...

Batch & Shell
CSV-Datei nach Excel importieren (5)

Frage von mrvfbnummer2 zum Thema Batch & Shell ...

Outlook & Mail
Outlook 2010 unter Windows 10 hat Probleme mit Exchange Server 2010 (3)

Frage von Speedflo zum Thema Outlook & Mail ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

DSL, VDSL
DSL-Signal bewerten (14)

Frage von SarekHL zum Thema DSL, VDSL ...