die nächsten 7 tage

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

  • die nächsten 7 tage

    hi. ich habe einen event kalender auf meiner website. ich wüsste, wie ich die nächsten sieben tage anzeigen lassen könnte, doch wenn ich die nächsten 6 tage einfach auf das aktuelle date draufzählen würde, hätte ich am 30. eines monates die suchabfrage nach dem 31., 32., 33.,... und dass wäre nicht der sinn der sache.

    gibt es da irgendeine funktion, die abhilfe schaffen könnte, die also automatisch nach dem 31. den 1. abfragt?

    vielen dank im vorraus.

  • #2
    schreib dir ein array dafür
    $month = array ("1" =>"31";
    "2" =>"28";
    usw );
    damit kann du alle abfangen
    gruss
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      sorry leider hab ich nicht viel erfahrung mit php.
      wie würde dann meine mysql abfrage aussehen?

      [PHP]
      $result2 = mysql_query("SELECT * FROM mb_events WHERE monat='$month' and jahr='$year' and tag='$tag' and public='yes' ORDER BY tag",$db);

      ?>
      PHP]

      wie müsste ich dann die abfrage für den tag einsetzen?

      Kommentar


      • #4
        Versuche mal mit folgenden Funktionen etwas herumzuspielen.
        Damit kannst du problemlos ein Offset auf die Tage bei jedem Datum setzten.

        <?
        // Beispielsdatum 26.01.2001
        $tag = 26;
        $monat = 1;
        $jahr = 2001;

        // 7 Tage später
        $offset = 7;

        // Berechnung ...
        $thisday = mktime (0,0,0,$monat,$tag+$offset,$jahr);
        echo strftime ("%d.%m.%Y", $thisday);
        ?>

        Ausgabe: 02.02.2001

        Immer erst mal gucken, ob Benzin im Tank ist ...

        Kommentar


        • #5
          ok, dann werde ich für jeden tag eine variable erstellen und sie dann per and tag='$tag1' and tag='$tag2', ..., abfragen.

          vielen dank.

          Kommentar


          • #6
            noch eine frage

            kann man irgendwie eine schleife machen, die autmatisch die variablen erstellt?

            wenn z.b. die variable $next_days 10 ist, dann sollte php 10 variablen für die einzelnen tage erstellen und dann automatisch die mysql anfrage and tag='$tag' auf and tag='$tag1', and tag='$tag2',....,and tag='$tag10' abfragen.

            irgendwelche lösungsvorschläge?

            Kommentar


            • #7
              Wenn ich dich richtig verstanden habe, könnte dir folgendes Script vielleicht weiterhelfen.
              Die nächsten x Tage werden in Arrays geschrieben und anschließend wird daraus die SQL-Abfrage generiert.

              <?
              // Beispielsdatum 26.01.2001
              $tag = 26;
              $monat = 1;
              $jahr = 2001;

              // Die nächsten x Tage
              $next_days = 10;

              // Dann wollen mer mal ...
              for ($i=1 ; $i <= $next_days ; ++$i)
              {
              $thisday = mktime (0,0,0,$monat,$tag+$i,$jahr);
              $tag_neu[$i] = strftime ("%d", $thisday);
              $monat_neu[$i] = strftime ("%m", $thisday);
              $jahr_neu[$i] = strftime ("%Y", $thisday);
              }

              echo "
              Basisdatum: $tag.$monat.$jahr <br><br>
              Die nächten $next_days Tage: <br>
              ";

              // Ausgabe der nächten x Tage
              for ($i=1 ; $i <= sizeof($tag_neu) ; ++$i)
              echo "$tag_neu[$i].$monat_neu[$i].$jahr_neu[$i] <br>";

              // SQL-Abfrage generieren
              $sql = "SELECT * FROM tabelle WHERE ";

              for ($i=1 ; $i <= sizeof($tag_neu) ; ++$i)
              {
              $sql .= "(tag='$tag_neu[$i]' AND monat='$monat_neu[$i]' AND jahr='$jahr_neu[$i]') OR ";
              }

              // das letzte OR entfernen
              $sql = substr($sql,0,-4);

              // Ausgabe der SQL-Anfrage
              echo "<br>$sql";
              ?>


              Immer erst mal gucken, ob Benzin im Tank ist ...

              Kommentar


              • #8
                erstmal danke für die mühe.

                ich würde jedoch gern wissen wo ich mein:
                PHP-Code:
                $result2 mysql_query(

                und das
                PHP-Code:
                ,$db); 
                eintragen muss.
                schliesslich soll die mysql abfrage ja zur db und nicht in den browser

                Kommentar


                • #9
                  Erst die Standardgeschichte für den MySQL-Zugriff:

                  $db = mysql_connect($host.":".$port,$user,$password);
                  mysql_select_db($datenbankname,$db);


                  Dann muss die eigentliche SQL-Abfrage so etwa aussehen:

                  $result = mysql_query($sql,$db);


                  Tip:
                  Lade dir folgede PHP-Hilfe runter, das Ding ist das optimale Nachschlagewerk.
                  http://www.scripts4u.de/files/phpManualGer.zip

                  Immer erst mal gucken, ob Benzin im Tank ist ...

                  Kommentar


                  • #10
                    werde ich tun, doch vorher noch eine kleine frage:
                    wo soll ich mein
                    PHP-Code:
                    ORDER BY tag 
                    ein setzen? hinter dem or geht nicht, da es ja entfernt wird.

                    Kommentar


                    • #11
                      vielen dank. ich habs jetzt mit der mysql abfrage und dem rest hinbekommen.

                      danke für die geduld.
                      Zuletzt geändert von snooze; 26.04.2002, 18:34.

                      Kommentar


                      • #12
                        Vorab als Ergänzung, Aktuelles Datum + 7 Tage ermitteln über MySQL Funktion:

                        select DATE_ADD(now(), INTERVAL 7 DAY) AS datumplus7Tage;

                        Das DATE_ADD kann man auch in eine WHERE Bedingung einbeziehen.
                        select * from Tabelle WHERE datumaustabelle < DATE_ADD(now(), INTERVAL 7 DAY);

                        Mehr zu DATE_ADD, oder DATE_SUB
                        http://www.mysql.com/doc/D/a/Date_an...functions.html
                        oder
                        http://www.php-resource.de/forum/sho...?threadid=5218

                        Zu Deinen Datumsformaten. Ansich sind
                        %j - day of the month without leading zeros; i.e. "1" to "31"
                        %n - month without leading zeros; i.e. "1" to "12"
                        %Y - year, 4 digits; i.e. "1999"
                        korrekt
                        http://www.php.net/manual/en/function.date.php

                        Was Dein gepostetes Skriptfragment mit der Erscheinung zu tun hat weiß ich nicht, denn dieser Skriptteil gibt weder über "echo" noch "print" etwas aus.

                        Kommentar


                        • #13
                          Naja, Du hast mir während ich geantwortet habe Deinen Post weggenommen.

                          Hauptsache es funzt.

                          Kommentar


                          • #14
                            so siehts aus, trotzdem danke.

                            Kommentar


                            • #15
                              Als letztes vor der Abfrage fügst du das noch ein, dann sollte es gehen

                              [FONT=courier new]$sql .= " ORDER BY tag";[/FONT]

                              dann
                              [FONT=courier new]$result = mysql_query($sql,$db)[/FONT]

                              ... usw

                              Immer erst mal gucken, ob Benzin im Tank ist ...

                              Kommentar

                              Lädt...
                              X