Top-Themen

Aktuelle Themen (A bis Z)

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)

Mitglied: SamTrex

SamTrex (Level 1) - Jetzt verbinden

23.09.2009, aktualisiert 21.10.2009, 4532 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....

MfG 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.

MfG
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!

MfG
Sam
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
CSV-Datei nach Excel importieren
Frage von mrvfbnummer2Batch & Shell5 Kommentare

Hallo Leute, ich möchte CSV-Dateien in eine Excel-Datei mit PowerSell importieren. Ich habe bereits viel ausprobiert aber habe noch ...

VB for Applications
csv Dateien als Text importieren
gelöst Frage von BacchidaVB for Applications7 Kommentare

Hallo :) ich habe ein Makro geschrieben, das .csv Dateien importiert. Nun habe ich folgendes Problem: In den importierten ...

PHP
Txt Datei in mysql importieren
gelöst Frage von dax4funPHP5 Kommentare

Hi, Leute habe mehrere txt Dateien auf einem FTP Server und möchte diese Daten in eine mysql DB auf ...

Datenbanken
MySQL Datenbank in MSSQL importieren
Frage von MaffiDatenbanken6 Kommentare

Hallo, ich habe eine MySQL Datenbank und würde Sie gerne in MSSQL EXPRESS importieren, ich nutze das "Microsoft SQL ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 2 TagenWindows 105 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 2 TagenAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 3 TagenHumor (lol)5 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 3 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Router & Routing
Router auf Orginal Firmware zurück flashen mit Tftpd
Frage von ILeonardRouter & Routing21 Kommentare

Hallo, Ich habe zwei Router, einmal TP-Link 841n v11 und TP-Link 940N v5. Ich wollte fragen, ob jemand mir ...

Router & Routing
WRT keine Verbindung zum Web Interface
gelöst Frage von ILeonardRouter & Routing18 Kommentare

Hallo, Ich habe einen TP-Link WR841n mit wrt geflasht, das Problem ist ich kann mich mit 192.168.1.1 nicht verbinden. ...

Windows Server
Standortvernetzung zu einem Strato VServer (Windows)
Frage von matzefratze81Windows Server10 Kommentare

Moin, ich komme aus einem Enterprise-Umfeld und habe den Fehler gemacht, dass ich mich auf ein kleines Unternehmen eingelassen ...

TK-Netze & Geräte
Telefonie zweier Fritzboxen mit je eigenem DSL Anschluss verbinden
Frage von hannsgmaulwurfTK-Netze & Geräte10 Kommentare

Hallo zusammen, ich habe hier einen Haushalt mit zwei Anschlüssen. Einmal ISDN, einmal DSL. An jedem Anschluss hängt eine ...