Kleines Problem

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

  • Kleines Problem

    Hallo Freunde.
    Ich möchte ein Geburtstagsscript schreiben, dass aus einer Datenbank die Namen der aktuellen "Geburtstagskinder" ausliest und +3 bzw -3 Tage alle Namen ausgibt.

    Bisherige Namen sind in einer DB abgelegt.
    Dazu meine install.php

    PHP-Code:
    <?php
        $db_user  
    "root";         //Benutzer
        
    $pass      "password";          //Password
        
    $server "localhost";      //Server
        
    $dbase  "Db-Name";        //Datenbank

        
    $conn = @mysql_connect($server$db_user$pass);
        if (
    $conn) {@mysql_select_db($dbase$conn);}


        
    $db_sql "CREATE TABLE geburtstag
         (
                  ID INT AUTO_INCREMENT PRIMARY KEY,
                  name VARCHAR(50),
                  tag TINYINT,
                  monat TINYINT,
                  jahr TINYINT
         );

        
    $db_ergebnis=mysql_query($db_sql,$conn);


        if (
    $db_ergebnis) {
        echo "
    Tabelle geburtstag erfolgreich hinzugefügt!<br/>";
        }
        else {
        echo "
    Tablle geburtstag konnte nicht hinzugefügt werden!<br/>";
        echo mysql_errno() . "
    " . mysql_error(). "\n";
        };


        ?>
    Zusätzlich sollen neue Mitglieder über ein Formular in der Datenbank eingetragen werden:

    form_update.php
    PHP-Code:
    <?php

    if ($_POST["sendKontakt"]) {  
    $name   $_POST["name"];
    $tag      $_POST["tag"];
    $monat      $_POST["monat"];
    $jahr      $_POST["jahr"];
    }
    <
    form action="update.php" method="post" />
    <
    input type="text" name="name" size="20" value="<?=htmlentities(stripslashes($_POST["name"]);?>"/>
    <
    input type="text" name="tag" size="20" value="<?=htmlentities(stripslashes($_POST["tag"]);?>" />
    <
    input type="text" name="monat" size="20" value="<?=htmlentities(stripslashes($_POST["monat"]);?>" />
    <
    input type="text" name="jahr" size="20" value="<?=htmlentities(stripslashes($_POST["jahr"]);?>" />
    <
    input type="submit" name="sendKontakt" value="Senden" />
    diese daten werden dann an die update.php gesendet in der folgendes steht
    update.php
    PHP-Code:
    <?php
    connect
    -zeuch;
     
    mysql_select_db("geburtstag") or die ("Die Datenbank existiert nicht");
    $eintrag "INSERT INTO geburtstag (tag, monat, jahr, name) VALUES ('$tag', '$monat', '$jahr', '$name')";
    $eintragen mysql_query($eintrag);
    if (
    $eintragen) {
        echo 
    "Daten angelegt!<br/>";
        }
        else {
        echo 
    "Es ist ein Fehler aufgetreten!<br/>";
        echo 
    mysql_errno() . ": " mysql_error(). "\n";
        };
    ?>
    Und letztlich meine Abfrage für die HP:
    abfrage.php
    PHP-Code:
    <?php
    connect
    -zeuch;
    mysql_select_db("geburtstag") or die ("Die Datenbank existiert nicht");
    $abfrage "SELECT * FROM geburtstag WHERE tag and monat";
    $ergebnis mysql_query($abfrage);
        while(
    $row mysql_fetch_object($ergebnis))
        {
        echo 
    $row->name." ".tag.".".monat.".".jahr;
        }
    Nun meine Frage, vorausgesetzt, ich habe keine Fehler in den vorigen Dateien, wie muss die Abfrage denn genau lauten, damit er mittels des aktuellen Datums erkennt, wer heute bzw -3 +3 Tage Geburtstag hat??!
    Sorry bin net grad der "Crack" in diesen Angelegenheiten

  • #2
    Mach aus deinen 3 Spalten eine mit dem Typ Date und dann die Datumsfunktionen auf MySQl anschauen.
    Für Rechtschreibfehler übernehme ich keine Haftung!

    Kommentar


    • #3
      Original geschrieben von Damian1984
      Mach aus deinen 3 Spalten eine mit dem Typ Date und dann die Datumsfunktionen auf MySQl anschauen.
      eine aus den 3 Spalten????
      du meinst noch eine zusätzliche Spalte namens Date Typ Date?
      und diese dann vergleichen mit den 2 Spalten Tag und Monat?

      Kommentar


      • #4
        nein, siehe auch hier

        gruß
        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Tag | Monat | Jahr
          12 | 2 | 1984

          daraus machst du:
          'Gebutstag' date
          19840212

          Und ab jetzt kannst du die Datumsfunktionen von mysql benutzen.
          Für Rechtschreibfehler übernehme ich keine Haftung!

          Kommentar


          • #6
            ok danke erstmal
            ich schau mal was sich in dieser form machen lässt und melde mich gegebenfalls nochmal

            Kommentar


            • #7
              anscheinend komme ich doch net so recht voran
              diese drei tabellen habe ich

              ID INT AUTO_INCREMENT PRIMARY KEY,
              name VARCHAR(50),
              datum date


              darin stehen bspw. folgende werte

              1|horst müller|13.05.1966
              2|horst meier|13.05.1988
              3|horst becker|13.05.1977


              meine abfrage muss doch nun noch verknüpfen, damit ich den vergleich mit dem aktuellen datum habe plus die nächsten 3 Tage & minus 3 Tage

              das heisst, ich arbeite mit den ersten beiden zahlen xx.xx.

              also:
              PHP-Code:
              setlocale(LC_ALL,"ge");
              $monat_heute strftime("%m");
              $tag_heute strftime("%d"); 

              $abfrage 'SELECT * FROM geburtstag WHERE MONTH(datum) = ".$monat_heute." AND DAY(datum) = ".$tag_heute";
              $ergebnis = mysql_query($abfrage); 
              das wäre dann die abfrage bzw vergleich nur mit dem heutigen datum!?

              Kommentar


              • #8
                hat sich wohl erledigt

                Kommentar


                • #9
                  vielleicht eine sache noch
                  wie kann ich mehre input-felder so definieren, dass sie in der db eingetragen werden
                  also

                  Name Geburstag

                  Name Geburstag

                  Name Geburstag

                  Name Geburstag

                  Name Geburstag

                  Name Geburstag
                  ....

                  bei nur einer abfrage wird das doch ne endlose arbeit
                  hat da vielleicht jemand nen link, wo ich mir das prinzip näher bringen kann?!

                  Kommentar


                  • #10

                    kannst du das mal genauer erklären?

                    peter
                    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                    Meine Seite

                    Kommentar


                    • #11
                      PHP-Code:
                      <input type="text" name="name" size="20" value="<?=htmlentities(stripslashes($_POST["name"]);?>"/>
                      <input type="text" name="tag" size="20" value="<?=htmlentities(stripslashes($_POST["tag"]);?>" />
                      <input type="text" name="monat" size="20" value="<?=htmlentities(stripslashes($_POST["monat"]);?>" />
                      <input type="text" name="jahr" size="20" value="<?=htmlentities(stripslashes($_POST["jahr"]);?>" />
                      das wäre ein eintrag
                      will aber gleich mind. 10 machen
                      müssen da jeweils immer die variablen umbenannt werden?
                      PHP-Code:
                      <input type="text" name="name" size="20" value="<?=htmlentities(stripslashes($_POST["name2"]);?>"/>
                      <input type="text" name="tag" size="20" value="<?=htmlentities(stripslashes($_POST["tag2"]);?>" />
                      <input type="text" name="monat" size="20" value="<?=htmlentities(stripslashes($_POST["monat2"]);?>" />
                      <input type="text" name="jahr" size="20" value="<?=htmlentities(stripslashes($_POST["jahr2"]);?>" />

                      Kommentar


                      • #12
                        schleifen
                        PHP-Code:
                        for ($i 1$i $irgendwas$i++)
                        {
                           echo 
                        '<input type="text" name="name'.$i.'" size="20" 
                           value="'
                        .htmlentities(stripslashes($_POST['name'.$i]).'" />';

                        und die abfragen genau so.

                        gruß
                        peter
                        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                        Meine Seite

                        Kommentar

                        Lädt...
                        X