Ankündigung

Einklappen
Keine Ankündigung bisher.

Geburtstage ermitteln

Einklappen

Neue Werbung 2019

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

  • Geburtstage ermitteln

    Guten Morgen allerseits,

    ich möchte eine Abfrage in einer Datenbank durchführen, die mir alle Geburtstage liefert, die innerhalb der nächsten Woche sind.

    also

    PHP-Code:
    <?php
    $sql 
    "select vorname,nachname from users where geburtsdatum < ???"


    ?>
    was muss ich denn da für die Fragezeichen setzen?

    wie kann ich z.B. alle Treffer der nächsten 7 Tage auslesen? einfach date("Y-m-d")-7 oder sowas in der art geht leider nicht


    Vielen Dank


    Gruß HaVoK

  • #2
    in welchem format ist das geburtsdatum denn gespeichert?

    Kommentar


    • #3
      das Geburtstag steht so drin: als --> datum date (Spaltenformat date)
      1983-12-25
      YYYY-MM-DD

      Gruß HaVoK

      Kommentar


      • #4
        Re: Geburtstage ermitteln

        Zitat von havok
        wie kann ich z.B. alle Treffer der nächsten 7 Tage auslesen? einfach date("Y-m-d")-7 oder sowas in der art geht leider nicht
        Erst in Sekunden umrechnen und dann nicht Minus sondern Plus Rechnen! Sonst wären es die letzten 7 Tage!

        LG Chris

        Kommentar


        • #5
          Funktion wird nachgeliefert:

          http://de.php.net/manual/de/function.strtotime.php

          Kommentar


          • #6
            will er nicht den vergleich über sql machen? da kann er geburtsdatum ja schlecht mit php funktionen editieren, und mit irgendwelchen timestamps vergleichen hilft hier wohl auch nicht sehr viel.

            Kommentar


            • #7
              achso
              dann musst es wohl so machen:

              PHP-Code:
              $7dayslater strtotime("+7 day");
              $year=date("Y",$7dayslater);
              $month=date("m",$7dayslater);
              $day=date("d",$7dayslater);

              $geburtstagexplode("-"$Geburtstag_von_sql_result);
              $gbyear=$geburtstag[0]; 
              $gbmonth=$geburtstag[1];
              $gbday=$geburstag[2];  

              if(
              $year == "$gbyear&& $month =="$gbmonth&& $gbday+7<="$day")
              {
              echo
              "Du hast bald Geburtstag";
              }

              if(
              $year == "$gbyear&& $month !="$gbmonth")
              {
              $monatstage=date("t",time());
              $diff=$monatstage-$gbday;
              $sum=$diff+$day;
              if(
              $sum<="7")
              {
              echo
              "Du hast bald Geburtstag";
              }

              Für ein anderes Jahr habe ich jetzt kein Bock drauf, aber müsstest das eigentlich auch alleine hinbekommen
              ist wirklich ein wenig kompliziert!

              Kommentar


              • #8
                da is aber n fehler drin, du rechnest 2mal +7 ,also insgesamt 2 wochen im vorraus.

                Außerdem ist es sowie viel einfacher und intelligenter das ganze sql machen zu lassen...

                Kommentar


                • #9
                  da is aber n fehler drin, du rechnest 2mal +7 ,also insgesamt 2 wochen im vorraus.
                  Eigentlich nicht....
                  aber habs auch schnell gemacht und gerade keine zeit drüber zu schauen....aber auf den ersten blick sieht es richtig aus

                  Kommentar


                  • #10
                    Code:
                    if($year == "$gbyear" && $month =="$gbmonth" && $gbday+7<="$day")
                    {
                    echo"Du hast bald Geburtstag";
                    }
                    Falsche Aussage!

                    Code:
                    if($year == "$gbyear" && $month =="$gbmonth" && $gbday+7<="$day")
                    {
                    echo"Du wirst bald geboren";
                    }
                    Richtige Aussage!

                    [edit]
                    User Comments beachten
                    http://dev.mysql.com/doc/mysql/en/da...culations.html
                    [/edit]

                    Kommentar


                    • #11
                      Schaut her:
                      PHP-Code:
                      <?php
                      sql
                      "SELECT * FROM  users WHERE datum BETWEEN CURDATE() AND ADDDATE(CURDATE(), INTERVAL 7 DAY)"
                      ?>
                      an sowas hatte ich eigentlich gedacht

                      ich kann doch nicht alle user erst auslesen und dann abgleichen wann sie geburtstag haben, das sprengt ja meine Rechenleistung bei ner größeren DB.

                      Trotzdem vielen Dank.
                      Mit obigem SQL-Befehl gehts aber, falls jemand mal das gleiche Problem haben sollte.

                      Gruß HaVoK

                      Kommentar


                      • #12
                        Zitat von havok
                        Schaut her:
                        PHP-Code:
                        <?php
                        sql
                        "SELECT * FROM  users WHERE datum BETWEEN CURDATE() AND ADDDATE(CURDATE(), INTERVAL 7 DAY)"
                        ?>
                        an sowas hatte ich eigentlich gedacht

                        ich kann doch nicht alle user erst auslesen und dann abgleichen wann sie geburtstag haben, das sprengt ja meine Rechenleistung bei ner größeren DB.

                        Trotzdem vielen Dank.
                        Mit obigem SQL-Befehl gehts aber, falls jemand mal das gleiche Problem haben sollte.

                        Gruß HaVoK
                        Dann musst du deine Frage anders stellen.
                        Deine Frage war wer hat in den nächsten 7 Tagen Geburtstag,
                        dass du damit meinst wer wird in den nächsten 7 Tagen geboren kann niemand ahnen.

                        Kommentar

                        Lädt...
                        X