Inhaltsverzeichnis
Einige Webprojekte erfordern die Verwaltung umfangreicher Datenlisten wie Produkt-, Verkaufs-, Benutzer- und Nachrichtenlisten.Viele Leute finden es einfacher, diese Daten offline in einer Tabelle zu haben.
Ziel dieses Tutorials ist es, den Import unabhängig vom Programm durchführen zu können, sei es Excel oder Libreoffice oder eine andere dem Benutzer zur Verfügung stehende Option.
Nachdem Sie eine MySQL-Datenbank erstellt haben, müssen Sie sie mit Informationen füllen. Die Datenbankdaten sind normalerweise in einer durch Kommas begrenzten Datei (CSV) enthalten und müssen in die MySQL-Datenbank importiert werden. Dies ist eine sehr einfache Aufgabe mit den integrierten PHP-Funktionen, die den Import aus einer CSV-Datei und den Export in eine MySQL-Datenbank erleichtern.
In diesem Fall haben wir eine Preisliste für Service und Computerteile.
[color = # 0000cd] TABELLE ERSTELLEN, WENN NICHT `preise` ([/color]
[color = # 0000cd] `id` int (10) NOT NULL AUTO_INCREMENT, [/color]
[color = # 0000cd] `concept` varchar (255) DEFAULT NULL, [/color]
[color = # 0000cd] `price` dezimal (10,2) DEFAULT NULL, [/color]
[color = # 0000cd] PRIMÄRSCHLÜSSEL (`id`) [/color]
[color = # 0000cd]) ENGINE = MyISAM DEFAULT CHARSET = utf8 AUTO_INCREMENT = 1; [/color]
Jetzt der PHP-Code, der die ganze Arbeit erledigt
[Farbe = #0000cd] <? // wir verbinden uns mit der Datenbank [/ color]
[color = # 0000cd] $ connect = mysql_connect ('localhost', 'user', 'password'); [/color]
[color = # 0000cd] if (! $ verbinden) {[/color]
[color = # 0000cd] die ('Kann keine Verbindung zu MySQL herstellen:'. mysql_error ()); [/color]
[Farbe = #0000cd]}[/Farbe]
[color = #0000cd] $connectdb = mysql_select_db ('Dienste', $connect);[/color]
[color = # 0000cd] // Wir laden die csv-Datei hoch, die aus dem Formular [/ color] stammt
[color = # 0000cd] move_uploaded_file ($ _ FILES ["file"] ["tmp_name"], $ upload_dir. "/". $ FILES ["file"] ["tmp_name"]); [/color]
[color = # 0000cd] $ cvs = $ upload_dir. "/". $ _FILES ["Datei"] ["Name"];[/Farbe]
[color = # 0000cd] // row zählt die Anzahl der Zeilen in der Datei beginnt bei 0 [/ color]
[Farbe = #0000cd] $zeile = 0;[/Farbe]
[color = # 0000cd] $ fp = fopen ($ cvs. "", "r"); [/color]
[color = # 0000cd] while (! feof ($ fp)) {// Ich lese die Datei Zeile für Zeile [/ color]
[Farbe = #0000cd] $ Zeile ++;[/Farbe]
[color = # 0000cd] // Ich überspringe die erste Zeile, da sie die Titel enthält und ich nicht daran interessiert bin, sie in die Datenbank einzufügen [/ color]
[Farbe = #0000cd] if ($ Zeile> 1) {[/Farbe]
[color = # 0000cd] // Die Zeile, die ich gelesen habe, trenne ich mit explodieren und zeige an, dass sie getrennt ist durch; [/ color]
[color = # 0000cd] $ data = explodieren (";", fgets ($ fp)); [/color]
[Farbe = #0000cd] $id = $daten [0];[/Farbe]
[Farbe = #0000cd] $ Konzept = $ Daten [1];[/Farbe]
[Farbe = #0000cd] $ Preis = $ Daten [2];[/Farbe]
[color = # 0000cd] $ query = "INSERT INTO price (id, concept, price) VALUES ($ data [0], '$ data [1]', '$ data [2]')"; [/ color]
[color = # 0000cd] mysql_query ($ query, $ connect); [/color]
[color = # 0000cd] // Ende der while-Schleife [/ color]
[Farbe = #0000cd]}[/Farbe]
[Farbe = #0000cd]}[/Farbe]
[color = # 0000cd] // Datei schließen [/ color]
[color = #0000cd] fclose ($csv);[/color]
[color = # 0000cd] echo "Import fertig !!!";[/color]
[color = #0000cd] mysql_close ($connect);[/color]
[Farbe = #0000cd]?>[/Farbe]
Sie können dieses Skript auch verwenden und es flexibler gestalten, sodass der Benutzer die Datei in einem HTML-Formular mit registrieren kann
[Farbe = #0000cd][/Farbe]
[Farbe = #0000cd][/Farbe]
[Farbe = #0000cd][/Farbe]
und somit in der Lage sein, CSV-Dateien hochzuladen und Daten aus dieser CSV-Datei in eine beliebige MySQL-Datenbank oder sogar in mehrere aus einer einzigen Datei zu importieren. Es gibt viele Anpassungen, die mit diesem Skript vorgenommen und in der gewünschten Weise verwendet werden können.