Hallo, ich habe mal eine Frage.
Erstmal der Code:
Was genau muß ich eingeben wenn ich Tab -selektierte txt Daten einlesen möchte?
$db_Terminated[0] = "\t"; und $db_Terminated[0] = "Chr(9)";
legt mir nur die letzte Zeile in mysql an.
$db_Terminated[0] = (explode (Chr(9))); schmeisst alles durcheinander.
Hat da jemand eine Lösung?
Also ich würde gern eine normale Tab.- getrennte Datei einlesen ohne Sie vorher in externen Programmen zu bearbeiten.
Mit den ";" selektierten funzt es alles super.
Wollte auch eine Mail unter STADTAUS.com ( dem Macher des Scripts) senden... lach , kam ein MySQl Fehler.... lach
Ich danke Euch total!
Gruß Haxley
Erstmal der Code:
PHP-Code:
<?php
$db_MenuTitle[0] = "TEST"; // Bezeichnung des Eintrags - erscheint im Dropdown
$db_Hostname[0] = "localhost"; // Datenbank-Host (muss nicht zwingend immer localhost sein)
$db_UserName[0] = "root"; // Benutzername für diese Datenbank
$db_Password[0] = ""; // Zugehoeriges Passwort
$db_Database[0] = "usr_web3_1"; // Datenbank, auf die zugegriffen werden soll
$db_Table[0] = "testtbl"; // Table, in den die CSV-Datei übertragen werden soll
$db_File[0] = "C:/apachefriends/xampp/htdocs/html/test/andere/Beispiel.txt"; // Verzeichnispfad zur Textdatei (CSV etc.) auf dem Webserver
//$db_Terminated[0] = (explode (Chr(9))); // Trennzeichen, das in der Textdatei verwendet wird
//$db_Terminated[0] = "Chr(9)"; // Trennzeichen, das in der Textdatei verwendet wird
$db_Terminated[0] = "\t"; // Trennzeichen, das in der Textdatei verwendet wird
if (isset ($select_db)) {
// Connect zur Datenbank
mysql_connect($db_Hostname[$select_db], $db_UserName[$select_db], $db_Password[$select_db]) || die("Can't Connect to Database: ".mysql_error());
mysql_select_db($db_Database[$select_db]);
// Bisherige Daten aus der Datenbank löschen
$del = "DELETE FROM ".$db_Table[$select_db];
// CSV-Datei in die Datenbank übertragen
$sql = "LOAD DATA INFILE '$db_File[$select_db]' REPLACE INTO TABLE ".$db_Table[$select_db]." FIELDS TERMINATED BY '$db_Terminated[$select_db]'";
// ertse Zeile (Beschreibung) löschen
//$del2 = "DELETE FROM" .$db_Table[$select_db] WHERE id=(SELECT min(id) FROM .$db_Table[$select_db];
// MySQL-Statements ausführen
if (mysql_query ($del) and mysql_query ($sql)) {
//if (mysql_query ($del) and mysql_query ($sql)and mysql_query ($del2)) {
$message = "Übertragung erfolgreich";
}
else {
$message = "Übertragung fehlgeschlagen. Grund: ". mysql_error ();
}
}
// Generierung des DropDown-Menues
function generate_dropdown () {
global $db_MenuTitle, $db_Hostname, $db_UserName, $db_Password, $db_Table, $db_File, $db_Terminated;
if (is_array ($db_MenuTitle)) {
reset ($db_MenuTitle);
while (list ($key, $val) = each ($db_MenuTitle)) {
echo "<option value=\"".$key."\">".$val."</option>";
}
}
}
?>
<html>
<head>
<title>CSV to SQL</title>
</head>
<body bgcolor="#EAEAEA">
<form action="<?php echo $PHP_SELF; ?>" method="POST">
<table border="0" cellspacing="0" cellpadding="5" bgcolor="#C0C0C0" width="50%">
<tr>
<th>CSV to MySQL</th>
<th> </th>
</tr>
<tr valign="bottom">
<td>
<select name="select_db" size="<?php echo count ($db_MenuTitle); ?>">
<?php generate_dropdown (); ?>
</select>
</td>
<td>
<input type="Submit" name="submit" value="Und los!">
</td>
</tr>
</table>
</form>
<p><?php echo $message; ?></p>
<table border="0" cellspacing="0" cellpadding="5" bgcolor="#C0C0C0" width="50%">
<tr>
<td>
<p>
Mit diesem Tool hat der Benutzer die Moeglichkeit, CSV-Dateien
in eine bestehende MySQL-Datenbank zu uebertragen.
In erster Linie wurde diese Anwendung entwickelt, um Dateien
(CSV, Text), die in externen Programmen entstehen
(Tabellenkalkulation, Warenwirtschaft, Produktdatenbanken)
und die regelmaessig in eine MySQL-Datenbank auf dem Web-Server
uebertragen werden muessen, einfach und auf Knopfdruck zu
konvertieren.
</p>
<p>
Beim Aufruf des Scripts wird ein Select-Menue erzeugt, das auf
den folgenden Eintraegen basiert. Jeder Block stellt ein
Eintrag im Menue dar.
Sollen mehrere Eintraege definiert werden, muessen die folgenden
Definitions-Bloecke 'entkommentiert' werden.
</p>
<p>
Beim Ausführen des Scripts wird der Inhalt der CSV direkt in die
Datenbank uebertragen.
</p>
<p>
Wichtig: Um die Daten erfolgreich in die Datenbank uebertragen zu
koennen, muss eine passende Tabelle bereits bestehen und die Datei
muss sich auf dem Server befinden. Die alten
Daten werden dabei komplett gelöscht und durch die neuen Daten
ersetzt.
</p>
<p>
Verschiedene Ausgangsdateien und Datenbanktabellen können Sie im
Quellcode des Scripts editieren.
</p>
</td>
</tr>
</table>
</body>
</html>
$db_Terminated[0] = "\t"; und $db_Terminated[0] = "Chr(9)";
legt mir nur die letzte Zeile in mysql an.
$db_Terminated[0] = (explode (Chr(9))); schmeisst alles durcheinander.
Hat da jemand eine Lösung?
Also ich würde gern eine normale Tab.- getrennte Datei einlesen ohne Sie vorher in externen Programmen zu bearbeiten.
Mit den ";" selektierten funzt es alles super.
Wollte auch eine Mail unter STADTAUS.com ( dem Macher des Scripts) senden... lach , kam ein MySQl Fehler.... lach
Ich danke Euch total!
Gruß Haxley
Kommentar