Datum wird falsch ausgegeben bzw Jahrezahl zählt hoch

candys

Grünschnabel
Ich habe heute ein bestehendes Script angepasst und die dazu passende Tabelle erzeugt.
Jetzt ist es so dass,das Datum falsch ausgeben oder gar falsch in der Tabelle gespeichert wird.

Ich habe ein formular erstellt mit dem man daten in die Tabelle eintragen kann. Dieses Erfolgt auch Fehlerfrei nun habe ich das Problem das die Jahreszahl immer hochgezählt wird obwohl sie auf 2011 stehen bleiben soll. Hier sieht man den Fehler : http://www.roxtour.bountyhunters.de/roxtour.php

Formular Code

PHP:
<form method="POST" action="formular_send.php">
  <table border="1" width="100%">
    <tr>
      <td width="50%"><div align="center"><strong>Datum</strong></div></td>
      <td width="50%"><input type="text" name="datum" size="26" maxlength="255"></td>
    </tr>
    <tr>
      <td width="50%"><div align="center"><strong>Ort (bitte  oe,ae,ue schreiben, sonst wird die Ausgabe fehlerhaft dargestellt)</strong></div></td>
      <td width="50%"><input type="text" name="ort" size="26" maxlength="255"></td>
    </tr>
    <tr>
      <td width="50%"><div align="center"><strong>Teilnehmer</strong></div></td>
      <td width="50%"><input type="text" name="teilnehmer" size="26" maxlength="255"></td>
    </tr>
  </table>
  <p>&nbsp;</p>
  <p><input type="submit" value="Abschicken" name="B1"><input type="reset" value="Zuruecksetzen" name="B2"></p>
</form>
</body>
</html>

<?php
//Datenbankverbindung einfuegen!
   include('db.php');
//Variablen festlegen
   $id = $_POST['id'];
   $datum = $_POST['datum'];
   $teilnehmer = $_POST['ort'];
   $teilnehmer = $_POST['teilnehmer'];
