php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 22-04-2008, 07:15
Speedyspin
 Registrierter Benutzer
Links : Onlinestatus : Speedyspin ist offline
Registriert seit: Dec 2003
Beiträge: 20
Speedyspin ist zur Zeit noch ein unbeschriebenes Blatt
Standard CSV Import MySQL

Hi!

Hab folgendes Problem:
Ich hab eine CSV-Datei, die sich von der Struktur her ständig ändert...
Nun müssen natürlich auch die Spalten angepasst werden, d.h. Reihenfolge der Spalten.

Mein Lösungsansatz:
Ich lese die erste Zeile aus (mittels fgetcsv), in der ja die Überschriften stehen, lösche die alte MySQL Tabelle, leg eine neue an und les die Werte ab Zeile 2 mittels "LOAD DATA INFILE" aus.
Da es sich um eine Kontaktliste handelt, treten Überschriften häufig auf. Diese könnten ja in einem Array gespeichert werden und je nach Überschrift als INT oder VARCHAR angelegt werden.

Denk ich hier zu arg um die Ecke und geht das einfacher?
MFG
Speedy
Mit Zitat antworten
  #2 (permalink)  
Alt 22-04-2008, 08:49
XGremliN
 PHP Senior
Links : Onlinestatus : XGremliN ist offline
Registriert seit: Sep 2003
Ort: Karl-Marx-Stadt
Beiträge: 1.900
XGremliN ist zur Zeit noch ein unbeschriebenes Blatt
Standard

warum willst du denn deine db-struktur ständig anpassen? lies einfach die csv-daten in einen array und speichere den in die db.

warum ändert sich eigentlich laufend deine csv-struktur?
__________________
it's not a bug,
it's a feature!
Mit Zitat antworten
  #3 (permalink)  
Alt 22-04-2008, 09:01
RanzigeMilch
 Registrierter Benutzer
Links : Onlinestatus : RanzigeMilch ist offline
Registriert seit: May 2005
Ort: Darmstadt
Beiträge: 757
RanzigeMilch ist zur Zeit noch ein unbeschriebenes Blatt
RanzigeMilch eine Nachricht über ICQ schicken
Standard

Zitat:
Original geschrieben von XGremliN
warum ändert sich eigentlich laufend deine csv-struktur?
da würde ich auch eher einen ansatz suchen..
__________________
Die Milch bleibt ranzig!
Mit Zitat antworten
  #4 (permalink)  
Alt 22-04-2008, 12:13
Speedyspin
 Registrierter Benutzer
Links : Onlinestatus : Speedyspin ist offline
Registriert seit: Dec 2003
Beiträge: 20
Speedyspin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Die Struktur ändert sich, da mal ne Spalte weggelassen wird oder hinzugefügt wird. Kann auch mal passieren, dass Spalten vertauscht werden.
Leider habe ich keinen Einfluss darauf. Wie siehts denn jetzt mit dem Lösungsansatz aus. Geht der in die richtige Richtung?
Mit Zitat antworten
  #5 (permalink)  
Alt 22-04-2008, 13:00
XGremliN
 PHP Senior
Links : Onlinestatus : XGremliN ist offline
Registriert seit: Sep 2003
Ort: Karl-Marx-Stadt
Beiträge: 1.900
XGremliN ist zur Zeit noch ein unbeschriebenes Blatt
Standard

dein ansatz ist so scho ok. da sich deine struktur aber ständig ändert:
Zitat:
Original geschrieben von XGremliN
lies einfach die csv-daten in einen array und speichere den in die db.
__________________
it's not a bug,
it's a feature!
Mit Zitat antworten
  #6 (permalink)  
Alt 22-04-2008, 13:06
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Diesen Lösungsansatz würde ich keinesfalls als solchen bezeichnen. Schließlich wird die Tabelle doch von mindestens einer Applikation benutzt (wenn es nur ein Backup der Daten wäre, würdest du gleich die CSV-Datei speichern und wärst fertig).
Diese Applikation geht davon aus, dass die Tabelle ein bestimmtes Format hat. Wenn das nach einem Import nicht mehr gegeben ist, fliegt dir die Applikation um die Ohren.

Da es sich um eine Kontaktverwaltung handelt, würde ich alles* was jemals als CSV-Spalte auftreten kann, von vornherein schon als Tabellenspalte anlegen.

Wenn dann in einem CSV mal Spalten fehlen, wird eben der default value in die DB geschrieben. Die Applikation läuft sauber weiter, denn die Tabellenstruktur hat sich nicht verändert sondern nur der Inhalt.

Wenn in Zukunft auch neue, bisher unbekannte Spalten im CSV auftauchen, werden die entweder nicht mit importiert oder serialisiert (mit allen Nebenwirkungen wie fehlender Selektionsmöglichkeit) in eine Spalte "Sonstiges" geschrieben.


*) Die Quelle der CSV-Daten ist sicher auch eine Applikation. Die arbeitet wahrscheinlich auch mit einer DB. Frag die Quelle nach ihrer Tabellenstruktur und den Möglichkeiten beim Export. Dann kannst du eine vollständige Liste aller Permutationen von CSV-Spalten aufstellen und in deiner Importroutine entsprechend behandeln.
Mit Zitat antworten
  #7 (permalink)  
Alt 23-04-2008, 02:42
Speedyspin
 Registrierter Benutzer
Links : Onlinestatus : Speedyspin ist offline
Registriert seit: Dec 2003
Beiträge: 20
Speedyspin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

erstmal vielen Dank für die Antworten!

1. Die Quelle besteht aus einer Excel-Datei, die manuell ins CSV-Format umgewandelt wird.

2. Gibt es hierfür (Excel-Sheet) eine einfachere Möglichkeit des Imports

MFG
Speedy
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:51 Uhr.