![]() |
|< 1 2 >| | ![]() |
18 Einträge, 2 Seiten |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
### Zuerst wurden neue Daten gefunden, geladen und lokal gespeichert. Dies klappt (sehr schnell)
sub eintragen{ ### Wird bei jeder aktualisierten Datei aufgerufen...
$file = "produktdaten/$PartnerID.dat";
print "FILE: $PartnerID<BR>";
$dbh->do (qq~DELETE FROM `Produktdaten` WHERE `PartnerID` = '$PartnerID'~); ### Alte Einträge dieses Partners löschen
my $sql = qq{insert into Produktdaten(PartnerID, Bezeichnung,Kurzbeschreibung,Beschreibung,Preis,alterPreis,Waehrung,Keywords,Bild_kl,Bild_mittel,Bild_gross,Deeplink,gueltig_von,gueltig_bis,status,lieferzeit,Bedingungen,Hersteller,Brand,Partner_Kategorie, aktualisiert, laufendeNummer) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)};
my $stheintragen = $dbh->prepare( $sql );
open(FILE, "$file") or die "Could not open $file: $!\n";
while (defined (my $ZEILE = <FILE>)) { ### Zeilenweise neue Daten aus der CSV einlesen
......
Nun werden die Einzelnen Zeilen bearbeitet / angepasst. Z.B. Datum in Sekunden wandeln, Komma in Punkt wandeln, etc...
......
(undef, undef, $MerchantProductNumber, $Bezeichnung, $Preis, $alterPreis, $Waehrung, $update, $gueltig_von, $gueltig_bis, $kurzbeschreibung, $Beschreibung, $status, $Partner_Kategorie, undef, $Bild_kl, $Bild_mittel, $Bild_gross, $Hersteller, $Deeplink, undef, undef, $lieferzeit, $Bedingungen, $EAN) = split(/<SPLIT>/, $ZEILE);
if ($update =~ " "){ ### Zur Sicherheit. Einige Datumsangaben haben ein anderes Format
($datum, undef) = split(/ /, $update);
&sekunden;
$update = $sekunden;
}
if ($gueltig_von =~ " "){ ### Zur Sicherheit. Einige Datumsangaben haben ein anderes Format
($datum, undef) = split(/ /, $gueltig_von);
&sekunden;
$gueltig_von = $sekunden;
}
if ($gueltig_bis =~ " "){ ### Zur Sicherheit. Einige Datumsangaben haben ein anderes Format
($datum, undef) = split(/ /, $gueltig_bis);
&sekunden;
$gueltig_bis = $sekunden;
}
$laufendeNummer++;
$stheintragen->execute($PartnerID, $Bezeichnung,$kurzbeschreibung,$Beschreibung,$Preis,$alterPreis,$Waehrung,$Keywords,$Bild_kl,$Bild_mittel,$Bild_gross,$Deeplink,$gueltig_von,$gueltig_bis,$status,$lieferzeit,$Bedingungen,$Hersteller,$Brand, $Partner_Kategorie, $update, $ID)|| die "Database connection not made: $DBI::errstr";
} ## Ende der ZEILE
$stheintragen->finish();
} ## ENDE sub -> Ende der neuen Datei
QuoteIch verstehe aber nicht, warum weiter Daten in die DB geschrieben werden, wenn ich das Script gekillt habe???!?? Warum macht mysql dass dann noch, wenn es die Befehle doch von dem (schon gekillten) Sktipt bekommt?
QuoteWie meinst Du das, "die Zeilenlänge auf 80 begrenzen"??? 80 Zeilen oder 80 Zeichen je Zeile?
QuoteUnd was mache ich mit den Restlichen Daten??? Die brauche ich ja auch...
QuoteWenn ich die Indizes abschalte, müssen diese doch nach den neuen Daten wieder neu erstellt werden? Dauert das dann nicht genau solange?
1
2
if(defined $var and $var =~ /dies ist ein langer RegEx/ and $var =~ /noch ein laengerer RegEx mit vielen Worten/ and $var =~ /test/){
}
1
2
3
4
5
if(defined $var
and $var =~ /dies ist ein langer RegEx/
and $var =~ /noch ein laengerer RegEx mit vielen Worten/
and $var =~ /test/){
}
![]() |
|< 1 2 >| | ![]() |
18 Einträge, 2 Seiten |