• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Mehrere Daten auf einmal importieren

stenz

Mitglied
Hallo,
habe wieder ein Problem. :(
Nämlich ich habe mehrere E-Mail Adressen so an die 300 Stück oder mehr... in dieser Form.
[email protected]<[email protected]>;[email protected]<[email protected]>;i
Jetzt würde ich gerne diese Email Adressen in eine Tabelle reinschreiben, damit ich bei einer nächsten Anfrage, es mit einem PHP Programm in Sekunden alles abschicke.
Denn es schaut nicht seriös aus wenn im Empfänger Feld mehrere Adressen dabei sind. :)

Zur Frage wie krieg ich das am einfachsten gebacken, diese Email adressen in eine Datenbank zu transferieren.

MfG
Stenz
 
Habe mal eben ein Script gebastelt:
PHP:
<?php

$mailListe = 'Vorname Nachname <[email protected]>; Max Mustermann <[email protected]>';

$mailEinzel = explode(";", $mailListe);

foreach($mailEinzel as $mail){
	$mailFormat = str_replace(">", "", $mail);
	$mailArray = explode("<", $mailFormat);
	
	// Hier kannst du jetzt jede Adresse als Datensatz in eine Datenbank-Tabelle einfügen
	echo trim($mailArray[0])."|".$mailArray[1]."<br>"; // zu ersetzen...
}

?>
Ergebnis:
Code:
Vorname Nachname|[email protected]
Max Mustermann|[email protected]
Das zerlegt erst die einzelnen Adressen, löscht dann das > am Ende und zerlegt die Adresse dann noch in Name und Email. Das Einfügen in einer Tabelle ist nun nicht mehr weiter schwer.

Edit: Habe noch schnell den MySQL Query eingebaut.
PHP:
<?php

$connect = mysql_connect("servername", "username", "password")or die(mysql_error()); // entsprechend ersetzen
if(!mysql_select_db("databasename")){ // hier auch
	die(mysql_error());
}

$mailListe = 'Vorname Nachname <[email protected]>; Max Mustermann <[email protected]>'; // mailliste einfügen

$mailEinzel = explode(";", $mailListe);

foreach($mailEinzel as $mail){
	$mailFormat = str_replace(">", "", $mail);
	$mailArray = explode("<", $mailFormat);
	
	$query = mysql_query("INSERT INTO maillist (id, mail, name) VALUES('', '".$mailArray[1]."', '".$mailArray[0]."')", $connect)or die(mysql_error());
}

mysql_close($connect);

?>
[UNGETESTET]
Datenbankschema:
Code:
maillist{[U]id[/U]: int auto_increment; mail: varchar(50); name: varchar(50)}
 
Zuletzt bearbeitet:
Hi vitus37,

bekomm diese Meldung ausgespuckt.
Unknown column '' in 'field list'

Hab den Code von dir übernommen, aber hier nochmal falls ich etwas falsch gemacht habe.. :)

PHP:
<html>
<body>
<?php
    $connect = mysql_connect("xxx.com","xxx","xxx")or die(mysql_error()); // entsprechend ersetzen
    if(!mysql_select_db("xxx")){ // hier auch
    die(mysql_error());
    }
    
    $mailListe = '[email protected]<[email protected]>;[email protected]<[email protected]>;[email protected]<[email protected]>;[email protected]<[email protected]>;[email protected]<[email protected]>;[email protected]<[email protected]>;[email protected]<[email protected]>;[email protected]<[email protected]>;[email protected]<[email protected]>;[email protected]<[email protected]>;[email protected]<[email protected]>;[email protected]<[email protected]>;[email protected]<[email protected]>;[email protected]<[email protected]>;[email protected]<[email protected]>;[email protected]<[email protected]>;[email protected]<[email protected]>;[email protected]<[email protected]>;[email protected]<[email protected]>;[email protected]<[email protected]>;[email protected]<[email protected]>;[email protected]<[email protected]>;[email protected]<[email protected]>;[email protected]<[email protected]>;[email protected]<[email protected]>;[email protected]<[email protected]>;[email protected]<[email protected]>;[email protected]<[email protected]>;[email protected]<[email protected]>;[email protected]<[email protected]>;[email protected]<[email protected]>;[email protected]<[email protected]>;[email protected]<[email protected]>;';
    $mailEinzel = explode(";", $mailListe);

    foreach($mailEinzel as $mail){
        $mailFormat = str_replace(">", "", $mail);
        $mailArray = explode("<", $mailFormat);
        
    $query = mysql_query("INSERT INTO `guss tuerkei` (`id`,`E-mail`) VALUES(``, `".$mailArray[0]."`)", $connect)or die(mysql_error());
    }
    mysql_close($connect);
?> 
</body>
</html>

datenbankschema
guss tuerkei
id int auto_increment
E-mail varchar 50
 
Code:
VALUES(``, `".$mailArray[0]."`)
Hier liegt vermutlich der Fehler. Werte werden in Hochkommatas geschrieben, also:
Code:
INSERT INTO `guss tuerkei` (`id`,`E-mail`) VALUES([COLOR="Red"]''[/COLOR], [COLOR="Red"]'[/COLOR]".$mailArray[0]."[COLOR="Red"]'[/COLOR])
 
Zurück
Oben