PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   MySQLi/PDO/(MySQL) (http://www.selfphp.de/forum/forumdisplay.php?f=22)
-   -   CSV in eine MYSql Datebank laden durch laufen und modifizieren (http://www.selfphp.de/forum/showthread.php?t=20963)

Nils79 18.02.2009 21:52:12

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

cortex 18.02.2009 22:10:04

AW: CSV in eine MYSql Datebank laden durch laufen und modifizieren
 
willkommen im forum,

Zitat:

Zitat von Nils79 (Beitrag 124929)
ich habe ein dringendes Problem

vorsicht... dringende probs werden in den meisten foren nicht mal mit der kneifzange angefasst .-

schau dir mal diese beiden funktionen an; könnte was für dich dabei sein:

http://de.php.net/manual/de/function.fgetcsv.php
http://de.php.net/manual/de/function.str-getcsv.php

cx

Nils79 19.02.2009 11:22:08

AW: CSV in eine MYSql Datebank laden durch laufen und modifizieren
 
Grüss dich,

ok danke für den Hinweis.

So wie es auschaut kann ich das ganze wohl nicht 'nur' über die SQL schiene machen sondern muss da noch was in Php zu basteln?


Gruß Nils

cortex 19.02.2009 14:43:08

AW: CSV in eine MYSql Datebank laden durch laufen und modifizieren
 
Zitat:

Zitat von Nils79 (Beitrag 124952)
[...] kann ich das ganze wohl nicht 'nur' über die SQL schiene machen

sicher - sql ist 'nur' eine datenbank-sprache .-

cx


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:44:37 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.