PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Show Table Status Probleme Datumsformat


Silent Hunter
07.11.2005, 14:44:27
Hi @ all,

leider hab ich, wie so viele andere :), ein Problem, ich habe sämtliche Suchmaschinen und auch die interne Suche des Forums belästigt, aber keine passende Antwort gefunden. Somit kann ich nur hoffen das vielleicht einer von Euch mir weiterhelfen kann.
Nun zum Problem:
Ich möchte aus einer MYSQL DB die letzte Änderung an einer Tabelle auslesen und in einer php-Seite wiedergeben, das funktioniert auch soweit mit


<?php
include("../mysql/db.php");

@mysql_connect($host, $user, $pass) OR die(mysql_error());
mysql_select_db($db) OR die(mysql_error());
$result=mysql_query("SHOW TABLE STATUS LIKE 'my_table'");
$showtable=mysql_fetch_array($result);
echo $showtable[Update_time];

?>


Es erscheint das Datumsformat: 2005-11-07 10:15:21 .
Ich bekomme es einfach nicht hin das Format in d.m.Y zu ändern. Sämtliche Versuche brachten mir entweder 01.01.1970 oder eine fortlaufende Uhrzeit like 2005-11-07 12:12:22, wobei keine Änderung an der DB stattfand.

Könnte mir vielleicht jemand mit Rat und Tat bei Seite stehen? Es muss keine fertige Lösung sein (was natürlich auch schön wäre), es reicht mir ein Hinweis zum nachlesen mit einigen Beispielen oder sowas.

Vielen Dank schonmal

SH

|Coding
07.11.2005, 15:04:12
Hi!

So klappt es wunderbar:

<?PHP
echo date('d.m.Y H:i:s', strtotime('2005-11-07 10:15:21'));
?>

Ausgabe: 07.11.2005 10:15:21

Silent Hunter
07.11.2005, 15:26:57
Hi |Coding,

vielen Dank für die superschnelle Antwort, aber leider ist es nicht genau das was ich gesucht habe. Mit diesem Befehl würde es für mich bedeuten das ich immer nach einer Aktualisierung der DB das Datum in der PHP Datei manuell angeben muss.
Der Hintergrund ist folgender:
Auf meiner Internetseite soll z.B. angezeigt werden - Aktualisiert am: ... -
1. hab die index.php
2. eine Datei lastupdate.php - die per show table ... die änderung ausliest
und 3. die lastupdate.php wird in die index.php included

, d.h. sobald ich irgendeinen Eintrag einer meiner DB ändere oder einen neuen Datensatz anlege soll mir das aktuelle Datum (des Eintrags) ausgegeben werden, daher auch show table status (was ja soweit auch funktioniert, bis auf die Datumsformatierung).
In meiner DB gibt es auch keinen Dateeintrag (z.B. durch INSERT oder UPDATE). Daher meine Frage ob es evtl möglich ist zumindest das Datum aus show table status zu splitten oder der Gleichen.
Sollte ich mich irgendwie umständlich ausgedrückt haben, bitte ich vielmals um Entschuldigung :).

Thx & Greez SH

|Coding
07.11.2005, 15:42:14
Äh, nä!

Das geht auch automatisch, guckst Du hier:

<?php
include("../mysql/db.php");

@mysql_connect($host, $user, $pass) OR die(mysql_error());
mysql_select_db($db) OR die(mysql_error());
$result=mysql_query("SHOW TABLE STATUS LIKE 'my_table'");
$showtable=mysql_fetch_array($result);
//echo $showtable[Update_time];

// EDIT
echo date('d.m.Y H:i:s', strtotime($showtable[Update_time]));
?>

Silent Hunter
07.11.2005, 15:58:11
Not really - Hab das Problem selber noch lösen können.
Und zwar schaut es so aus:
Die letzte Variante von Dir hab ich natürlich ausprobiert und sie funktioniert, aber - ich habe das script an einer DB mal angewandt, wo die letzte Änderung am 23.10.05 war. Setze ich den Code da ein zeigt es mir das heutige Datum an - wäre ja aber falsch da die letzte Änderung nicht heute sondern am 23.10. war. Ich habe mal auf Google geschi.... :) und msn.com zur Suche beauftragt, hat zwar auch einige Schmerzen in den Fingern verursacht - allerdings hab ich was (durch einen Ansatz von Dir) was im tiefsten amerikanischen Webdschungel gefunden, somit sieht mein Script nun folgendermaßen aus und funktioniert so wie ich es mir vorgestellt habe.
Für alle die das gleiche Problem haben oder hatten, hier nun der Code:


<?php
include("mysql/db.php");

@mysql_connect($host, $user, $pass) OR die(mysql_error());
mysql_select_db($db) OR die(mysql_error());

$result = mysql_fetch_array(mysql_query("SHOW TABLE STATUS LIKE 'my_table'"));
$updated = strtotime($result["Update_time"]);
$last = date("d.m.Y - H:i", $updated);
echo "$last";
?>


Viel Spass damit und dank Dir nochmal rechtherzlich

SH

|Coding
07.11.2005, 16:20:56
//...
echo date('d.m.Y H:i:s', strtotime($showtable[Update_time]));
//...
Das funktioniert bei mir wunderbar, warum sollte es das auch nicht...

Silent Hunter
07.11.2005, 16:33:21
Sry, habs nochmal probiert und siehe da es funktioniert auch mit deiner variante, erst nach dem 2. refresh der seite hat es das datum angezeigt, komisch aber naja, sorry nochmal und danke für die super hilfe