Einzelnen Beitrag anzeigen
  #1  
Alt 18.02.2009, 21:52:12
Nils79 Nils79 ist offline
Anfänger
 
Registriert seit: Feb 2009
Alter: 45
Beiträge: 2
CSV in eine MYSql Datebank laden durch laufen und modifizieren

Hallo zusammen,


ich habe ein dringendes Problem, welches ich eigentlich schon via Excel Macro gelöst hatte jedoch wegen der Begrenzug der Zellen gescheitert bin.

Ich habe lange gebraucht das Macro mit hilfe anderer zu schreiben und noch länger habe ich mich geärgert nachdem ich festgestellt habe das meine Einträge in Excel abgeschnitten werden.

Ich bin dann auf die idee gekommen die CSV in eine MYSql Tabelle zu laden um meine gewünschetn Operationen aus zu führen. Jedoch bin ich da hoffnungslos überfordert.


Zu den Aktionen die ich ausführen möchte:

Ich bekomme alle paar Tage eine CSV datei welche mit bis zu 20000 Einträgen gefüllt werden kann.

Der Aufbau:

Artikelnummer;Titel; einige andere Spalten; bild1;bis bild5; Beschreibung

Gewünschet Aktionen:

Ich möchte die Zeilen durchlaufen und mir die Felder der Spalte Beschreibung modifizieren in dem ich mir quasi um die Beschreibung ein Template bastel:

Dazu will ich Fixe Elemente (Header, P1-P5 welches aus Htmlteilen bestehen und angaben aus den anderen Feldern (Kusiv) wie folgt in die Beschreibungs felder (bzw. um die Bschreibung) kopieren:

Header
warenname
P1
bild1
P2
warenname
P3
artikelnummer
P4
Beschreibung
P5
bild2 <br> bild3 <br> bild4
Footer

Die Fixen Elemente mmüsste ich mir eventuell in eine Extra Spalte hinterlegen.

In VBA wurde die so gelöst:


Code:
Sub Tool()
Dim gefunden As Object
Dim i As Integer
For i = 2 To Sheets("Tool").UsedRange.Rows.Count
    'benötigte elemente suchen'
    Set artikelnummer = Sheets("Tool").Cells(i, 1)
    Set warenname = Sheets("Tool").Cells(i, 2)
    Set bild1 = Sheets("Tool").Cells(i, 9)
    Set bild2 = Sheets("Tool").Cells(i, 10)
    Set bild3 = Sheets("Tool").Cells(i, 11)
    Set bild4 = Sheets("Tool").Cells(i, 12)
    Set desc_de = Sheets("Tool").Cells(i, 19)

    'zusammenbauen'
    
    desc_de.Value = Sheets("Tool").Range("V1").Value & warenname.Value & Sheets("Tool").Range("V3").Value & bild1.Value & Sheets("Tool").Range("V5").Value & warenname.Value & Sheets("Tool").Range("V7").Value & artikelnummer.Value & Sheets("Tool").Range("V9").Value & desc_de.Value & Sheets("Tool").Range("V11").Value & bild2.Value & Sheets("Tool").Range("W12").Value & bild3.Value & Sheets("Tool").Range("W12").Value & bild4.Value & Sheets("Tool").Range("V13").Value
    
    Next i
End Sub


Das ganze würde ich nun gerne in MySQL portieren (wenn das überhaupt möglich ist)

Meine suche und ersten Gehversuch haben diese for Schleifen konstrukt aufgetrieben:

Code:
$db = mysql_query ('SELECT `warenname`, `Beschreibung` FROM `csv` ORDER BY `id` ASC');

//hier bin ich mir schon nicht sicher ob ich in der Bedingung alle Spalten namen  'Selecten' muss

for ($i = 1; $db2 = mysql_fetch_array ($db); $i++)
{
   

// Hier bräuchte ich dann meine modifizier aktionen aufgetrieben habe ich :
UPDATE tbl_name SET Beschreibung= neuer_wert1 WHERE id = i;

// wobei ich mir nicht sicher bin ob das der Richtige Befehl ist, überhaupt keinen Schimmer habe ich wie ich 'neuer_wert' zusammen bauen kann. 

');
}



Wie Ihr seht tappe ich hoffnungslos im Dunkeln. Über Anregungen tipps und Vorschläge wie und ob ich das Problem lösen kann, wäre ich sehr dankbar.


Gruß Nils
Mit Zitat antworten