[MySQL] Wie weise ich dem datenbankfeld zeit (TIME)

asseskiller

Lt. Junior Grade
Registriert
Sep. 2005
Beiträge
447
Hallo also dem Feld datum (DATE) habe ich mit now() das aktuelle Datum zugewiesen mache ich dies allerdings auch mit dem zeitfld dann schreibt er gar keine einträge mehr in die MySQL tabelle

in folgendem Skript hab ichs schonmal gemacht aber wie gesagt da klappt es nicht so wie ich es will. Ohne die Zeitdeklarierung funzt alles einwandfrei

PHP:
<?php
//Auslesen der Einträge
$tabellenname="gaestebuch";
$sql="SELECT absender, betreff, message, datum, zeit FROM $tabellenname WHERE pruef=1 ORDER BY datum DESC ";
$link = mysql_connect("localhost", "dopamin", "meanmachine");
mysql_select_db("phpmyadmin", $link);
$result = mysql_query($sql, $link);
for($i=0;$i<mysql_num_rows($result);$i++)
{
$ergebnis[$i]=mysql_fetch_array($result);
}
?>
<html>
<head>
<style type="text/css">

#tabelle
{
margin-bottom:3px;
}

#zellenhead
{
border-top:solid 1px #FEC631;
border-left:solid 1px #FEC631;
border-right:solid 1px #FEC631;
border-bottom:0;
margin:2px;
text-align:left;
background-color:#A9A3AD;
font-family:Arial, Helvetica, sans-serif;
font-size:12px;
}

#zellenfood
{
border-bottom:solid 1px #FEC631;
border-left:solid 1px #FEC631;
border-right:solid 1px #FEC631;
border-top:0;
margin:2px;
text-align:left;
background-color:#A9A3AD;
font-family:Arial, Helvetica, sans-serif;
font-size:12px;
}
</style>
</head>

<body>
<div align="center"><em><strong><h2>G&auml;stebuch</h2></strong></em></div>
<?php
if($_POST['flag']==1)
{
//Lehrstellen entfernen
$_POST['absender']=trim($_POST['absender']);
$_POST['betreff']=trim($_POST['betreff']);
$_POST['message']=trim($_POST['message']);
//evt. HTML-Codes entfernen
$_POST['absender']=strip_tags($_POST['absender']);
$_POST['betreff']=strip_tags($_POST['betreff']);
$_POST['message']=strip_tags($_POST['message']);
//testen ob felder ausgefüllt sind
if(!$_POST['absender'])
{$fehler="Bitte geben Sie eine Absenderinformation ein. <br>";}
if(!$_POST['betreff'])
{$fehler="Bitte geben Sie eine Betreffinformation ein.<br>";}
if(!$_POST['message'])
{$fehler="Bitte geben Sie eine Nachricht ein.<br>";}
if($_POST['fehler'])
{
$meldung="<h2><font color=red>".$fehler."</font></h2>";
unset($_POST['flag']);
}
else
{
//SQL-String zusammenbauen
$tabellenname="gaestebuch";
$sql="INSERT INTO $tabellenname (absender, betreff, message, datum zeit) values ('".$_POST['absender']."', '".$_POST['betreff']."', '".$_POST['message']."', now(), now())";
//Verbinden zur Datenbank
$link = mysql_connect("localhost", "xxx", "yyyy");
mysql_select_db("phpmyadmin", $link);
mysql_query($sql, $link);
$meldung="<h2><font color=green>Ihre Angaben wurden aufgenommen und werden in Kürze in meinem Gästebuch eingetragen.</h2></font><br><a href=\"index.php\">Weiter</a>";
}
//ausgeben der Meldung
echo $meldung;
}//Ende $_POST['flag']==1
if(!$_POST['flag'])
{
?>
<form action="http://www.xxx.de/?show=gaestebuch.php" method="post">
<input type="hidden" name="page" value="gaestebuch">
<input type="hidden" name="flag" value="1">
<p>Ihr Name:<br>
<input type="text" name="absender" value="<?php echo $_POST['absender']; ?>"></p>
<p>Betreff:<br>
<input type="text" name="betreff" value="<?php echo $_POST['betreff']; ?>"></p>
<p>Ihre Nachricht:<br>
<textarea name="message" cols="45" rows="10">
<?php echo $_POST['message']; ?>
</textarea>
  </p>
<input type="submit" value="eintragen">
</form>
<?php
}
?>
<br><br><div align="center">
<?php
//Ausgeben der Einträge
for($i=0;$i<count($ergebnis);$i++)
{
echo  "<table width=\"400\" height=\"121\" border=\"0\">
  <tr>
    <td width=\"141\" height=\"24\" align=\"left\" valign=\"top\" id=\"zellenhead\"><b>".$ergebnis[$i]['absender']."</b></td>
    <td width=\"243\" align=\"left\" valign=\"top\" id=\"zellenhead\"><strong>".$ergebnis[$i]['betreff']."</strong></td>
  </tr>
  <tr>
    <td align=\"left\" id=\"zellenfood\">".$ergebnis[$i]['datum']."<br>".$ergebnis[$i]['zeit']."</td>
    <td align=\"left\" valign=\"top\" id=\"zellenfood\">".$ergebnis[$i]['message']."</td>
  </tr>
</table>";
}
?></div>
</body>
</html>
 
Hallo.

ich erlediga das immer mit der Funktion time() die die Anzahl Sekunden nach dem 1.1.1970 liefert (UNIX Timestamp)
du kannst dann mit der Funktion strftime(format, timestamp) das Datum so formaiteiren, wie du es möchtest. Der Eintrag wieder als INT gespeichert. Du brauchst dann nicht zwei Spalten um das Datum/Zeit zu speichern, eine genügt

Wie ich das aus der MySQL Homepage heraus lese, wird das die Spalte als "date" bezeichnet.

$sql="INSERT INTO $tabellenname (absender, betreff, message, datum,zeit) values ('".$_POST['absender']."', '".$_POST['betreff']."', '".$_POST['message']."', now(), now())";
Hat noch einen Syntax Fehler: Komma zwischen Datum und Zeit
PHP:
$sql = "INSERT INTO $tabellename
      (absender, betreff, message, datum)
      values
      ('".$_POST['absender']."', '".$_POST['betreff']."', '".$_POST['message']."', time());
 
Zuletzt bearbeitet:
Zurück
Oben