Update einer Tabelle aus csv-Datei ohne phpmyadmin

UGohe

Grünschnabel
Hallo,

ich habe 2 Fragen als mysql-DAU Und die Lösung soll OHNE phpmyadmin funktionieren.

1. Frage:
Wie verknüpfe ich eine csv-Datei [artnr | preis] auf (http://www.meinedomain.de /import/test.csv) mit der Tabelle produkte durch eine Beziehung durch die Artikelnummer ?

2.Frage
Wenn ich diese Datei mit der DB-Tabelle verknüpft bekommen habe, wie muss die sql-syntax aussehen, damit mir dann auch die Preise upgedatet werden ?

Vielen Dank für Eure Hilfe

Uwe Gohe
 
1) Warum ein CSV-File?
2) Warum nicht importieren?
3) Relationen kannst in MySQL ohnehin nicht abbilden, musst ausprogrammieren.

Wenns also unbedingt ein CSV sein muss, auslesen (in ein Array oder etwas ähnlichem), dann die Daten aus der DB und selbst verknüpfen ...

Gibt dann natürlich auch noch Möglichkeiten, das ganze über Objekte zu lösen, wennst brav unter PHP 5 was machen willst :)

mfG,
Nitro
 
Hallo,

Vielen Dank für die Antwort

Zu 1) Ich benutze ein csv-file, weil es mir so regelmäßig von meinen Grosshändlern vorliegt.

Zu 2) Import geht nicht, da es sich um einen OnlineShop handelt. Würde ich die Datei neu importieren, würden evtl. Käufe überschrieben werden.

Zu 3) Und genau da liegt mein Problem, ich komme nicht darauf *wie* ich die Datei verknüpfe und dann nur die Spalte Preise mit der Verknüpfung über die Artikelnummer updaten kann.

Vielleicht haben Sie ja darauf eine Antwort

Uwe Gohe
 
UGohe hat gesagt.:
Zu 2) Import geht nicht, da es sich um einen OnlineShop handelt. Würde ich die Datei neu importieren, würden evtl. Käufe überschrieben werden.
Dann würde ich mal sagen, klassischer Fall von unpraktischem Datenbank Layout? Hättest du eine Tabelle "Käufe" und eine Tabelle "Artikel" die über eine eindeutige ID bzw Art-Nummer verknüpft wären, dann würde das Problem nicht entstehen.

Zu 3) Und genau da liegt mein Problem, ich komme nicht darauf *wie* ich die Datei verknüpfe und dann nur die Spalte Preise mit der Verknüpfung über die Artikelnummer updaten kann.
Wie schon erwähnt, musst du diese "Verknüpfung" ausprogrammieren. Gehen wir mal von folgender Situation aus. In deiner CSV Datei ist pro Zeile ein Artikel. In der Datei steht dann Art-Nummer|Preis.
Dann musst du mit einem PHP Code arbeiten, der sinngemäß ähnlich dem folgenden ist.
PHP:
$csvFile = "mycsv.csv";
$csvData = file($csvFile);
foreach($csvData as $v){
  $csvRowData = explode("|",$v);
  $query = "UPDATE `tabelle` SET `preis`='".$csvRowData[1]."' WHERE `artnummer` = '".$csvRowData[0]."'";
  mysql_query($query);
}

Vielleicht haben Sie ja darauf eine Antwort
Ich denke, mit einem legeren "du" fährt man auf tutorials.de besser ;)
 

Neue Beiträge

Zurück