Script nur alle 30 Minuten durchlaufen lassen..

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

  • Script nur alle 30 Minuten durchlaufen lassen..

    Hallöchen...


    Und wieder einmal steh' ich total auf dem Schlauch und finde den Fehler einfach nicht.

    Es dreht sich um eine Statistik/Rangliste die für den Besucher grafisch etwas aufgepeppt wurde. Das heisst, wenn die Platzierung verbessert wurde ein Grüner Pfeil nach oben, analog dazu ein Roter nach unter wenn sie sich verschlechtert hat, etc.
    Damit zum einen dieser Effekt nicht sinnlos ist durch ein Update der Rangliste bei jedem Seitenaufruf und zum anderen auch die Datenbank etwas entlastet wird, dachte ich mir, dass ich die Rangliste nur alle 30 Minuten aktualisieren lasse ansonsten wird die zuletzt gespeicherte ausgegeben.

    Dazu bin ich wie folgt vorgegangen:

    Als erstes habe ich die aktuelle Zeit auslesen lassen, im Anschluss die Zeit des letzten Updates und darauf hin dann berechnet wann das nächste Upate frühestens möglich ist.
    PHP-Code:
    $sql "SELECT time FROM ranking_time";
    $result mysql_query($sql);
    while (
    $row mysql_fetch_array($result)) {
    $lasttime $row["time"];
    }
    $akttime time();  //Aktuelle Zeit
    $erneuern 1800;  // Zeitspanne zum updaten (30 Minuten)
    $timeset $lasttime $erneuern;  // Errechnet letztes Update plus Zeitspanne 
    Dann habe ich eine normale Schleife mit folgender Anweisung gezogen
    PHP-Code:
    if ($lasttime $timeset) { 
    Wenn die also false zurückgibt soll ein Update stattfinden, wenn sie true zurückgibt soll das zuletzt gespeicherte ausgegeben werden.

    Zusätzlich lasse ich -falls ein Update stattgefindet- die aktuelle Zeit speichern
    PHP-Code:
    $updatetime time();
    mysql_query("UPDATE ranking_time SET time = '$updatetime'"); 

    Ich hab bereits jede Zeitform ausgegeben und sie stimmen auch nur ausgeführt wird es leider nicht. CronJobs habe ich leider keine zur Verfügung sonst würde ich auf diese ausweichen.


    Besten Dank im Voraus.


    medium22

    Edit: Hab grade eine Lösung gefunden doch leider kann ich den Beiträg nicht löschen - verzeiht.
    Zuletzt geändert von medium22; 19.01.2007, 02:22.

  • #2
    Kannst du die Lösung bitte posten? Fall ein anderer noch einmal das Gleiche Problem haben sollte

    Danke.

    mfg nOe
    "I am what I am and I do what I can..."
    Meine HP -- Mein GPG-Key
    Meine Projekte: WebStorage 2.0 -- easyAJAX-Chat 2.2.0 (beta)

    Kommentar


    • #3
      Re: Script nur alle 30 Minuten durchlaufen lassen..

      Da stimmt aber einiges nicht...

      Original geschrieben von medium22
      ...
      Dann habe ich eine normale Schleife mit folgender Anweisung gezogen
      PHP-Code:
      if ($lasttime $timeset) { 
      ...
      if ist keine Schleife sondern eine Auswahlstruktur. Die If-Anweisung wiederholt ja nichts sondern führt wenn eine bestimmte Bedingung erfüllt ist den enthaltenen Quelltext aus oder eben nicht.

      Wenn die also false zurückgibt
      Eine Schleife (obwohl wir hier nichtmal eine haben!) gibt niemals false zurück. Eine Schleife ist keine Funktion, kann also gar nichts zurückgeben. Lediglich die Bedingung kann unwahr (false) ergeben, was du vermutlich meintest.

      CronJobs habe ich leider keine zur Verfügung sonst würde ich auf diese ausweichen.
      Gibts ganz doll kostenlos auf CronJob.de
      Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

      Kommentar


      • #4
        Hallöchen...

        Gibts ganz doll kostenlos auf CronJob.de
        Genau das ist meine Lösung. <g>

        @ArSeN

        Richtig, stimme ich Dir zu, habe mich da wohl etwas unglücklich in der Wortwahl vergriffen. Meinte damit eigentlich nur wenn sie (die if-Anweisung) erfüllt wird, etc.. Verzeih.



        medium22

        Kommentar

        Lädt...
        X