Datum von einem Formularfeld umwandeln dann in die DB

Datum von einem Formularfeld umwandeln dann in die DB

am 17.01.2005 14:20:43 von klippo

Hallo Leute,

ich bin ein absoluter php neuling. Bekomme zwar das ein oder andere hin,
aber ich habe da ein problem mit meinem Datum.

Für mein Eventkalender bekomme ich daten von Formularen.
Darunter ist auch ein Feld für datum, nun habe ich in meiner DB die Spalte
datum (ist ein Timestamp (8) Spalte).

Ich bekomme das mit der Umwandlung von zB. 20.1.2005 in 20050120 nicht hin.
Das gleiche Problem habe ich natürlich auch anders herum.

Vieleicht ist ja hier jemand bei, der mir PHP Neuling helfen kann.

Wäre echt Super Nett.

Danke schon einmal im vorraus.

Re: Datum von einem Formularfeld umwandeln dann in die DB

am 17.01.2005 14:29:09 von Michael Fesser

.oO(News.Individual.DE)

>Für mein Eventkalender bekomme ich daten von Formularen.
>Darunter ist auch ein Feld für datum, nun habe ich in meiner DB die Spalte
>datum (ist ein Timestamp (8) Spalte).
>
>Ich bekomme das mit der Umwandlung von zB. 20.1.2005 in 20050120 nicht hin.

Mit sscanf() oder explode() in die einzelnen Bestandteile zerlegen, ggf.
mit checkdate() überprüfen, mit sprintf() das gewünschte Format (sollte
'YYYY-MM-DD' sein) erzeugen und in die Datenbank schaufeln. sprintf()
kann sich dann auch gleich um das Einfügen führender Nullen kümmern.

>Das gleiche Problem habe ich natürlich auch anders herum.

Schau ins MySQL-Handbuch nach Datums- und Zeitfunktionen. DATE_FORMAT()
wird Dir gefallen.

Micha

Re: Datum von einem Formularfeld umwandeln dann in die DB

am 17.01.2005 15:16:13 von klippo

Ich habe das mal so versucht gehabt, aber ich weis da einfach nicht weiter.
Wenn das so überhaupt richtig ist.

1.)
$myYear = substr($datum, 0, 4);
$myMonth = substr($datum, 4, 2);
$myDay = substr($datum, 6, 2);

$delimiter = ".";

$datum = $myDay.$delimiter.$myMonth.$delimiter.$myYear;

---------------------------------------------------------

Dann hatte ich noch dies versucht:

2.)
$jahr = substr(0, 4, $datum);
$monat = substr(4, 2, $datum);
$tag = substr(6, 2, $datum);

$stunde = substr(8, 2, $datum);
$minute = substr(10, 2, $datum);
$sekunde = substr(12, 2, $datum);

//hier wandel ich das in einem Unix-Zeitstempel um:

$timestamp = mktime($stunde, $minute, $sekunde,
$monat, $tag, $jahr);

//Und so habe ich einen Unix-Zeitstempel.
?>


Nur weis ich hier dann nicht weiter.

Ich muss das ganze dann ja an die richtige stelle in meinem PHP Script
einbinden.
Aber wo, wenn das obige richtig ist?

Re: Datum von einem Formularfeld umwandeln dann in die DB

am 19.01.2005 10:07:15 von Jochen Califice

Hi!

Also zu erst: ändern mal Deinen Namen. ich denke Deine Eltern haben Dich
nicht auf den Namen "News.Individual.DE" getauft. So wie es im Moment ist,
wirst Du deswegen ständig (zu recht) angemacht und es werden Dir nicht
unbedingt alle freundlich gesinnt sein...

Zu Deinem Prob:

