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 Bewertung: Bewertung: 2 Stimmen, 5,00 durchschnittlich.
  #1 (permalink)  
Alt 04-08-2009, 10:38
ways
 Member
Links : Onlinestatus : ways ist offline
Registriert seit: Nov 2003
Ort: Berlin-West :-)
Beiträge: 386
ways ist zur Zeit noch ein unbeschriebenes Blatt
Standard verflixte CSV

erst einmal...Guten Morgen !

da will ich mich grad ganz frisch dransetzen für einen freund nen script zu erstellen, dass ihm seinen daten aus einer CSV Datei in MySQL überträgt, was ich ja nun bereits schon enige mal realisiert habe, aber dieser fall ist ein wenig anders... zumindest so, dass ich nicht weiß, wie ich das umsetzen kann und hoffe dass mir jemand von euch den richtigen tip geben kann !?

Diese CSV Datei beginnt wie die meisten...in der ersten Zeile stehen die Feldnamen und ab da an die Daten.. wie gewöhnlich...
dann jedoch, nach einer nicht festen anzahl von Zeilen, wiederholt sich die Feldnamen-zeile und genau das ist mein Problem, auf welchem Weg kann ich solch eine Feldnamen-Zeile ermitteln und überspringen bzw auslassen?

für tips oder kniffe wäre ich dankbar!
gruss
ways
__________________
Coder never die, they just GOSUB without RETURN

Mein System
Mit Zitat antworten
  #2 (permalink)  
Alt 04-08-2009, 10:42
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Jemand mit halbwegs PHP Kenntnissen, würde da evtl ein Script drüber scheuchen.
__________________
Wir werden alle sterben
Mit Zitat antworten
  #3 (permalink)  
Alt 04-08-2009, 11:00
hhcm
 PHP Senior
Links : Onlinestatus : hhcm ist offline
Registriert seit: Jun 2005
Ort: Viersen, NRW
Beiträge: 1.833
hhcm ist zur Zeit noch ein unbeschriebenes Blatt
hhcm eine Nachricht über ICQ schicken hhcm eine Nachricht über Skype™ schicken
Standard

Mittels file_get_contents einlesen.. array_unique drüber bügeln.. file_put_contents zurück. Fertig.
__________________
gruss Chris

Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."
Mit Zitat antworten
  #4 (permalink)  
Alt 04-08-2009, 11:46
ways
 Member
Links : Onlinestatus : ways ist offline
Registriert seit: Nov 2003
Ort: Berlin-West :-)
Beiträge: 386
ways ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von combie Beitrag anzeigen
Jemand mit halbwegs PHP Kenntnissen, würde da evtl ein Script drüber scheuchen.
Tja, wären die Feldnamen immer gleich oder gleicher anzahl hätte ich das sicher auch mit meinen bisherigen kenntnissen geschafft.

Vielen dank für die freundliche Unterstützung. Manchmal ist weniger mehr !
__________________
Coder never die, they just GOSUB without RETURN

Mein System
Mit Zitat antworten
  #5 (permalink)  
Alt 04-08-2009, 11:55
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Zitat:
Tja, wären die Feldnamen immer gleich oder gleicher anzahl hätte ich das sicher auch mit meinen bisherigen kenntnissen geschafft.
1. Woher soll ich die Struktur deiner Daten kennen?
2. Unterschiedliche Feldnamen in einer CSV Datei? Das geht nicht.
__________________
Wir werden alle sterben
Mit Zitat antworten
  #6 (permalink)  
Alt 04-08-2009, 12:17
ways
 Member
Links : Onlinestatus : ways ist offline
Registriert seit: Nov 2003
Ort: Berlin-West :-)
Beiträge: 386
ways ist zur Zeit noch ein unbeschriebenes Blatt
Standard

1. Das stimmt, ich kann die leider auch nicht darstellen ohne von euch erschlagen zu werden, der grund dafür ist die Menge... nicht die Daten selbst.


2. Ein wenig rätselhaft von mir formuliert, das kann gut sein...

es ist so: diese CSV Datei enthält max 260 feldnamen.. diese Feldnamen haben auch eine feste Bezeichnung., jedoch werden immer nur die feldnamen in der CSV angelegt, die auch Daten enthalten. Die Anzahl der Feldnamen kann also variieren. Die DB-Tabelle hat natürlich alle 260 Feldnamen drin, nun muss ich es schaffen, anhand der CSV-Datei die aktuell verwendeten Feldnamen zu ermitteln und die werte darin in die Datenbank zu schreiben. Für mich ein wenig kniffelig...aber interessant.

wer interesse hat, dem schick ich solch eine massive CSV auch gern per email zu.
__________________
Coder never die, they just GOSUB without RETURN

Mein System
Mit Zitat antworten
  #7 (permalink)  
Alt 04-08-2009, 14:28
piratos
 Guest
piratos
Beiträge: n/a
Standard

Das ist also das mir bekannte Problem das in einer CSV Datei praktisch mehrere enthalten sind, in denen die Felder und Feldanzahl wechseln.

Nur lösbar, wenn die Feldbezeichnungen irgendwelche erkennbaren Unterscheidungsmerkmale zu den Daten haben.

Die Anzahl der Felder könnte man zur Detektion nehmen, wenn nicht zufällig eine Folge käme, die gleich der Anzahl vorherigen Folge entsprechen würde.

Also bleibt die Frage zu klären ob es einen oder sogar mehrere Unterscheidungsmöglichkeiten gibt oder nicht.
Wenn ja kann man darauf ansetzen.
Mit Zitat antworten
  #8 (permalink)  
Alt 04-08-2009, 18:23
piratos
 Guest
piratos
Beiträge: n/a
Standard

Habe da gerade mal einen alten Fall aus der Kiste geholt, da war es so ähnlich (typisch für den Export von Daten mancher Firmen für Händler).

Da hatte man aber zur Differenzierung 2 leere Zeilenvorschübe gemacht.
Mit Zitat antworten
  #9 (permalink)  
Alt 05-08-2009, 00:01
ways
 Member
Links : Onlinestatus : ways ist offline
Registriert seit: Nov 2003
Ort: Berlin-West :-)
Beiträge: 386
ways ist zur Zeit noch ein unbeschriebenes Blatt
Standard

also die Anzahl der Feldnamen bleibt solange gleich, bis ich zusätzliche Feldnamen anfordere ( messewerte ), das hab ich grad klären können..., ansonsten hab ich gar keinen einfluss auf das generieren der CSV. Das wiederholen der Feldnamen innerhalb der CSV bleibt einem Muster treu... also das wechselt nicht, demnach kann ich wohl alle Feldnamen als ganzen String verwenden um diesen dann aus der CSV zu löschen...bzw zu überspringen.

ich muss da jedenfalls ne kluge lösung bringen, da die CSV ca 10MB hat...
ungefähr ( 1350 zeilen a 260 Spalten, davon sind 255 Spalten reine INTs)
das einlesen passiert auch noch alle 6 std...

hier wäre ein Hinweis der MySQL Profis gewünscht, bis zur welchen größe die Geschwindigkeit nicht leidet? Zum Abruf der daten wird eigentlich auch nur der aktuellste Datenpaket benötigt, max die letzen beiden. Also 2700 Zeilen a 260 Felder... die INTs haben eigentlich nicht mehr als 4 Zeichen (unsigned)

ich hab ja schon was ähnliches gemacht... aber da waren es nie soviele Daten....hab daher auch leider keine Erfahrung
__________________
Coder never die, they just GOSUB without RETURN

Mein System
Mit Zitat antworten
  #10 (permalink)  
Alt 05-08-2009, 00:14
piratos
 Guest
piratos
Beiträge: n/a
Standard

Code:
LOAD DATA LOCAL
        INFILE '/var/www/blaaa.csv'
        REPLACE
        INTO TABLE tabellenname
        FIELDS
                TERMINATED BY ';'
                OPTIONALLY ENCLOSED BY '"';
Damit kannst du auch einige zig tausend mehr ratz fatz einspielen.
Den SQL Code musst du natürlich deinen Gegebenheiten anpassen.

Geändert von piratos (05-08-2009 um 00:22 Uhr)
Mit Zitat antworten
  #11 (permalink)  
Alt 05-08-2009, 00:48
ways
 Member
Links : Onlinestatus : ways ist offline
Registriert seit: Nov 2003
Ort: Berlin-West :-)
Beiträge: 386
ways ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ich glaube mit dem LOAD DATA kenn ich mich zuwenig aus,
ich erhalte da zwar einträge, aber keinen der mir nen weg aufzeigt

ich probiers weiter
__________________
Coder never die, they just GOSUB without RETURN

Mein System
Mit Zitat antworten
  #12 (permalink)  
Alt 05-08-2009, 11:42
piratos
 Guest
piratos
Beiträge: n/a
Standard

Zitat:
Zitat von ways Beitrag anzeigen
aber keinen der mir nen weg aufzeigt
Da verstehe ich nicht was gemeint ist.
Wenn du Datensätze erhältst was entspricht dann nicht deinen Anforderungen ?

Die Methode ist eigentlich auch nicht anders als das zeilenweise auslesen einer Datei mittels fgetcsv .

Aber es umgeht Zeitprobleme, die man wahrscheinlich hätte wenn man es mit fgetcsv machen würde.
Mit Zitat antworten
  #13 (permalink)  
Alt 05-08-2009, 21:16
ways
 Member
Links : Onlinestatus : ways ist offline
Registriert seit: Nov 2003
Ort: Berlin-West :-)
Beiträge: 386
ways ist zur Zeit noch ein unbeschriebenes Blatt
Standard

also ich schaffe es schon die CSV 1 zu1 so in mysql einzufügen..
aber ich hab bei meinem provider keinen zugriff auf data verzeichnis meines mysqls

und wie ich die feldnameneintröge so filtere is mir auch noch nicht ganz klar
__________________
Coder never die, they just GOSUB without RETURN

Mein System
Mit Zitat antworten
Antwort

Lesezeichen


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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Verflixte Checkbox bleibt net gechecked bastian PHP Developer Forum 5 16-07-2004 10:30

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

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

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


 

Aktuelle PHP Scripte

HeidiSQL - kostenloses MySQL front-end Editor für Windows ansehen HeidiSQL - kostenloses MySQL front-end Editor für Windows

HeidiSQL - ist ein Windows-Editor für die bekannt open Source Datenbank mySQL

10.12.2018 Berni | Kategorie: MYSQL/ Management
piwik Open-Source Webanalyse-Software ansehen piwik Open-Source Webanalyse-Software

piwik ist eine gute Alternative zu Google Analytics. Viele Features und ein modernes Erscheinungsbild mit aussagefähigen Statistiken in Echtzeit

10.12.2018 phpler | Kategorie: PHP/ Besucherzaehler
jQuery Mobile ansehen jQuery Mobile

Touch-Optimized Web Framework für Smartphones & Tablets

09.12.2018 phpler | Kategorie: AJAX/ Framework
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:41 Uhr.