Datum aus DB auswerten

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

  • Datum aus DB auswerten

    Hallo,
    ich habe ein Problem, ich habe eine Datenbank in der ein
    Aktivierungsdatum eingetragen ist wenn sich ein user angemeldet hat
    ansonsten ist es 0000-00-00.

    db:
    CREATE TABLE `aktivierung` (
    `id` int(11) NOT NULL auto_increment,
    `aktivierungscode` varchar(20) NOT NULL default '',
    `email` varchar(255) NOT NULL default '',
    `aktiviert_am` date NOT NULL default '0000-00-00',
    PRIMARY KEY (`id`)
    )

    Wie kann ich überbrüfen ob das Datum noch 0000-00-00 ist oder nicht?
    Ich habe auch schon rum probiert finde keine Lösun.

    Hab mal einen Code wie ich denke:

    PHP-Code:
    if(mysql_num_rows(mysql_query("SELECT aktiviert_am FROM aktivierung WHERE aktivierungscode='".stripslashes($_POST['aktiv'])."'"))==0000-00-00){ 
    echo 
    "die Aktivierung ist noch nicht freigegeben"
    }else{ 
    echo 
    "die Aktivierung ist freigegeben"

    würde mich freuen wenn mir jemand helfen könnte.

    DANKE

  • #2
    $sql = SELECT (aktiviert_am = '0000-00-00') ist_aktiv

    $result = mysql_query($sql);

    $zeile = mysql_fetch_assoc($result);

    $zeile['ist_aktiv'] ist entweder 1 oder 0, bzw. true oder false
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      die Tabelle ist etwas daneben definiert, ich würde anders machen und zwar die Datumspalte nur als Info und eine zusätzliche Spalte `active`mit 1 und 0 belegen, dann hast du das Problem nicht. Andererseits was machst du da mit der Abfrage? was soll denn das hier

      ... stripslashes($_POST['aktiv'])."'"))==0000-00-00

      Kommentar


      • #4
        Datum aus DB auswerten

        Hallo und Danke das Ihr so schnell antwortet.

        Ich will mit der Abfrage sicherstellen das der Aktivierungslink nich zweimal
        abgerufen werden kann.

        habe noch ein kleinen fehler gemacht: neuer Code

        PHP-Code:
        if(mysql_num_rows(mysql_query("SELECT aktiviert_am FROM aktivierung WHERE aktivierungscode='".stripslashes($_POST['aktivierungscode'])."'"))==0000-00-00){ 
        echo 
        "die Aktivierung ist noch nicht freigegeben"
        }else{ 
        echo 
        "die Aktivierung ist freigegeben"

        1. aktivierungscode='".stripslashes($_POST['aktiv'])."'
        neu
        2. aktivierungscode='".stripslashes($_POST['aktivierungscode'])."'

        die wir durch den Aktivierungslink übergeb.

        wie müsste ich nun die if abfrage machen damit ich abfragen kann ob das
        Datum noch auf 0000-00-00 gesetzt ist oder ein richtiges Datum steht?

        DANKE
        Zuletzt geändert von eno24; 07.02.2007, 08:35.

        Kommentar


        • #5
          Re: Datum aus DB auswerten

          Original geschrieben von eno24
          1. aktivierungscode='".stripslashes($_POST['aktiv'])."'
          neu
          2. aktivierungscode='".stripslashes($_POST['aktivierungscode'])."'

          die wir durch den Aktivierungslink übergeb.
          Du übergibst per Link Daten mit Methode POST?
          wie müsste ich nun die if abfrage machen damit ich abfragen kann ob das Datum noch auf 0000-00-00 gesetzt ist oder ein richtiges Datum steht?
          Dazu hast du doch bereits Antworten bekommen.

          Erst mal solltest du jetzt einsehen, dass sowas wie
          PHP-Code:
          if(mysql_num_rows(mysql_query("..."))==0000-00-00
          totaler Quark ist.

          Was gibt mysql_num_rows zurück? Und warum willst du es mit 0 minus 0 minus 0 vergleichen?
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Datum aus DB auswerten

            Hi,

            ich möcht doch nur in einer if Abfrage feststellen ob ein Datum eingetragen
            wurde oder nicht allso 0000-00-00 (wie es in der db steht).

            Das ist alles neuland für mich und fersuche auch den Code zu verstehen.
            Deswegen frage ich ja auch.


            Was gibt mysql_num_rows zurück? Gibt die Anzahl der Datensätze eines Ergebnisses aus

            Wie müsste ich den das anders formulieren?

            Vieleicht mit mysql_fetch_object? oder liege ich jetzt komplett daneben

            Kommentar


            • #7
              PHP-Code:
              $sql "SELECT aktiviert_am FROM aktivierung WHERE 
              aktivierungscode='"
              .stripslashes($_POST['aktivierungscode'])."' 
              AND UNIX_TIMESTAMP(aktiviert_am) > 0"

              Mal sowas probiert ?

              Gruss

              tobi
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar


              • #8
                Datum aus DB auswerten

                Ich danke euch für die Hilfe

                es funktioniert habe es aber so gemacht:

                PHP-Code:
                if(mysql_num_rows(mysql_query("SELECT aktiviert_am FROM aktivierung WHERE aktivierungscode='".stripslashes($_POST['aktivierungscode'])."' AND aktiviert_am = '0000-00-00'))){ 
                echo "
                die Aktivierung ist noch nicht freigegeben"; 
                }else{ 
                echo "
                die Aktivierung ist freigegeben"; 

                Mich würde jetzt nur mal interessieren ob das eine saubere schreibweise ist oder geht so eine Anfrage auch besser?
                Zuletzt geändert von eno24; 09.02.2007, 02:09.

                Kommentar


                • #9
                  Re: Datum aus DB auswerten

                  Bis auf das strip_slashes ...

                  magic_quotes_gpc ist zwar eine äusserst lästige Einstellung, aber sie ist da, um Leute vor sich selbst zu schützen, die sich um die Sicherheit zu wenig Gedanken machen - und in diesem Fall scheint es angebracht zu sein. Stichwort SQL Injection.


                  (Nein, es ist natürlich nicht angebracht. Wenn magic_quotes_gpc dummerweise auf on gesetzt sein sollte, dann strip_slashe-d man natürlich erst mal alle Eingabedaten. Und beim Einsetzen in eine MySQL-Query wendet man dann mysql_real_escape_string darauf an.)
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar

                  Lädt...
                  X