Zeitspanne

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

  • Zeitspanne

    Hi,

    ich bräuchte mal schnell einen Denkanstoss.

    So also es gibt eine Zeitspanne von einer Woche (Montag bis Sonntag) in dieser Zeitspanne muss der user sich z.b. anmelden. Dann wird ein wert in die db eingetragen. So nun wird angezeigt das er z.b. angemeldet war in der woche. So am Sonntagabend möchte ich das der wert wieder gelöscht wird und der user muss sich wieder neuanmelden um den wert einzutragen.

    Hoffe ihr versteht mich. Mir fehlt es gerade einfach an der Idee das zu realisieren.

    Marcus

  • #2
    Code:
    SELECT * 
    FROM tabelle 
    WHERE (eintragsdatum+INTERVAL 7 DAY)<NOW()
    mrhappiness, denkanstösst *g*
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      hi,

      das löst nicht mein problem. Da der user sich auch erst am Mittwoch einloggen kann aber trotzdem soll am Sonntag gelöscht werden. Also der Zeitraum ist fest aber der zeitpunkt an dem der user sich anmeldet nicht.

      Marcus

      Kommentar


      • #4
        http://www.mysql.com/doc/de/Date_and...functions.html

        WEEKDAY, DAYOFWEEK sehen auf den ersten blick nich schlecht aus
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          danke das werde ich mir mal anschauen.

          Marcus

          Kommentar


          • #6
            *VERSCHIEB* nach sql, wo es auch hingehört...
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              hmm also ich habe jetzt mal zeit gefunden mir das durchzulesen. Doch leider komme ich damit nicht ganz zurecht. Wäre echt Dankbar wenn mir hier nochmal einer helfen könnte. Vielleicht ein Codeschnipsel oder ein Tut.

              Danke Marcus

              Kommentar


              • #8
                Für die PHP Syntax schwieriger Sachverhalt.
                Lässt sich aber umgehen

                1.) Lege eine neue db tabelle an

                PHP-Code:

                /#######NUR EINMAL AUSFÜHREN!#######/

                /****************
                db tabelle mit den timestamp
                Werten für die nächsten 300
                Sonntage
                ****************/

                /** db struktur (benötigt nur eine Spalte) "deine_table"
                next_sunday
                **/

                // ein beliebiges Sonntagsdatum in der Vergangenheit oder Zukunft einfügen
                $tag "25";
                $monat "05";
                $jahr "2003";

                // mit mktime() in eine timestamp umwandeln, wird als Startwert benutzt
                $startwert mktime(23,59,59,$monat,$tag,$jahr);

                // die timestampwerte der nächsten 300 Sonntage in die DB einfügen
                for ($i=0;$i<300;$i++) {
                $startwert $startwert 604800//wird bei jedem durchlauf um genau 7 Tage in sekunden erhöht
                mysql_db_query("$dbname""INSERT INTO deine_table (next_sunday) VALUES ('$startwert')");  // unbedingt "deine_table" anpassen
                }

                ?> 
                Nun können wir Prüfen

                PHP-Code:
                <?php

                /**************
                Prüfen ob schonwieder
                ein Sonntag vorbei ist
                **************/

                /*************
                Niedrigsten Wert aus
                "deine_table" holen
                *************/

                $res_niedr mysql_db_query("$dbname""SELECT next_sunday FROM deine_table ORDER BY next_sunday LIMIT 0,1");
                $niedrigster mysql_result($res_niedr0"next_sunday");

                /*************
                Niedrigsten Wert mit
                aktueller Timestamp vergleichen
                *************/

                $time time();
                if (
                $time $niedrigster) { // falls die Aktuelle timestamp Größer ist als der kleinste Wert in der Datenbank werden alle Werte der Spalte "wert" zurückgesetzt wo die Zeit der Eintragung niedrieger ist als der letzte Sonntag (aus der DB gesehen, benötigt beim ersten durchlauf eventuell einiger refreshes)
                mysql_db_query("$dbname""UPDATE table SET wert = '' WHERE time < '$niedrigster'");
                mysql_db_query("$dbname""DELETE FROM deine_table WHERE next_sunday = '$niedrigster'");
                }

                /*************
                DB vars "table"
                time | wert
                *************/

                ?>

                Kommentar


                • #9
                  Hi,

                  sorry das ich mich erst jetzt bedanke hatte leider die letzte zeit kein i-net.
                  Also erstmal danke. Jedoch verstehe ich es noch nicht so ganz.
                  /**************
                  Prüfen ob schonwieder
                  ein Sonntag vorbei ist
                  **************/
                  da hängt es bei mir. Kann mir da mal jemand helfen? Irgendwie sitze ich da auf der leitung.

                  Marcus

                  Kommentar


                  • #10
                    das sind kommentarzeilen. oder was meinst du?
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar


                    • #11
                      hat sich schon erledigt war noch etwas müde Trotzdem danke

                      Marcus

                      Kommentar

                      Lädt...
                      X