Datum + Uhrzeit
Kristine
- php
Guten Morgen euch allen,
hmm ich komme an einem Formular nicht weiter. Ich habe hier eine DropDown Liste und möchte wenn der Besucher einen Termin für 20.00 Uhr einträgt und das Datum von Heute, dann soll das auch so geanu in der Datenbank gespeichert werden.
Hier mal mein Forumlar bzw. ein Ausschnitt davon:
<td><p><strong>Datum:</strong></p></td>
<td><p><strong><b>
<select name="tag" class="chatfields">
<option value="01">01.</option>
<option value="02">02.</option>
<option value="03">03.</option>
<option value="04">04.</option>
<option value="05">05.</option>
<option value="06">06.</option>
<option value="07">07.</option>
<option value="08">08.</option>
<option value="09">09.</option>
<option value="10">10.</option>
<option value="11">11.</option>
<option value="12" selected>12.</option>
<option value="13">13.</option>
<option value="14">14.</option>
<option value="15">15.</option>
<option value="16">16.</option>
<option value="17">17.</option>
<option value="18">18.</option>
<option value="19">19.</option>
<option value="20">20.</option>
<option value="21">21.</option>
<option value="22">22.</option>
<option value="23">23.</option>
<option value="24">24.</option>
<option value="25">25.</option>
<option value="26">26.</option>
<option value="27">27.</option>
<option value="28">28.</option>
<option value="29">29.</option>
<option value="30">30.</option>
<option value="31">31.</option>
</select>
<select name="monat" class="chatfields">
<option value="01">Januar</option>
<option value="02">Februar</option>
<option value="03">März</option>
<option value="04">April</option>
<option value="05">Mai</option>
<option value="06">Juni</option>
<option value="07">Juli</option>
<option value="08">August</option>
<option value="09">September</option>
<option value="10" selected>Oktober</option>
<option value="11">November</option>
<option value="12">Dezember</option>
</select>
<select name="jahr" class="chatfields">
<option value="2004" selected> 2004
</option>
<option value="2005"> 2005
</option>
</select>
-
<select name="stunden" class="chatfields">
<option value="00">00</option>
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20" selected>20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
</select>
:
<select name="minuten" class="chatfields">
<option value="00"><b>00</b></option>
<option value="15"><b>15</b></option>
<option value="30"><b>30</b></option>
<option value="45"><b>45</b></option>
</select>
Uhr </b></strong></p></td>
Hmm kann mir jemand helfen wie ich das machen muss? Meine Tabelle in der Datenbank sieht so aus. Ist das dann Richtig?
CREATE TABLE termine (
id int(11) NOT NULL auto_increment,
art varchar(250) NOT NULL default '',
titel varchar(30) NOT NULL default '',
datum date NOT NULL default '0000-00-00',
time time NOT NULL default '00:00:00',
ort varchar(30) NOT NULL default '',
beschreibung varchar(200) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
Die Daten sollen später an einer anderen Stelle dann auch wieder ausgeben werden.
Gruß Kristine
Hallo Kristine,
Ich habe hier eine DropDown Liste und möchte wenn der Besucher einen Termin für 20.00 Uhr einträgt und das Datum von Heute, dann soll das auch so geanu in der Datenbank gespeichert werden.
du definierst
tag
monat
jahr
...
min
aber in der DB stehen
datum
time
damit die ausgewählten Werte in die DB eingetragen werden können, müssen dort auch die entsprechenden Felder (die Zahlen z.B. als INT) vorhanden sein, also statt datum und time tag, monat,jahr,...,min
Die Daten sollen später an einer anderen Stelle dann auch wieder ausgeben werden.
da holst du dir per SELECT die Inhalte der Felder und stellst sie danach zu einem "leserlichen" Datum zusammen
Grüße
Karin
Hello,
die Aufgabe ist nicht ganz so trivial.
Wir haben da verschiedene Probleme zu beachten:
atomisieren würde ich das Datum auch nur, wenn es auch unvollständig benötigt wird, also Du auch zum Beispiel Termine verarbeiten musst, die nur auf "Februar 2005" lauten, also kein Tag, keine Uhrzeit.
Aus den Select-Feldern musst Du Dir also den Datumsstring zusammenbauen. Ich würde dafür den Datentyp Timestamp in der datenbank benutzen. Der ist bei MySQL nicht identisch mit Unix-Timestamp!
20041021084200
wäre so ein Zeitstempel.
Um aus den verschiedenen Select-Feldern diesen Zeitstempel zu bauen, würde ich eine Funktion schreiben, die auch gleich überprüft, ob es das Datum und die Zeit gibt und ggf. eine Fehlermeldung zurückgibt. Die Funktion kann ja ein Array mit Fehlernummer, Fehlermeldung im Klartext und dem umgewandelten Wert zurückgeben. Wenn $ErrorNo dann > 0 ist, darf nicht verarbeitet werden --> Affenformular.
Und das Erstellen der Select-Felder würde ich auch einer Funktion übertragen. Das ist ja unkritischer, wenn man davon ausgeht, dass in der DB nur gültige Daten stehen.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom