CSV Datei-Upload per PHP

zamo76

Erfahrenes Mitglied
Hi Leute,

ist es eigentlich möglich, das ein externer User seine eigene CSV-Datei ( nach Vorlage ) hochladen kann, diese überprüft und nur dann hochgeladen wird, wenn die Reihenfolge der Tabellen stimmt?

Kenne das ja von meinem Formular, dort wird ebenso überprüft.

Vielleicht kennt ja jemand so ein Script oder zumindest den Ansatz, damit ich mich reinfuchsen kann.

Danke im Voraus

zamo76
 
Willst du nur die erste Zeile parsen?

Die Explode-Funktion sollte dir hier sicher weiterhelfen, damit kannst du die Daten die in der CSV stehen anhand eines Zeichens splitten und dann ggf gucken ob die entstehenden Daten mit den von dir erwarteten überein stimmen.

Allerdings könntest du auch die erste Zeilen komplett als String kontrollieren.

Ich hoffe ich habe dich richtig verstanden.

Wenn du z.B. in der ersten Zeile "Name;Geschlecht;Geburtsort" erwartest, müsstest du es ja nichtmal exploden sondern könntest einfach gucken ob die Zeile dem entspricht.
( if($zeile == 'Name;Geschlecht;Geburtsort'){....} )

Wie gesagt, bin mir nicht sicher ob ich dich richtig verstanden habe! :p :-)
 
Also die Zeilen sehen schon so aus wie du beschrieben hast!

Dann werde ich es mal mit der if-Anweisung probieren und ein wenig tüfteln..

Danke dafür!

zamo76
 
so, folgendes:

Das habe ich mir mal zusammengefummelt:

PHP:
<?php
          // Definition der Datenbanken und csv-Dateien
          $db_Hostname[0]   = "localhost";         // Datenbank-Host (muss nicht zwingend immer localhost sein)
          $db_UserName[0]   = "xxx";                  // Benutzername f&uuml;r diese Datenbank
          $db_Password[0]   = "xxx";                  // Zugehoeriges Passwort
          $db_Database[0]   = "xxx";                  // Datenbank, auf die zugegriffen werden soll
          $db_Table[0]      = "tabelle";                  // Table, in den die CSV-Datei &uuml;bertragen werden soll
          $db_File[0] =?;       // Verzeichnispfad zur CSV-Datei
          $db_Terminated[0] = ";";      // Trennzeichen, das in der Textdatei verwendet wird
          
          // Connect zur Datenbank
          
            include ("config.php");
           
           $sql = 'LOAD DATA LOCAL INFILE \'/$db_File[0]\' INTO TABLE `tabelle`(bla,bla,etc.....); FIELDS TERMINATED BY \';\' ENCLOSED BY \'"\' ESCAPED BY \'\\\\\' LINES TERMINATED BY \'\\r\\n\'';

            // MySQL-Statements ausf&uuml;hren
            if (mysql_query ($sql) && mysql_query ($sql)) {
                $message = "&Uuml;bertragung erfolgreich";
                }
            else {
                $message = "&Uuml;bertragung fehlgeschlagen. ". mysql_error ();
                }

?>

Also ich weiss 1. nicht ob das so überhaupt richtig ist? Und 2. wie ich $db_File[0] übergeben soll!

Bin für jeden Tipp dankbar!

zamo76
 
Zurück