mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Di 23.04.2024 08:21 Benutzername: Passwort: Auto-Login

Thema: [php/mysql] Problem mit time vom 31.07.2005


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> [php/mysql] Problem mit time
Seite: 1, 2  Weiter
Autor Nachricht
beeviZ
Threadersteller

Dabei seit: 30.09.2002
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst So 31.07.2005 16:03
Titel

[php/mysql] Problem mit time

Antworten mit Zitat Zum Seitenanfang

Guten Tag. Wie bereits erwähnt arbeite ich gerade an nem Veranstaltungskalender.

Ich habe bei den Veranstaltungen in der Tabelle ein Feld des Typs time, namens "uhrzeit" angelegt.
Nun gibt es aber Veranstaltungen bei der die Angabe einer Uhrzeit nicht zwingend notwendig ist.

Nun dachte ich mir, das ich einfach bei Veranstaltungen bei denen keine Uhrzeit angegeben ist, als Zeit 99:99:99 in die DB eintrage, und beim Auslesen abfrage
Code:
if($row['uhrzeit'] != '99:99:99')
, und dann erst die Uhrzeit ausgebe.

Aber Pustekuchen. Die scheiß DB will einfach ein 99:99:99 nicht annehmen, und lässt das Feld bei 00:00:00 wenn ich es über mein php-backend eintrage. Mach ichs im phpmyadmin funktionierts auf wundersame art und weise. hää??

Daher nun meine Fragen:
1. Warum ist das so?
2. Wie lös ich das am besten?

Ich könnt beim auslesen eigentlich auch machen
Code:
if($row['uhrzeit'] != '00:00:00')
und hätte das Problem umgangen. Was nur allerdings auch kacke wäre bei Veranstaltungen die um 00:00:00 losgehen. Soll ich jetzt n zusätzliches Feld anlegen uhrzeit_eingetragen: 0/1 ?
Käm mir am logischsten vor, is aber schon wieder voll die nervige Arbeit. Geht das auch irgendwie anders? Vorschläge? Menno!
  View user's profile Private Nachricht senden
phoku

Dabei seit: 29.04.2002
Ort: -
Alter: 43
Geschlecht: -
Verfasst So 31.07.2005 17:13
Titel

Antworten mit Zitat Zum Seitenanfang

Hi,

"99:99:99" sieht mir nach einer arg ungültigen Zeit aus *zwinker* Als welchen Typ hast du das Attribut denn in der Datenbank definiert?

Anderer Tipp: Ich würde backendseitig bei Zeiten immer mit dem UNIX-Timestamp arbeiten. Die kann man viel besser verarbeiten und damit rechnen.

mfg
phoku
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
beeviZ
Threadersteller

Dabei seit: 30.09.2002
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst So 31.07.2005 17:51
Titel

Antworten mit Zitat Zum Seitenanfang

hmm. der feldtyp is wie im topic steht "time".

und ich hab bisher hier überall mit time gearbeitet statt mit UTS', weil bisher hat für alles date und time gereicht was ich gemacht habe. find timestamps immer so unübersichtlich. dann ewig diese umrechnerei, etc ...
  View user's profile Private Nachricht senden
Account gelöscht


Ort: -
Alter: -
Verfasst So 31.07.2005 18:05
Titel

Antworten mit Zitat Zum Seitenanfang

beeviz im anderen thread habe ich dir eine schnittmenge der sql-funktionen zum filtern nach zeiten nähergebracht. jetzt kommste hier schonwieder mit sonem kackproblem *zwinker* (sry) und versuchst das wieder mit wackeligen php-bedinugnen zu lösen. schreib dir saubere sql-statements und du kannst dir den ganzen kram sparen. einfach NUR mal n blick in die DOKU werfen. Lächel
 
beeviZ
Threadersteller

Dabei seit: 30.09.2002
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst So 31.07.2005 18:14
Titel

Antworten mit Zitat Zum Seitenanfang

jetzt haste mir aber schön RTFM durch die blume gesagt Grins

ich weiß eben nich wie ich es lösen soll, daher frag ich ja hier, statt 700 seiten handbuch zu lesen. standardwert beim feldtyp TIME ist halt 00:00:00. sonst könnt ich ebenso einfach das feld uhrzeit leer lassen wenn keine bestimmte uhrzeit eingetragen wurde. aber 00:00:00 als Uhrzeit könnte ebenso heißen das der event, meinetwegen silvester, etc... um 0 Uhr beginnt. Wie soll ich das denn rein in SQL lösen? Da gibts einfach nen konflikt zwischen 0 und nichts quasi.

Das mit dem Filtern von in der Vergangenheit liegenden Veranstaltungen hab ich jetzt 100% so wie ich mir das gedacht hab, und direkt in der sql query gelöst. aber ich such hier ne lösung wie ich ne einfache unterscheidung machen kann zwischen 00:00:00 und "nicht vorhanden".

ich glaube ich machs einfach als varchar(5), da eh keine Funktion vorgesehen ist, bei der man explizit nen time feldtyp bräuchte.
  View user's profile Private Nachricht senden
phoku

Dabei seit: 29.04.2002
Ort: -
Alter: 43
Geschlecht: -
Verfasst So 31.07.2005 18:22
Titel

Antworten mit Zitat Zum Seitenanfang

Können Zeiten denn nicht NULL sein?

anderes Workaround: Brauchst du das denn auf die Sekunde genau? Sonst setzt doch bei gültigen Zeiten die Sekunden auf 00 und bei nicht vorhanden auf 55 oder so
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
beeviZ
Threadersteller

Dabei seit: 30.09.2002
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst So 31.07.2005 19:13
Titel

Antworten mit Zitat Zum Seitenanfang

phoku hat geschrieben:
Können Zeiten denn nicht NULL sein?

anderes Workaround: Brauchst du das denn auf die Sekunde genau? Sonst setzt doch bei gültigen Zeiten die Sekunden auf 00 und bei nicht vorhanden auf 55 oder so


das war ne möglichkeit die ich mir auch schonmal überlegt hatte. wäre denkbar. doch. ganz sauber ist das zwar auch nich, aber ok.
  View user's profile Private Nachricht senden
phoku

Dabei seit: 29.04.2002
Ort: -
Alter: 43
Geschlecht: -
Verfasst So 31.07.2005 19:18
Titel

Antworten mit Zitat Zum Seitenanfang

beeviZ hat geschrieben:
ganz sauber ist das zwar auch nich, aber ok.

für nen Wert, der nicht definiert sein soll NULL zu setzen ist wohl das sauberste, was es gibt; würd ich sagen *zwinker*
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
 
Ähnliche Themen MySQL: time auf NULL setzen
[php] mysql-problem?
mysql-problem
mySQL -> PHP Problem
mysql-php Problem
[PHP/MYSQL] Abfrage - Problem
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.