Hallo zusammen,
ich hab mir ein Script geschrieben, das dazu dient, eine cvs Datei(Kundendaten aus einem anderen Progamm) auf den Server zu spielen, und in eine mysql Tabelle zu schreiben.
mir kommt jedoch vor, das man das sicher etwas vereinfachen kann.
Schaut mal bitte drüber und gebt mir Tips.
Danke
ich hab mir ein Script geschrieben, das dazu dient, eine cvs Datei(Kundendaten aus einem anderen Progamm) auf den Server zu spielen, und in eine mysql Tabelle zu schreiben.
mir kommt jedoch vor, das man das sicher etwas vereinfachen kann.
Schaut mal bitte drüber und gebt mir Tips.
Danke
PHP-Code:
<?php
<?php
session_start();
error_reporting(E_ALL);
$pfad = "/home/php_t-com/public_html/schwarz/"; // Verzeichnispfad zur .cvs Datei auf dem Webserver
$objekt = "muster"; // Name der Datei wie sie auf dem Webserver heissen soll
$table = "test_schwarz"; // Table, in den die CSV-Datei übertragen werden soll(die Spalten müssen schon vorhanden sein)
$terminated = ";"; // Trennzeichen, das in der Datei verwendet wird
$message1 = "Die Datei konnte nicht bereit gestellt werden.";
$message2 = "Keine Datei zum bereitstellen da.";
$message3 = "Die Datei wurde erfolgreich in die Datenbank übertragen.";
$message4 = "Die Datei ist nicht vorhanden.";
function db_connect() {
$server = "localhost"; // Hostname z.B. localhost
$user = "xxxx"; // Benutzername (ACHTUNG DER BENUTZER BRAUCHT AUSREICHENDE RECHTE)
$pass = "xxxx"; // Passwort
$database = "xxxx"; // Datenbank
$result = mysql_connect($server,$user,$pass) or die ("Keine Verbindung möglich.");
mysql_select_db($database) or die ("Datenbank existiert nicht.");
mysql_select_db($database, $result);
return $result;
}
if (isset($_POST['upload'])){
if($_FILES['cvs']['name']!=""){
$endung = substr(strrchr($_FILES['cvs']['name'], '.'), 1);
$_FILES['cvs']['name'] = $objekt.".".$endung;
$filename = $_FILES['cvs']['name'];
$file = $pfad.$filename;
$_SESSION['file'] = $file;
if(move_uploaded_file($_FILES['cvs']['tmp_name'], $file)){
chmod ($file, 0664);
echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"post\" name=\"form1\">\n";
echo "<table width=\"50%\" border=\"0\" align=\"center\" bgcolor=\"#C0C0C0\">\n";
echo "<tr>\n";
echo "<th>CSV in MySQL Schreiben\n";
echo "<input name=\"send\" type=\"hidden\" value=\"1\" />\n";
echo "</th>\n";
echo "<th>\n";
echo "<input type=\"submit\" name=\"submit\" value=\"Und los!\" />\n";
echo "</th>\n";
echo "</tr>\n";
echo "</table>\n";
echo "</form>\n";
}
else {
echo "<div align=\"center\">
\n";
echo $message1;
echo "</div>\n";
}
}
else {
echo "<div align=\"center\">
\n";
echo $message2;
echo "</div>\n";
}
}
else {
echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"post\" enctype=\"multipart/form-data\" name=\"form2\">\n";
echo "<div align=\"center\">\n";
echo "<input type=\"file\" name=\"cvs\" />\n";
echo "<input name=\"upload\" type=\"hidden\" id=\"upload\" value=\"1\" />\n";
echo "<input type=\"submit\" name=\"Submit\" value=\"Senden\" />\n";
echo "</div>\n";
echo "</form>\n";
}
if (isset($_SESSION['file']) AND isset ($_POST['send'])){
$file = $_SESSION['file'];
if (is_writable($file)) {
$res = db_connect();
// Bisherige Daten aus der Datenbank löschen
$del = "DELETE FROM ".$table;
$delete = mysql_query($del, $res) or die(mysql_error());
// CSV-Datei in die Datenbank übertragen
$sql = "LOAD DATA INFILE '$file' REPLACE INTO TABLE ".$table." FIELDS TERMINATED BY '$terminated'";
$query = mysql_query($sql, $res) or die(mysql_error());
echo "<div align=\"center\">
\n";
echo $message3;
echo "</div>\n";
}
else {
echo "<div align=\"center\">
\n";
echo message4;
echo "</div>\n";
}
}
?>
?>
Kommentar