//wenn eine der Variablen name, pass oder mail leer ist, dann [if]
   if( ($datum=='') OR ($ort=='') OR ($teilnehmer=='') ) {
//Ausgabe der Fehlermeldung
      echo "<b>Error</b>
      Bitte fuelle die Felder Datum, Ort und Teilnehmer aus!<br><br>
       <a href=\"javascript:history.back(-2)\" target=\"_self\">Zurueck</a>";
//wenn alles richtig ist: 
   } else {
//hier steht, was Eintrag ist und was damit gemacht werden soll. Welche Spalten sollen ausgefuellt werden?
      $eintrag = "INSERT INTO `tour` ( `id` , `datum` , `ort` , `teilnehmer` )
      VALUES ('', '.addslashes([$id]).', ''.addslashes([$datum].)', ''.addslashes([$ort])', ''.addslashes([$teilnehmer])')";
//hier wird entschieden, dass $eintrag ueber die Datenbankverbindung eingetragen werden soll.
      $eintragen = mysql_query($eintrag);
//Ausgabe der Erfolgsmeldung
      if($eintragen==true) {
         echo "<b>Eintrag erfolgreich</b>
         Der Eintrag in die Tabelle war erfolgreich.";
      } else {
         echo "Fehler!";
         include('formular.php');
      }
   }
//PHP schließen
?>

  <?php

Formular_send Code

PHP:
<form method="POST" action="formular_send.php">
  <table border="1" width="100%">
    <tr>
      <td width="50%"><div align="center"><strong>Datum</strong></div></td>
      <td width="50%"><input type="text" name="datum" size="26" maxlength="255"></td>
    </tr>
    <tr>
      <td width="50%"><div align="center"><strong>Ort (bitte  oe,ae,ue schreiben, sonst wird die Ausgabe fehlerhaft dargestellt)</strong></div></td>
      <td width="50%"><input type="text" name="ort" size="26" maxlength="255"></td>
    </tr>
    <tr>
      <td width="50%"><div align="center"><strong>Teilnehmer</strong></div></td>
      <td width="50%"><input type="text" name="teilnehmer" size="26" maxlength="255"></td>
    </tr>
  </table>
  <p>&nbsp;</p>
  <p><input type="submit" value="Abschicken" name="B1"><input type="reset" value="Zuruecksetzen" name="B2"></p>
</form>
</body>
</html>

<?php
//Datenbankverbindung einfuegen!
   include('db.php');
//Variablen festlegen
   $id = $_POST['id'];
   $datum = $_POST['datum'];
   $teilnehmer = $_POST['ort'];
   $teilnehmer = $_POST['teilnehmer'];
//wenn eine der Variablen name, pass oder mail leer ist, dann [if]
   if( ($datum=='') OR ($ort=='') OR ($teilnehmer=='') ) {
//Ausgabe der Fehlermeldung
      echo "<b>Error</b>
      Bitte fuelle die Felder Datum, Ort und Teilnehmer aus!<br><br>
       <a href=\"javascript:history.back(-2)\" target=\"_self\">Zurueck</a>";
//wenn alles richtig ist: 
   } else {
//hier steht, was Eintrag ist und was damit gemacht werden soll. Welche Spalten sollen ausgefuellt werden?
      $eintrag = "INSERT INTO `tour` ( `id` , `datum` , `ort` , `teilnehmer` )
      VALUES ('', '.addslashes([$id]).', ''.addslashes([$datum].)', ''.addslashes([$ort])', ''.addslashes([$teilnehmer])')";
//hier wird entschieden, dass $eintrag ueber die Datenbankverbindung eingetragen werden soll.
      $eintragen = mysql_query($eintrag);
//Ausgabe der Erfolgsmeldung
      if($eintragen==true) {
         echo "<b>Eintrag erfolgreich</b>
         Der Eintrag in die Tabelle war erfolgreich.";
      } else {
         echo "Fehler!";
         include('formular.php');
      }
   }
//PHP schließen
?>

Ausgabescript ( das habe ich nur angepasst, leider nicht selber geschrieben)

PHP:
 <?php


/**********************************************************************
 * erstellt am         27.03.2008 20:14:02
 **********************************************************************
 * Klassenname:     
 * Dateiname:         lst.php
 * Funktion:        
 * ********************************************************************
 * Autor:             mainuser
 * Version:            
 * letzte Aenderung:    
 * ********************************************************************
 * Lizenz:            pending
 **********************************************************************/
class lst {
    //Deklarationen von Klassenvariablen
    var $qid        =   null;
    var $dBase      =   null;
    var $dbHost     =   null;
    var $dbUser     =   null;
    var $dbPass     =   null;
    var $dbCon      =   null;
    
 
    /**
    * Description:
    * Konstruktor der Klasse
    * -> Parameter Initialisierung
    * -> Steuerung der Ausgabe
    * @access    public
    * @author   mainuser
    * @changed  27.03.2008
    * @param    
    */
    function lst() {
        global $sess, $std, $DB, $INFO, $data, $lang;
        //Klassenvariablen initialisieren
        $this->dBase    =   "xxx";
        $this->dbHost   =   "xxxx";
        $this->dbUser   =   "xxx";
        $this->dbPass   =   "xxx";
        
        //Verbindung zur SQL DB herstellen
        if(!$this->init())
            die('no con available');
        
        //Ausgabe HTML Header  
        $this->renderHeader();  
        //Ausgabe der Tabelle
        $this->buildOutput();
        //Ausgabe des HTML Foots
        $this->renderFooter();
    }
    /**
    * Description:
    * Initialisierung der SQL Verbindung
    *
    * @access    public
    * @author   mainuser
    * @changed  27.03.2008
    * @param    
    */
    function init() {
        global $sess, $std, $DB, $INFO, $data, $lang;
        
        $dbConnect = mysql_connect($this->dbHost, $this->dbUser, $this->dbPass);
        @mysql_query ("SET NAMES utf8");
        @mysql_query ("SET CHARACTER SET utf8");
        $dbSelect = mysql_select_db($this->dBase, $dbConnect);
        
        if (!$dbConnect || !$dbSelect)
            return false;
        else
            $this->dbCon = $dbConnect;
            
        return true;    
    }
    /**
    * Description:
    * Ausgabe des HTML Header
    *
    * @access    public
    * @author   mainuser
    * @changed  29.03.2008
    * @param    
    */
    function renderHeader() {
        global $sess, $std, $DB, $INFO, $data, $lang;
        echo <<<EOT
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Roster Colts</title>
    
    </head>
    
    <body>
EOT;
    }
    /**
    * Description:
    * Ausgabe des HTML Footer
    *
    * @access    public
    * @author   mainuser
    * @changed  29.03.2008
    * @param    
    */
    function renderFooter() {
        global $sess, $std, $DB, $INFO, $data, $lang;
        
        echo <<<EOT
        </body>
    </html>        
EOT;
    }
    /**
    * Description:
    * Ausgabe der Tabelle
    *
    * @access    public
    * @author   mainuser
    * @changed  27.03.2008
    * @param    
    */
    function buildOutput() {
        global $sess, $std, $DB, $INFO, $data, $lang;
        
        
        $order = " ORDER BY ";
        
        //Sortierung gewünscht?
        if(isset($_GET) && $_GET['Sort'] != ""){
            switch ($_GET['Sort']) {
                    case 'datum':
                        $order .= "datum";
                    break;
                    case 'ort':
                        $order .= "ort";
                        break;

                   case 'teilnehmer':
                        $order .= "teilnehmer";
                        break;
                    /* case 'Steckbrief':
                       $order .= "steckbrief";
                        break;*/
            }
        }
        //ken Parameter übergeben -> Standardsortierung
        if($order == " ORDER BY ")
            $order .= "datum";
            
        $query = "SELECT datum, ort, teilnehmer FROM tour".$order;

        //Daten erfragen
        $this->qid = mysql_query($query, $this->dbCon);

        //HTML Table Head
        echo <<<EOT
        <table border="1" style="border-collapse: collapse">
            <tr>
                <center><th><a href="roxtour.php?Sort=datum"><u>Datum</u></a></th>
                <th><a href="roxtour.php?Sort=ort"><u>Ort</u></a></th>
                <th><a href="roxtour.php?Sort=teilnehmer"><u>Teilnehmer</a></u></th></ce
            </tr>        
EOT;
        //Über alle Zeilen
        if(mysql_num_rows($this->qid) > 0){
            while($row = mysql_fetch_object($this->qid)){
                $lnk = "";
               // if($row->steckbrief != null)
                 // $lnk = "<a href=\"{$row->steckbrief}\">Steckbrief</a>";
                echo <<<EOT
                <tr>
                    <td>{$row->datum}</td>
                    <td>{$row->ort}</td>
                    <td>{$row->teilnehmer}</td>
                    //<td>{$lnk}</td>
                </tr>
                
EOT;
            }
        }
        echo <<<EOT
        </table>    
EOT;
    }
}
//Instanzierung der Klasse 
new lst();
?>

Aufbau der DB
tabelle0acl.png


so jetzt brauche ich hilfe.
warum zählt die Db das Datum bzw die Jahres zahl unwillkürlich hoch?
Wie kann ich das englische Datum in meinem Ausgabescript ins deutsche Format konvertieren.
Bitte Anfänger tauglich erklären
Danke
 

Anhänge

  • tabelle0acl.png
    tabelle0acl.png
    10,3 KB · Aufrufe: 8
Zuletzt bearbeitet:
Hallo,
also so auf den Ersten Blick ist kein Fehler auszumachen das es dazu kommt. Bist du dir sicher das du auch "2010" eingibst? Das einzigste was mich Stört ist das du in dem Query ein paar viele "'" nutzt.
PHP:
$eintrag = "INSERT INTO `tour` ( `id` , `datum` , `ort` , `teilnehmer` )
      VALUES ('', '.addslashes([$id]).', '.addslashes([$datum]).', '.addslashes([$ort]).', '.addslashes([$teilnehmer]).')";
So geht es auch.
Mfg Splater
 
ja ich bin mir sicher dass das Datum richtig eingeben wird. Irgendwie will die Db mich flachsen. Danke für die Verbesserung, wie kann ich denn in dem ausgabescript jetzt das Deutsche Datums format anzeigen lassen?
 
Hallo, wenn die Spalte als DATE-typ Deklariert ist, kannst du das schon in der Abfrage der SQL anpassen.

Bsp.:
PHP:
SELECT DATE_FORMAT(datum,%d.%c.%Y) AS dedatum FROM tour '$order'
Habs nicht getestet.
Kannst ja mal nach "date_format" googlen, da wirst du sicher fündig ;)
mfg Splaty

EDIT: Du musst dann auch die Zeile <td>{$row->datum}</td> anpassen. Also <td>{$row->dedatum}</td>
 
Zuletzt bearbeitet:
Zurück