Du hast z.B. drei Felder im Formular: datum_tag, datum_monat, datum_jahr.
Der User gibt dann z.B. das heutige Datum ein (19.01.2005). Wenn er auf
"absenden" klickt, werden die Formulardaten an das angegebene Script
übergeben. Ich nenne dies nun mal abwicklung.php
Wie Du hoffentlich bereits weisst, liegen die eingegebenen Daten nun als
Variablenwerte vor. Die Variablen sind benannt nach den Namen des
Eingabefeldes, d.h. Du hast nun $datum_tag, $datum_monat und $datum_jahr.
Um das nun in Dein gewünschtes Format zu bringen (20050119) musst Du diese
variablen nun "verbinden". Das gehört zu den Grundlagen von PHP und Du
solltest es unbedingt noch mal nachlesen:

$DatumZurUebergabe=$datum_jahr."".$datum_monat."".$datum_tag ;

Wenn Du nun in der DB ein anderes Datumsformat hast, z.B. JJJJ-MM-TT (so
kenne ich es), kannst Du in den Anführungszeichen einen Trenner einfügen,
damit es passt. Dieser ist, wei man am Format unschwer erkennt der
Bindestrich:

$DatumZurUebergabe=$datum_jahr."-".$datum_monat."-".$datum_t ag;

Somit hätte $DatumZurUebergabe bei unserem Beispiel den Wert 2005-01-19 und
Du kannst diesen in die DB übertragen.

Anders herum musst Du mit explode() arbeiten. Damit zerlegst Du Strings
anhand eines Trennzeichens in ein Array. Ich bete darum dass Du weisst was
Trennzeichen und Arrays sind... :)

$ArrayDatum=explode("-", $DatumAusDatenbank);

In unserem Beispiel hättest Du nun ein eindimensionales Array $ArrayDatum
mit den folgenden Werten:

$ArrayDatum[0]="2005"
$ArrayDatum[1]="01"
$ArrayDatum[2]="19"

Damit kannst Du dann wieder aerbeiten.

Ich empfehle Dir im Zusammenhang mit dem hier geschriebenen folgende Themen,
die Du mal googeln solltest oder sonst wo nachlesen:

- Arrays
- Zeichenkettenfunktionen, insbesondere explode()
- $PHP_SELF
- MySQL Datum

Naja es gibt noch ein paar mehr relevante Themen, aber diese hier sollte Dir
schon ein ganzes Stück weiter helfen. Wenn Du Fargen hast, melde Dich
einfach wieder hier in der NG :)

Liebe Grüsse

Jochen Califice





"News.Individual.DE" schrieb

> Ich habe das mal so versucht gehabt, aber ich weis da einfach nicht
weiter.
> Wenn das so überhaupt richtig ist.
>
> 1.)
> $myYear = substr($datum, 0, 4);
> $myMonth = substr($datum, 4, 2);
> $myDay = substr($datum, 6, 2);
>
> $delimiter = ".";
>
> $datum = $myDay.$delimiter.$myMonth.$delimiter.$myYear;
>
> ---------------------------------------------------------
>
> Dann hatte ich noch dies versucht:
>
> 2.)
> > $jahr = substr(0, 4, $datum);
> $monat = substr(4, 2, $datum);
> $tag = substr(6, 2, $datum);
>
> $stunde = substr(8, 2, $datum);
> $minute = substr(10, 2, $datum);
> $sekunde = substr(12, 2, $datum);
>
> //hier wandel ich das in einem Unix-Zeitstempel um:
>
> $timestamp = mktime($stunde, $minute, $sekunde,
> $monat, $tag, $jahr);
>
> //Und so habe ich einen Unix-Zeitstempel.
> ?>
>
>
> Nur weis ich hier dann nicht weiter.
>
> Ich muss das ganze dann ja an die richtige stelle in meinem PHP Script
> einbinden.
> Aber wo, wenn das obige richtig ist?

Re: Datum von einem Formularfeld umwandeln dann in die DB

am 19.01.2005 17:49:02 von klippo

Hallo Jochen Califice,

erst einmal vielen Dank für deine Hilfe.

Habe das Problem mittlerweile schon gelöst.
Man kann ja Lesen und Ausprobieren...dabei kann man ja nicht wirklich etwas
Kaputt machen.

Also hiermit Schreibe ich die daten in die DB:

