Zeit setzen!??

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

  • Zeit setzen!??

    Hi! Also! Ein User ruft seine Seite über URL auf:
    http://www.adresse.de/start.php?id=123
    start.php
    <?
    $db = mysql_connect("localhost","./","");
    mysql_select_db("Userdb",$db);
    $res = mysql_query("select * from statistik where UserID=$id");
    $sql = "update statistik set Stasei = (Stasei +8) where UserID=$id";
    mysql_query($sql);
    header("Location:$data->StaUrl");
    ?>
    Also nun habe ich in der Tabelle statistik die Spalten UserID, Pkt, Url, reload
    Jetzt soll bei aufruf über obigen Link die tabelle reload auf die aktuelle zeit gesetzt werden! Vorher soll geprüft werden, ob der wert in der tabelle länger als 40 minuten zurück liegt! Wenn ja, dann weiterleiten, wenn nein dann meckern! Wie setze ich das mit der Zeit jetzt am besten um?
    Thanx!
    No internationalisation, no fun.

  • #2
    hmm,

    wenn du nur die vergleichstdaten brauchst, dann speicher doch einfach den timestamp, das ist am einfachsten zu vergleichen.

    Kommentar


    • #3
      Sorry Joel! Bin erst seit ein paar Tagen in MySQL drin! Wie genau muß ich denn das machen! Nen Beispiel wär gut! Thanx!
      No internationalisation, no fun.

      Kommentar


      • #4
        naja,

        also
        $momtime = time();

        naja und $momtime schreibst du in das entsprechende feld der DB, wenn der jetzt nochmal kommt dann liest du die DB aus und machst den vergleich
        Code:
        $jetzttime = time(); // wieder den Timestamp holen
        if ($datenbank["timestamp"]+40*60>$jetzttime)
         {
            echo "sie waren in den letzten 40 min. schonmal da !";
          }
        wobei $datenbank["timestamp"] die Variable ist die du aus der DB ausliest. das 40*60 bedeutet einfach 40min. mal 60 sec. da der timestamp die sekunden sind seit 1.1.1970

        Kommentar


        • #5
          Welchen Typ und welche Funktion muß ich in der Spalte reload wählen, damit das richitg übernommen wird?
          No internationalisation, no fun.

          Kommentar


          • #6
            hmm,

            ich glaub int reicht.

            Kommentar


            • #7
              Mmmh. Okay! Er schreibt mir nix in die Spalte rein! Was mach ich falsch?
              start.php
              <?
              $db = mysql_connect("localhost","./","");
              mysql_select_db("Userdb",$db);
              $res = mysql_query("select * from statistik where UserID=$id");
              $jetzttime = time(); //JETZTZEIT HOLEN
              if ($reload["momtime"]+40*60>$jetzttime) //PRÜFEN
              {
              echo "sie waren in den letzten 40 min. schonmal da !";
              } //WENN NICHT
              $momtime = time();
              $sql = "update statistik set reload = ($momtime) where UserID=$id"; //SPALTE RELOAD auf momtime aktualisieren und weiter wie bisher!!

              $sql = "update statistik set Stasei = (Stasei +8) where UserID=$id";
              mysql_query($sql);
              header("Location:$data->StaUrl");
              ?>
              No internationalisation, no fun.

              Kommentar


              • #8
                Alles klar hab da mal was korrigiert!
                $sql = "update statistik set reload = ($momtime) where UserID=$id";
                $sql = "update statistik set Stasei = (Stasei +8) where UserID=$id";
                mysql_query($sql); ------> Falsch

                $relo = "update statistik set reload = ($momtime) where UserID=$id";
                mysql_query($relo);
                $sql = "update statistik set Stasei = (Stasei +8) where UserID=$id";
                mysql_query($sql);

                So. Jetzt schreibt er mir auch was in die Spalte!
                1007058058 Diese Zahl!???? Und weiter?? Hab den Typ auf int gesetzt!


                No internationalisation, no fun.

                Kommentar


                • #9
                  hmm,

                  ja und ?
                  Ist doch richtig, der Unixtimestamp ist die Zeit in Sekunden die seit dem 1.1.1970 vergangen ist, das sind ca. 1Mrd. Sekunden. momentan, naja und jetzt kannste immer testen ob die aktuelle Zeit 40*60 (=40 min. in Secunden) grösser ist als die Zeit die du gespeichert hast, das ist von der performance her besser als einen Datumsstring ein zu bauen.

                  Kommentar


                  • #10
                    Alles klar! Aber irgendwas stimmt mit der Query noch nicht! Er tut bei jedem aufruf aktualisieren und nicht vergleichen! Hier nochmal die Query!
                    <?
                    $db = mysql_pconnect("localhost","./","");
                    mysql_select_db("Userdb",$db);
                    $res = mysql_query("select * from statistik where UserID=$id");
                    $jetzttime = time(); // wieder den Timestamp holen
                    if ($relstasei["momtime"]+40*60>$jetzttime)
                    {
                    header("Location:./info.php");
                    }
                    $momtime = time();
                    $relo = "update statistik set relstasei = ($momtime) where UserID=$id";
                    mysql_query($relo);
                    $sql = "update statistik set Stasei = (Stasei +8) where UserID=$id";
                    mysql_query($sql);
                    header("Location:$data->StaUrl");
                    ?>
                    No internationalisation, no fun.

                    Kommentar


                    • #11
                      Also ich hab das prob, das diese query immer noch nicht funzt! Und ich weiß nicht warum?? Er aktualisiert mir den timestamp jedesmal und prüft nicht die daten!!
                      <?
                      $db = mysql_pconnect("localhost","./","");
                      mysql_select_db("Userdb",$db);
                      $res = mysql_query("select * from statistik where UserID=$id");
                      $jetzttime = time(); //den Timestamp holen
                      if ($statistik["relstasei"]+40*60>$jetzttime)
                      {
                      header("Location:./info.php");
                      }
                      $momtime = time();
                      $relo = "update statistik set relstasei = ($momtime) where UserID=$id";
                      mysql_query($relo);

                      Thanx
                      No internationalisation, no fun.

                      Kommentar


                      • #12
                        ich will mich ja nicht einmischen, und um gottes willen nicht sagen, dass joelhs vorschläge nicht gut sind, aber ich empfehle dir statt mit timestamp mit datetime zu arbeiten. das sollte speziell bei anfängern einfacher sein. wenn du hilfe brauchst: SCHREI
                        h.a.n.d.
                        Schmalle

                        http://impressed.by
                        http://blog.schmalenberger.it



                        Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
                        ... nur ohne :-)

                        Kommentar


                        • #13
                          Schrei! ) Kann ich da die genaue tageszeit und das datum setzen?? Wie?? Thanx!
                          No internationalisation, no fun.

                          Kommentar


                          • #14
                            das ist sehr einfach!

                            die spalte muss auf das format datetime // sollte klar sein

                            dann mit folgendem befehl aktuelle zeit setzten:

                            $neu = mysql_query(" update tabelle set spalte_datum=now() ");

                            und das wars. evtl. muss das now() in quotes: 'now()'
                            h.a.n.d.
                            Schmalle

                            http://impressed.by
                            http://blog.schmalenberger.it



                            Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
                            ... nur ohne :-)

                            Kommentar


                            • #15
                              OK! Und wie kann ich den vergleich anstellen, ob die aktuelle zeit länger als 30min her ist!
                              <?
                              $db = mysql_pconnect("localhost","./","");
                              mysql_select_db("Userdb",$db);
                              $res = mysql_query("select * from statistik where UserID=$id");
                              /// Jetzt schauen ob die aktuelle zeit länger als 40 min her ist! Und wenn dann -->
                              {
                              header("Location:./info.php");
                              }
                              ///Ansonsten setze die zeit neu!
                              $neu = mysql_query("update statistik set relstasei=now() where UserID=$id");
                              No internationalisation, no fun.

                              Kommentar

                              Lädt...
                              X