DYNAMISHE EINGABE VERGLEICHEN... und ausgeben

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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.. ??
    Last edited by 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!

    Comment


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

      Comment


      • #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()?

        Comment


        • #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'"
          Last edited by bonaverbb; 24-03-2004, 16:55.

          Comment


          • #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.

            Comment


            • #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?

              Comment


              • #8
                asp2php danke, hat geholfen...

                Comment


                • #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!

                  Comment


                  • #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.

                    Comment


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

                      Comment


                      • #12
                        www.phpmyadmin.net

                        Comment


                        • #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?)??
                          Last edited by wahsaga; 25-03-2004, 12:07.

                          Comment


                          • #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
                            Last edited by wahsaga; 25-03-2004, 12:08.

                            Comment


                            • #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.

                              Comment

                              Working...
                              X