$datum = ("$tag.$zone.$jahr");
$datum2 = ("$tag2.$monat2.$jahr2");
// $stamp = mktime (0, 0, 0, $zone, $tag, $jahr);
$today1 = date("n");
$today2 = date("j");
$today3 = date("Y");
$todaya = ("$today1$today2$today3") ;
$stamp = mktime (0, 0, 0, $zone, $tag, $jahr);
mysql_query("INSERT INTO


Hiermit lasse ich mir die Heutigen Events anzeigen:

$today1 = date("n");
$today2 = date("j");
$today3 = date("Y");
$todaya = ("$today1$today2$today3") ;
$stamp = mktime (0, 0, 0, $today1, $today2, $today3);
// $stamp = mktime (0, 0, 0, 1, 19, 2005);
$query = "SELECT * FROM kalender_daten WHERE stamp = '$stamp' ";


Hiermit hole ich mir die Daten aus der DB, die gewünscht sind:

ja gut, das brauche ich hier nicht noch zeigen. Das ist ja klar soweit.

Der Weg mag vieleicht nicht unbedingt der beste oder und der einfachste zu
sein, aber so komme ich damit klar und entspricht meiner vorstellung.

PS.
Ich habe mir zwei Bücher zu dem Thema MySQL und PHP gekauft, leider aber
sind beide nicht so wirklich toll zum Lernen.
Manche Sachen kann man schon daraus erlernen, aber die Bücher könnten besser
sein.
Ein Kumpel von mir hat mir jetzt gesgat, das ich mir das Buch "Grundlagen
und Profiwissen PHP4" vom Autor "Jörg Krause".

Dies werde ich mir noch mal zulegen, in der Hoffung, das ich damit besser
Lernen kann.
Ist leider immer blöde, wenn man niemanden in unmittelbarer Nähe hat, der
mal eben schnell, wenn nötig hilfe leisten kann.

Auge um Auge ist das schon manchmal besser.

Das mit meinem Namen, naja meine Mamma war nicht dran schuld....smile...

War natürlich mein fehler.

MFG
Karsten

Re: Datum von einem Formularfeld umwandeln dann in die DB

am 20.01.2005 11:31:34 von Jochen Califice

"Karsten" schrieb

> erst einmal vielen Dank für deine Hilfe.

gerne :)


> Habe das Problem mittlerweile schon gelöst.
> Man kann ja Lesen und Ausprobieren...dabei kann man ja nicht wirklich
etwas
> Kaputt machen.

Hrhr wenn man vorher immer eine Sicherung macht bestimmt nicht :)


> Also hiermit Schreibe ich die daten in die DB:
> ....

> Hiermit lasse ich mir die Heutigen Events anzeigen:
> ....

:)

> Hiermit hole ich mir die Daten aus der DB, die gewünscht sind:
> ja gut, das brauche ich hier nicht noch zeigen. Das ist ja klar soweit.
>
> Der Weg mag vieleicht nicht unbedingt der beste oder und der einfachste zu
> sein, aber so komme ich damit klar und entspricht meiner vorstellung.

Klar kann man es immer anders oder auch besser machen. Aber ich finde gute
Code ist es wenn man nach drei Monaten rein schaut und noch versteht was man
da gemacht hat :)
Außerdem... es funktioniert und das ist das Wichtigste :)


> Ich habe mir zwei Bücher zu dem Thema MySQL und PHP gekauft, leider aber
> sind beide nicht so wirklich toll zum Lernen.
> Manche Sachen kann man schon daraus erlernen, aber die Bücher könnten
besser
> sein.
> Ein Kumpel von mir hat mir jetzt gesgat, das ich mir das Buch "Grundlagen
> und Profiwissen PHP4" vom Autor "Jörg Krause".
> Dies werde ich mir noch mal zulegen, in der Hoffung, das ich damit besser
> Lernen kann.

