Brauche eine Idee!

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Brauche eine Idee!

    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.
    PHP-Code:
    $TST=mktime().",".substr(microtime(),2,6).",".$i
    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!

  • #2
    mit sprintf sollte es da eine Lösung geben.

    oms
    {brigens Ein Kezboard/Treiber ist v;llig [berfl[ssig!

    Kommentar


    • #3
      Hat sich erledigt.

      Geht total einfach, wenn man anstatt einer Zahl einen String nimmt.

      $x='0009';
      $x++;

      Dann ist $x='0010'

      Man sollte eben doch immer ein klein wenig länger probieren.
      Bin aber von Java und C++ her nicht gewöhnt, dass so 'abnormale' mathematische Operationen auf Strings angewendet werden können.

      Kommentar


      • #4
        der Dreizeiler ist nicht zu toppen...

        Das nenn ich Typumwandlung:
        http://www.php.net/manual/de/languag...e-juggling.php
        {brigens Ein Kezboard/Treiber ist v;llig [berfl[ssig!

        Kommentar

        Lädt...
        X