Folgendes Problem:
In eine Datei habe ich nacheinander SQL-Queries geschrieben. Dabei gehören immer mehrere Queries zu einer Operation. Um auch sicher zu gehen, dass sie später in der richtigen Reihenfolge ausgeführt werden habe ich folgendes gemacht.
Um die zusammengehörenden Queries eindeutig zu identifizieren habe ich einen Timestamp + Mikrosekunden geschaffen, und an diesen hänge ich noch die Nummerierung der Operation dran.
Die Datei sieht nacher etwa so aus:
$TST="127808365,435674,0";$query="...";
$TST="127808365,435674,1";$query="...";
$TST="127808365,435674,2";$query="...";
$TST="127808365,435674,3";$query="...";
$TST="127809435,234156,0",$query="...";
$TST="127809435,234156,1",$query="...";
.
.
.
Dann wird mit dem Programm 'sort' auf der Konsole die Datei sortiert, weil die Datei nicht unbedingt so sortiert sein muss wie oben.
Das Problem dabei ist, dass sobald eine Operation mehr als 10 Queries beinhaltet (was durchaus vorkommt, sogar deutlich mehr) passiert folgendes:
$TST="127808365,435674,9";$query="...";
$TST="127808365,435674,10";$query="...";
Und dann wird beim Ausführen von 'sort' die 10 vor der 9 einsortiert. Verhindern könnte ich es durch:
$TST="127808365,435674,00009";$query="...";
Ich hoffe das war jetzt verständlich erklärt.
Wie kann ich jetzt am geschicktesten machen, dass es immer gleich viele Stellen hinter dem Komma sind und der Rest vor der Zahl mit Nullen aufgeführt wird?
Gibt es eine Funktion, die einem die Anzahl der Stellen zurückliefert?
Vielen Dank für die Mühe!
In eine Datei habe ich nacheinander SQL-Queries geschrieben. Dabei gehören immer mehrere Queries zu einer Operation. Um auch sicher zu gehen, dass sie später in der richtigen Reihenfolge ausgeführt werden habe ich folgendes gemacht.
Um die zusammengehörenden Queries eindeutig zu identifizieren habe ich einen Timestamp + Mikrosekunden geschaffen, und an diesen hänge ich noch die Nummerierung der Operation dran.
PHP-Code:
$TST=mktime().",".substr(microtime(),2,6).",".$i;
$TST="127808365,435674,0";$query="...";
$TST="127808365,435674,1";$query="...";
$TST="127808365,435674,2";$query="...";
$TST="127808365,435674,3";$query="...";
$TST="127809435,234156,0",$query="...";
$TST="127809435,234156,1",$query="...";
.
.
.
Dann wird mit dem Programm 'sort' auf der Konsole die Datei sortiert, weil die Datei nicht unbedingt so sortiert sein muss wie oben.
Das Problem dabei ist, dass sobald eine Operation mehr als 10 Queries beinhaltet (was durchaus vorkommt, sogar deutlich mehr) passiert folgendes:
$TST="127808365,435674,9";$query="...";
$TST="127808365,435674,10";$query="...";
Und dann wird beim Ausführen von 'sort' die 10 vor der 9 einsortiert. Verhindern könnte ich es durch:
$TST="127808365,435674,00009";$query="...";
Ich hoffe das war jetzt verständlich erklärt.
Wie kann ich jetzt am geschicktesten machen, dass es immer gleich viele Stellen hinter dem Komma sind und der Rest vor der Zahl mit Nullen aufgeführt wird?
Gibt es eine Funktion, die einem die Anzahl der Stellen zurückliefert?
Vielen Dank für die Mühe!
Kommentar