hilfdirselbst.ch
Facebook Twitter gamper-media
Tipps und Tricks zu Adobe GoLive von Dirk Levy, GoLive FAQ's von Randolph Sterna
eddie
Beiträge: 26
17. Mär 2004, 15:08
Beitrag #1 von 14
Bewertung:
(1863 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

timestamp formatierung im gl


hallo zusammen

stehe vor folgendem problem:

habe in meiner datenbank ein timestamp feld angelegt, damit bei einem neuen gästebuch eintrag autom. das aktuelle datum mit uhrzeit angegeben wird.
in der db wird der timestamp ja so "YYYYMMDDHHmmSS" gespeichert, dort kann ich diesen soviel ich weiss auch nicht anders formatieren.

deshalb hab ich versucht die anpassung im golive vorzunehmen.
wenn ich nun bei dynamische zuordnung die inhaltsquelle (guestbook) und das feld (datum) angebe, stellt es mir das aktuelle datum mit uhrzeit dar, aber natülich noch so wie es in der db formatiert ist "20040317143020":

<tr>
<td colspan="2" bgcolor="#cccccc" width="400"><span class="txnomalschwarz"><?php echo $guestbook->Value("datum")?></span></td>
</tr>


wie ich es auch versuche, immer wird der datums-inhalt fehlerhaft dargestellt. z.b. geb ich im golive unter dynamische zuordnungen zusätzlich den php filter "datum und zeitformat" ein:

<tr>
<td colspan="2" bgcolor="#cccccc" width="400"><span class="txnomalschwarz"><?php echo FormatDateTime($guestbook->Value("datum"), "Y/m/d H:i:s")?></span></td>
</tr>

so erscheint aber bei jedem gästebuch-eintrag immer das selbe, falsche datum: "2038/01/19 04:14:07".


wäre für hilfe sehr dankbar.
gruss
ed Top
 
X
SabineP  M 
Beiträge: 7586
17. Mär 2004, 16:10
Beitrag #2 von 14
Beitrag ID: #75500
Bewertung:
(1863 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

timestamp formatierung im gl


Hallo eddi, normalerweise kann man das Datum bereits im select-Statement formatiert werden, also mit MYSQL-Syntax.
Wie sieht denn Dein select-Statement jetzt aus?

Beispiel eines select-Statements für eine Tabelle mit dem Namen tabellenname und dem Spaltenname datum:

("SELECT DATE_FORMAT(datum,'%d.%m.%Y') FROM tabellenname")

Gruß Sabine
als Antwort auf: [#75485] Top
 
eddie
Beiträge: 26
18. Mär 2004, 07:50
Beitrag #3 von 14
Beitrag ID: #75573
Bewertung:
(1863 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

timestamp formatierung im gl


hallo sabine

danke für deine antwort!

ich wäre froh wenn du mir nochmals helfen könntest, ich glaube ich bin zu blöd....

ich arbeite mit phpMyAdmin.
wenn ich das richtig verstanden habe sieht mein select-statement so aus:
SQL-Befehl : [Bearbeiten] [SQL erklären] [PHP-Code erzeugen
SELECT *
FROM `guestbook`  LIMIT 0 , 30

jetzt hab ich folgendes eingegeben:

SQL-Befehl : [ Bearbeiten ] [ SQL erklären ] [ PHP-Code erzeugen
SELECT DATE_FORMAT (datum ,'%d.%m.%Y' )
FROM guestbook  LIMIT 0,30

wenn ich diese eingabe bestätige erscheint auch eine tabelle die mir die daten richtig anzeigt:

DATE_FORMAT(datum, '%d.%m.%Y)
15.03.2004
16.03.2004
17.03.2004
etc...

wenn ich jetzt aber in meiner tabelle in der datenbank weiter klicke z.b. auf anzeigen, erscheint bei den gästebuch einträgen bei datum immer noch das falsche: "20040316162600".
und mein select-statement, dass ich vorher eingegeben habe ist weg, es steht also wieder:
SELECT *
FROM `guestbook`  LIMIT 0 , 30

gruss
ed


als Antwort auf: [#75485] Top
 
3-4tel
Beiträge: 27
18. Mär 2004, 08:35
Beitrag #4 von 14
Beitrag ID: #75578
Bewertung:
(1863 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

timestamp formatierung im gl


Hallo Eddie,
ich verwende GoLive6 ohne die GL-dynamischen Sachen. Dein Datumsproblem ist wohl nur eine Formatierungsfrage. Du lässt den Timestamp von MYSQL eintragen. Um ihn wieder anzuzeigen musst du in per PHP wieder umwandeln. <?php echo date ("j.n.Y",$deineTimestampVariableausderTabelle); ?>.
Wenn du aber dein Eintragsformular als .php Datei benutzt, dann übergebe doch den von PHP erzeugten Timestamp gleich als verstecktes Feld (im Formular schon umgewandelt) als String. Das Datum wird ja nicht mehr geändert und nur zur Anzeige benötigt.
als Antwort auf: [#75485] Top
 
SabineP  M 
Beiträge: 7586
18. Mär 2004, 09:56
Beitrag #5 von 14
Beitrag ID: #75600
Bewertung:
(1863 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

timestamp formatierung im gl


@3-4, schau Dir mal die umfangreichen Datums- und Zeitfunktionen von Mysql an:
http://www.mysql.de/..._time_functions.html
insbesondere auch DATE_FORMAT.
So kann man das Datum formatieren ohne PHP, MYSQL kann das sehr gut.
Da sich in der MYSQL-Tabelle ein Datumsfeld befindet mit dem Datentyp Timestamp, braucht Eddi kein Datum per Formular zu senden.
Dieses Feld füllt MYSQL selbständig mit dem aktuellen Timestamp aus beim Anlegen eines neuen Datensatzes.
http://www.mysql.de/doc/de/DATETIME.html

@Eddi, ich verwende auch nicht den dynamischen Assistenten von Golive, deshalb wirds schwierig mit der Hilfe.
Deine eigene Select-Anweisung hat ja das Datum aus dem TIMESTAMP-Format der Spalte formatiert, so wie Du es sehen möchtest.
Jetzt mußt Du nur noch die richtige select-Anweisung in Deinem Gästebuch-Script finden und DATE_FORMAT(datum,'%d.%m.%Y') einfügen.

Falls in Deinem php-Script select * steht, bedeutet das, daß alle Spalten ausgewählt werden,
dann mußt Du den Stern duch die einzelnen Spaltennamen ersetzen, in der gleichen Reihenfolge wie sie in der Datenbanktabelle stehen.

Beispiel:
SELECT ID, Name, Beitrag, DATE_FORMAT(datum,'%d.%m.%Y') FROM guestbook

Noch zu phpmyadmin:
Deine eigene Select-Anweisung hat Dir das Datum formatiert, weil Du die Formatierung selbst angegeben hattest.
Wenn Du mit PHP-Admin klickst wird das Timestampformat (20040316162600) angezeigt, weil das Datum so in der Datenbank gespeichert ist.

Gruß Sabine
als Antwort auf: [#75485]
(Dieser Beitrag wurde von SabineP am 18. Mär 2004, 10:09 geändert)
Top
 
eddie
Beiträge: 26
18. Mär 2004, 10:12
Beitrag #6 von 14
Beitrag ID: #75604
Bewertung:
(1863 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

timestamp formatierung im gl


vielen dank für eure hilfe!!

ich versuch mal ob ich's hinkriege....

gruss
ed
als Antwort auf: [#75485] Top
 
eddie
Beiträge: 26
22. Mär 2004, 11:17
Beitrag #7 von 14
Beitrag ID: #76187
Bewertung:
(1863 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

timestamp formatierung im gl


es haut leider noch nicht ganz hin.
ich gebe folgende select-anweisung ein:
SELECT ID, name, email, homepage, eintrag, DATE_FORMAT(datum,'%d.%m.%Y %H:%i') FROM guestbook order by ID desc

und erhalten dann diese fehlermeldung:
Warnung: Der Feldname DATE_FORMAT(datum,'%d.%m.%Y %H:%i') enthält ein oder mehrere ungültige Zeichen. Dies kann bei Verwendung in einer Datenbankabfrage oder -aktualisierung zu Schwierigkeiten bei der Fehlerermittlung führen.

das datum wird gar nicht mehr angezeigt.
kann mir jemand sagen wo der fehler liegt?
danke und gruss
ed
als Antwort auf: [#75485] Top
 
SabineP  M 
Beiträge: 7586
22. Mär 2004, 11:34
Beitrag #8 von 14
Beitrag ID: #76192
Bewertung:
(1863 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

timestamp formatierung im gl


Hallo Eddi, Deine Select-Anweisung ist vollkommen richtig.
Golive kann offenbar mit MYSQL-Syntax nicht richtig umgehen.

Hier gibts noch eine Anleitung:
http://www.hilfdirselbst.ch/...amp;idgtx_texts_1=76
Habe ich allerdings nicht durchgelesen, aber vielleicht steht ein Hinweis zum Timestamp drin.

Gruß Sabine
als Antwort auf: [#75485] Top
 
eddie
Beiträge: 26
22. Mär 2004, 13:11
Beitrag #9 von 14
Beitrag ID: #76214
Bewertung:
(1863 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

timestamp formatierung im gl


danke für deine hilfe sabine!

die anleitung kannte ich schon.

jetzt funktioniert es aber!!!
ich hatte beim datums-feld noch das "alte" feld drin, dann hab ich das neue "DATE_FORMAT...." zugewiesen. er gibt mir zwar immer noch die selbe fehlermeldung an, ist also wohl nicht ganz sauber, aber im browser wird es korrekt dargestellt, cool!

gruss
ed
als Antwort auf: [#75485] Top
 
eddie
Beiträge: 26
24. Mär 2004, 10:31
Beitrag #10 von 14
Beitrag ID: #76591
Bewertung:
(1863 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

timestamp formatierung im gl


es ist noch eine weitere frage aufgetaucht:

ich habe eine zelle im gl beim dynamischen inhalt als [Eintragsnummer] definiert
(<?php echo $guestbook->AbsolutePosition()?>),
diese nummeriert also die Einträge automatisch als 1.eintrag, 2.eintrag, 3.eintrag, usw.....
das funktioniert auch ganz gut.
wenn ich nun aber die einträge anhand der ID absteigen sortiere, dass also der letzte eintrag zuerst erscheint, wird dieser als 1.eintrag angegeben (und nicht als letzter, z.b. 16.eintrag).
die ID ist also absteigend, aber die Eintagsnummer bleibt aufsteigend.

hab ich die möglichkeit das bei meinem select-befehl zu ändern, also bei
"order by ID desc" etwas entsprechendes einzugeben?
oder geht das nur wenn ich in der datenbank ein zusätzliches feld definiere?

SELECT ID, name, email, homepage, eintrag, DATE_FORMAT(datum,'%d.%m.%Y %H:%i') FROM guestbook order by ID desc


gruss
ed
als Antwort auf: [#75485] Top
 
SabineP  M 
Beiträge: 7586
24. Mär 2004, 12:57
Beitrag #11 von 14
Beitrag ID: #76628
Bewertung:
(1863 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

timestamp formatierung im gl


Hallo Eddi,

mit
order by ID desc
werden die Einträge absteigend sortiert.

mit
order by ID asc
werden die Einträge aufsteigend sortiert.

Die Reihenfolge der Einträge brauchst Du also nicht zu ändern.
Versuche mal die ID als laufende Nummer anzuzeigen,
anstatt mit php AbsolutePosition() eine laufende Nummer zu generieren.

Gruß Sabine
als Antwort auf: [#75485] Top
 
eddie
Beiträge: 26
24. Mär 2004, 14:22
Beitrag #12 von 14
Beitrag ID: #76646
Bewertung:
(1863 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

timestamp formatierung im gl


sabine, ich sage einmal mehr danke!

es ist schon fast perfekt.

<?php echo number_format($guestbook->Value("ID"), 0, ".", ",")?>

nur fast weil:
was mach ich wenn ich einzelne einträge in meiner datenbank lösche, z.b. eintrag 10 und 12?
diese ID's "fehlen" ja dann, die tatsächlichen einträge werden ja in dem fall so nummeriert 8., 9., 11., 13., 14., .....

ich habe nirgendwo was gefunden, wie ich die ID (int) zurücksetzen kann, ist sowas überhaupt möglich?

gruss
ed
als Antwort auf: [#75485] Top
 
oesi50  A  S
Beiträge: 2315
24. Mär 2004, 15:23
Beitrag #13 von 14
Beitrag ID: #76669
Bewertung:
(1863 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

timestamp formatierung im gl


hi eddie,
Du müßtest vor Deiner eigentlichen Abfrage noch diese hier ausführen:

SELECT @nr:=count(*) FROM guestbook;

und dann Deine Abfrage so ändern:

SELECT @nr:=@nr-1, name, email, homepage, eintrag, DATE_FORMAT(datum,'%d.%m.%Y %H:%i') FROM guestbook order by ID desc

Ich weiß allerdings nicht, ob das in GoLive so einfach machbar ist.

Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)
als Antwort auf: [#75485] Top
 
eddie
Beiträge: 26
25. Mär 2004, 08:57
Beitrag #14 von 14
Beitrag ID: #76759
Bewertung:
(1863 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

timestamp formatierung im gl


danke oesi.
funktioniert leider (mit golive) nicht. ich weiss nicht, ob's am programm liegt. die einträge werden so alle mit "0" nummeriert.

vielleicht hat ja jemand noch ne andere lösung parat?

gruss
alex
als Antwort auf: [#75485] Top
 
X