DYNAMISHE EINGABE VERGLEICHEN... und ausgeben

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

  • DYNAMISHE EINGABE VERGLEICHEN... und ausgeben

    Hi alle, ich habe folgendes problem:
    ich möchte dass der user ein datum angibt.. und dieses datum soll dann benutzt werden um server (und deren eigenschaften) anzuzeigen, die in der datenbank mit dem datum übereinstimmen mit dem was der user eingegeben hatte. 1) nach drücken des SUBMIT buttons wird eine leere seite angezeigt. und 2. wie referrier ich ein datum zu bestimmten objekten in einer datenbank?

    folgendes habe ich mir ausgedacht:

    PHP-Code:
    if ($type == 'dynamicDate') {
        echo "<B>DYNAMIC DATE!<br><br>";
        ?>
        <FORM  action="index.php">
        Enter Date:
        <input date="enter date" type="text" id="dateEnter""><br><br>
        <input type="submit" value="get list!"><br>
        </FORM><br><br>
        <?
        $where = "WHERE Maildate = '$dateEntered'";
        $dateEntered = date("dateEnter");
    }
    $where is ein variable was eine einschränkung in dem SELECT statement definiert

    also dynamicdate steht als option im menu (man kann auch alle server anzeigen.. dies funktioniert). wenn der user den submit button drückt soll das datum also ausgegeben werden.

    folgendes ist wenn der user die server sehen will, die das datum von gestern tragen:

    PHP-Code:
    $dayBefore date("Y-m-d H:i:s",mktime(9,0,0,date('m'),date('d')-1,date('Y'))); 
    wie kann ich sowas dynamish vergleichen? hat jemand eine bessere idee.. ??
    Zuletzt geändert von bonaverbb; 24.03.2004, 16:32.

  • #2
    nur kurz drüber geschaut:

    PHP-Code:
     $dateEntered date("dateEnter"); 
    guck dir mal im Manual die fkt date() an!

    Kommentar


    • #3
      Tobiaz: so habe ich es auch gemacht (s.o.)... schon vom handbuch geleitet.

      Kommentar


      • #4
        scheinst nicht ganz zu verstehen was ich meine. im manual steht was davon, dass als erster parameter die formatierung angegeben werden soll. willst du das aktuelle datum als "dateEntered" formatiert haben? wofür bräuchtest du dann date()?

        Kommentar


        • #5
          dateEnter = '2004-3-20' (vom html form)

          das ist was der user eingibt (ohne zeitangabe)... dann:

          PHP-Code:
          $dateEntered date("dateEnter"); 
          die daten die der user eingibt in variable $dateEntered packen...

          dann:

          PHP-Code:
          echo "dateEntered"
          (im php handbook:

          PHP-Code:
          $today date("Ymd");                           // 20010310 
          )

          und wenn ich nun nicht echo'n will, sondern das datum was eingegeben wird nutzen um daten (mit gleichem datum) aus der datenbank anzeigen zu lassen?

          bis jetzt habe ich:

          PHP-Code:
          $where "WHERE Maildate = '$dateEntered'"
          aber dies funktioniert nicht! oda ist es :

          PHP-Code:
          $dateEntered date("Ymd"); 
          und dann...

          PHP-Code:
          $where "WHERE Maildate = '$dateEntered'"
          Zuletzt geändert von bonaverbb; 24.03.2004, 16:55.

          Kommentar


          • #6
            hmm, ein paar grundlagen in PHP wären nicht schlecht. In PHP haben variablen grundsäzulich ein $ vorangestellt. Daran solltest du dich schon mal gewöhnen.

            Kommentar


            • #7
              wo ist @goth, hier ist wieder so 'n Fall für dich

              Nun zu dir @bona
              date() hat 2 Argumente. 1. Arg ist ein String, der das Ausgabeformat
              bestimmen soll, das 2. Arg. ist optional, wird nicht angegeben, dann wird
              die aktuelle Zeit genommen. Liest nochmals . Alles klar?

              Kommentar


              • #8
                asp2php danke, hat geholfen...

                Kommentar


                • #9
                  jetzt akzeptiert er das datum aber bringt keinen output: bzw keine daten werden ausgegeben...

                  folgendes habe ich jetzt:



                  PHP-Code:
                  $dateEntered $HTTP_GET_VARS['dateEnter']; 
                  dateEnter ist der wert den der user im field eintippt.. dann...

                  PHP-Code:
                  $timeStamp = strtotime($dateEntered);
                  $dayOne = date("Y-m-d", $timeStamp)-86400;
                  $dayTwo = date("Y-m-d", $timeStamp);

                  if ($type == 'dynamicDate') {
                      echo "<B>DYNAMIC DATE!<br><br>";
                      ?>
                      <FORM  action="index.php">
                      Enter Date:
                      <input date="enter date" type="text" id="dateEnter""><br><br>
                      <input type="hidden" name="main" value="results"><input type="hidden" name="type" value="dynamicDate">
                      <input type="submit" value="get list!"><br>
                      </FORM><br><br>
                      <?
                      $where = "WHERE Maildate >=" . $dayOne . "and Maildate <" . $dayTwo . "";
                  hier nimmt variable $timeStamp den wert von $dateEntered
                  ...
                  die select statement:

                  PHP-Code:
                  $sqlQuery "SELECT id,Server,Result,CONVERT(varchar,Maildate,120),ProblemType,Description FROM BackupResults $where ORDER BY Server, Maildate DESC"
                  $where definiert nun die zeitspanne wozwischen alle server informationen ausgegeben werden. die headers werden ausgegeben.. aber keine server daten. weiss eine warum? vielen dank im vorraus!

                  Kommentar


                  • #10
                    Original geschrieben von bonaverbb
                    PHP-Code:
                    $timeStamp strtotime($dateEntered);
                    $dayOne date("Y-m-d"$timeStamp)-86400;
                    $dayTwo date("Y-m-d"$timeStamp); 
                    die 86400 sekunden möchtest du natürlich vom wert von $timeStamp abziehen, und erst danach danach diesen wert mit date formatieren:
                    PHP-Code:
                    $dayOne date("Y-m-d"$timeStamp-86400); 

                    kontrollausgabe echo $sqlQuery; nach der definition dieses strings ergibt dann was?
                    dieser string in phpmyadmin kopiert und ausgeführt ergibt was?
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      hey wahsaga, vielen dank für die hilfe....
                      wo kriege ich phpmyadmin her? was ist das fürn programm?

                      Kommentar


                      • #12
                        www.phpmyadmin.net

                        Kommentar


                        • #13
                          also... ich bekomme folgende fehlermeldung:

                          PHP-Code:
                          No results availablequery not executable
                          [db_errormessage="DB Error: syntax error" code=-2
                          mode
                          =return level=notice prefix="" info="SELECT id,Server,Result,CONVERT
                          (varchar,Maildate,120),ProblemType,Description FROM
                          BackupResults WHERE Maildate >= 2004-03-24 09:00 AND
                          Maildate < 2004-03-25 09:00 ORDER BY Server, Maildate DESC 
                          [nativecode=170 - Line 1: Incorrect syntax near '09'.]"

                          und der verantwortliche code dafür ist:

                          PHP-Code:
                          $where "WHERE Maildate >= " .date("Y-m-d 09:00"
                          $timeStamp-86400). " AND Maildate < " .date("Y-m-d 09:00"$timeStamp). ""
                          warum akzeptiert er die zeitangabe nicht? (so ist ein datum doch formatiert, oder?)??
                          Zuletzt geändert von wahsaga; 25.03.2004, 12:07.

                          Kommentar


                          • #14
                            Ähm ich hab' nicht viel Ahnung von MySQL aber:

                            ist das auch das Format, welches von deiner DB akzeptiert wird, wenn ja
                            packt mal die Datumsangabe in ' rein, etwa:

                            PHP-Code:
                            $where "WHERE Maildate >='" .date("Y-m-d 09:00",
                            $timeStamp-86400). "' AND Maildate < '" .date("Y-m-d 09:00"$timeStamp). "'"
                            vielleicht hilfs
                            Zuletzt geändert von wahsaga; 25.03.2004, 12:08.

                            Kommentar


                            • #15
                              Original geschrieben von bonaverbb
                              "SELECT id,Server,Result,CONVERT(varchar,Maildate,120),ProblemType,Description FROM BackupResults WHERE Maildate >= 2004-03-24 09:00 AND Maildate < 2004-03-25 09:00 ORDER BY Server, Maildate DESC"
                              asp2php hat natürlich recht - das man die fett markierten teile nicht einfach so da rein klatschen kann, sondern als string kennzeichnen muss, sollte doch wohl logisch sein.
                              I don't believe in rebirth. Actually, I never did in my whole lives.

                              Kommentar

                              Lädt...
                              X