Den Krause hab ich auch. Alledings schlage ich dort mehr nach als dass ich
wirklich draus lerne. In erster Linie googel ich und wenn nix mehr hilft
schreibe ich hier rein. Die Leute hier sind super nett und hilfsbereit, eine
richtig angenehme Community. Wenn dass hier Leute aus der
de.comp.lang.javascript lesen: 70% Eurer NG ist ein Haufen arroganter
Bleichgesichter und Euch braucht kein Mensch! Sorry, musste ich mal los
werden :D
Aber zurück zum Thema: hier wird sehr gut Hand in Hand gearbeitet und die
FAQ hilft auch super weiter. Dennoch ist der Krause sehr zu empfehlen, auch
wenn er nicht ganz billig und am Anfang schwer verdaulich ist. Aber ich gehe
nun dazu über dass ich den Krause von Anfang an noch mal durch lese und
dadruch ein paar Aha-Effekte kommen.
Es ist wie im richtigen Leben... learning by doing, dadurch versteht man PHP
immer besser.


> Ist leider immer blöde, wenn man niemanden in unmittelbarer Nähe hat, der
> mal eben schnell, wenn nötig hilfe leisten kann.
> Auge um Auge ist das schon manchmal besser.

Ich kenne nur eine Person persönlich, die auch PHP programmiert. Da er aber
mehr der Flasher ist, bin ich ihm in PHP voraus. Ich selbst bin Autodidakt
und kam mit den o.g. Büchern, Google und der NG hier so weit wie ich bin. Es
dau8ert zwar manchmal etwas länger, aber irgendwie komme ich doch zum Ziel
:)


> Das mit meinem Namen, naja meine Mamma war nicht dran schuld....smile...
> War natürlich mein fehler.

Ich wette Du hast auch noch einen Nachnamen, den Du angeben kannst... :)
Gehört für mich und auch viele Andere einfach zum guten Ton, dass man den
kompletten Namen an gibt :)

Wenn Du Fragen hast, dann schreib hier ruhig rein. Die Mehrzahl der Leute
hilft sehr gerne weiter, wenn Du Hilfe brauchst. Aber immer erst im Buch
nachschlagen, Google fragen, FAQ lesen und dann posten, wenn man Fragen hat
:)
Wenn Du dran bleibst, wird Dir PHP bald richtig gut gefallen da Du vieles
von alleine lösen kannst. Denn eigentlich ist PHP eine sehr einfache
Sprache... :)
Achja... ich hoffe Du kannst ordentlich HTML, denn wer HTML nicht
beherrscht, hat meiner Meinung nach nix mit Dreamweaver oder PHP am Hut :)

So muss weiter arbeiten. Leider überweisen die Kunden net aus freien Stücken
sondenr wollen immer was getan haben :)

Liebe Grüsse... Jochen :)

Re: Datum von einem Formularfeld umwandeln dann in die DB

am 20.01.2005 18:16:58 von klippo

> Hrhr wenn man vorher immer eine Sicherung macht bestimmt nicht :)
smile....sicher doch mache ich auch immer ab und dann eine Sicherung.
So ein Fehler ist mir nur einmal passiert.....

> Klar kann man es immer anders oder auch besser machen. Aber ich finde gute
> Code ist es wenn man nach drei Monaten rein schaut und noch versteht was
man
> da gemacht hat :)
> Außerdem... es funktioniert und das ist das Wichtigste :)

Ja das handhabe ich schon von vornherein so, das ich mir da immer notizen
drinn mache.

> Den Krause hab ich auch. Alledings schlage ich dort mehr nach als dass ich
> wirklich draus lerne. In erster Linie googel ich und wenn nix mehr hilft

Genau das hat mein Kumpel auch zu mir gesagt.
Nur Google ich nicht gerne wegen PHP. Ziehe es in Forums oder NG vor.
Was nicht heisen soll das ich nicht bei Google schaue.

Wegen dem Buch lase ich mich mal Überraschen.
Es gibt davon ja auch mittlerweile das gleich nur in Neuer Form....PHP5.
Nur soll dies nicht wirklich gut für mich sein.
PHP4 reicht wohl erst einmal.

MFG
Karsten