Blackwane: If Abfrage 24 Stunden ausführen.

Hallo zusammen,

ich habe vor 2 Monaten angefangen PHP zulernen.Ich beitreibe eine Battlefield 2 Homepage, das ist ein Online Shootergame.
Bei diesem Spiel kann man nach erreichen der Punkte aufsteigen (Man bekommt einen höheren Rang). Diese Statistiken werden bei mir in der Datenbank gespeichert, nur die Member die bei mir Angemeldet sind. In der Datenbank wird der Rang von jeden Spieler gespeichert und noch viele andere Statistiken.

Ich möchte jetzt gerne eine Anzeige basteln, die mir anzeigt wer einen Rang aufgestiegen ist. Jedoch soll das nur für 24 Stunden angezeigt werden. Die Ränge werden mit zahlen gespeichert 0-21.

Nur weiß ich nicht wie ich das ganze jetzt machen soll.
Wie soll ich das ganze jetzt Prüfen, ob der Rang oder die Zahl in der DB, sich um 1 erhöht hat?
In der Datenbank wird auch kein Datum oder Ähnliches gespeichert.
Die Statistik wird alle 30 Minuten Aktualisiert.

Ich hoffe ihr versteht was ich machen möchte und habt vieleicht ein paar Tipps für mich. Wie ihr das vieleicht machen würdet.

Vielen Dank

mfg Blackwane

  1. Hi,

    Ich möchte jetzt gerne eine Anzeige basteln, die mir anzeigt wer einen Rang aufgestiegen ist. Jedoch soll das nur für 24 Stunden angezeigt werden.

    24 Stunden von wann an?

    Oder meinst du, jeweils die „Aufstiege“, die in den letzten 24 Stunden, vom aktuellen Zeitpunkt aus betrachtet, stattgefunden haben? (Sich deutlich ausdrücken kann was feines sein - probier's doch mal damit.)

    Wie soll ich das ganze jetzt Prüfen, ob der Rang oder die Zahl in der DB, sich um 1 erhöht hat?
    In der Datenbank wird auch kein Datum oder Ähnliches gespeichert.

    Na dann sollte man das vielleicht machen - zu dem Zeitpunkt, zu dem etwas geändert wird.
    Dann kann man nämlich sehr bequem alle die Datensätze auslesen, die in einen bestimmten Zeitraum fallen. (Dafür sollte jedes DBMS geeignete Datentypen und Funktionen anbieten.)

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
    1. Hallo Chris,

      24 Stunden von wann an?

      Oder meinst du, jeweils die „Aufstiege“, die in den letzten 24 Stunden, vom aktuellen Zeitpunkt aus betrachtet, stattgefunden haben? (Sich deutlich ausdrücken kann was feines sein - probier's doch mal damit.)

      Richtig, ich möchte nach den der Member aufgestiegen ist. Den Rang für 24 Stunden anzeigen lassen.

      Wie soll ich das ganze jetzt Prüfen, ob der Rang oder die Zahl in der DB, sich um 1 erhöht hat?
      In der Datenbank wird auch kein Datum oder Ähnliches gespeichert.

      Na dann sollte man das vielleicht machen - zu dem Zeitpunkt, zu dem etwas geändert wird.
      Dann kann man nämlich sehr bequem alle die Datensätze auslesen, die in einen bestimmten Zeitraum fallen. (Dafür sollte jedes DBMS geeignete Datentypen und Funktionen anbieten.)

      Das habe ich mir gedacht, das ich das Datum-Zeit in der DB Speichern muss.
      Nur habe ich da Irgendwo ein Denkfehler.
      Ich weiß  nicht wie ich das Prüfen soll, ob sich der Rang jetzt um 1 erhöht hat oder nicht.

      Wenn ich das jetzt richtig sehe, bräuchte ich einmal den alten Rang(Bevor das Update gemacht wird) und einmal den neuen Rang(Nach dem Update)

      Dann könnte ich ja mit zb. einer If-Abfrage Prüfen, ob sich der Wert erhöht hat.
      Nur wie speichere ich den alten und den neuen wert?

      Vielen Dank

      mfg BLackwane

      1. Hi,

        Das habe ich mir gedacht, das ich das Datum-Zeit in der DB Speichern muss.
        Nur habe ich da Irgendwo ein Denkfehler.
        Ich weiß  nicht wie ich das Prüfen soll, ob sich der Rang jetzt um 1 erhöht hat oder nicht.

        Na das wird dein UPDATE-Statement doch wohl auch irgendwie ermitteln müssen?

        MfG ChrisB

        --
        “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
        1. Hi,

          Na das wird dein UPDATE-Statement doch wohl auch irgendwie ermitteln müssen?

          Ne, das Update überschreibt einfach die bestehenden Daten.

          mfg Blackwane

          1. Hi,

            Na das wird dein UPDATE-Statement doch wohl auch irgendwie ermitteln müssen?

            Ne, das Update überschreibt einfach die bestehenden Daten.

            Mit was?
            Und einfach wahllos alle?

            Muss man dir eigentlich jede relevante Information einzeln aus der Nase ziehen?

            MfG ChrisB

            --
            “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
            1. Hi,

              Mit was?
              Und einfach wahllos alle?

              Muss man dir eigentlich jede relevante Information einzeln aus der Nase ziehen.

              Mal schauen :D

              Hier mal ein Beispiel vom Update:

              in der update.php steht folgendes.

              include "src/functions.inc.php";  
                
              updatePlayerAtt();
              

              Das ist jetzt nur ein Teil Code

              Und die funktion hat folgendes:

              function updatePlayerAtt(){  
              include("conf/config.inc.php");  
              $SQLString = "SELECT *  FROM ".$db_prefix."playerAtt";  
              $db_result= mysql_db_query($db_name,$SQLString,$db_connect)or die("update: ".mysql_error());  
                
              while($row = mysql_fetch_assoc($db_result)){  
                
              $fg=conntactGamespy($row['pid']);  
                
              $result=gamespytoArray($fg[4]);  
                
              $SQLString="UPDATE ".$db_prefix."playerAtt SET  nick='$result[2]',  
                
                                                                              globalScore=$result[3],  
                
                                                                              globalWins=$result[5],  
                
                                                                              globalLoss=$result[6],  
                
                                                                              playedGames=$result[7],  
                
                                                                              playedTime=$result[10],  
                
              etc..  
                
               mysql_db_query($db_name,$SQLString,$db_connect)or die(mysql_error());  
                
              }  
                
               return true;  
                
              }  
              
              

              Hilft dir das weiter?

              mfg Blackwane

              1. Hi,

                Hilft dir das weiter?

                Damit wir *dir* weiterhelfen können, müsstest du erst mal die Rückfragen einigermaßen sinnvoll beantworten.

                Und es ist keine sinnvolle Antwort auf gezielte Rückfragen bzgl. bestimmter Details, wenn du einfach nur deinen Code hier rein klatschtst.

                Da du uns keinerlei Details über das Datenmodell mitgeteilt hast, kann ich dir dazu immer noch kaum mehr sagen.
                Noch nicht ein mal, *welche* Datensätze sich das UPDATE-Statement vornimmt, ist erkennbar (und das war eines der Dinge, nach denen ich gefragt hatte) - weil du dummerweise dort, wo vermutlich eine WHERE-Klausel folgt, das ganze mit „etc.” abgekürzt hast.

                MfG ChrisB

                --
                “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
                1. Hi,

                  Entschuldie bitte wenn ich die Fragen, nicht so richtig Beantworte, ich bin erst seid 2 Monaten an PHP Lernen.

                  Da du uns keinerlei Details über das Datenmodell mitgeteilt hast, kann ich dir dazu immer noch kaum mehr sagen.
                  Noch nicht ein mal, *welche* Datensätze sich das UPDATE-Statement vornimmt, ist erkennbar (und das war eines der Dinge, nach denen ich gefragt hatte) - weil du dummerweise dort, wo vermutlich eine WHERE-Klausel folgt, das ganze mit „etc.” abgekürzt hast.

                  Die Where Klause kommt erst Später.

                  Die update.php sieht so aus:

                  update.php

                  Die Datei "functions.inc.php" die Includet wird sieht so aus:

                  functions.inc.php

                  Und die letzte Datei die Includet wird sieht so aus:

                  functions2.inc.php

                  Ich habe dir mal das Script Hochgeladen, vieleicht hilft es dir ja weiter.

                  BF2-Script

                  Vielen Dank für deine hilfe.

                  mfg Blacki