Forum: PC-Programmierung PHP + MySQLi - Fragen


von Fabian P. (Firma: wiki.flowerhouse.at) (tropaion)


Lesenswert?

Hallo Community,
ich habe ein paar Fragen zu MySQLi mit PHP!
Auf der Webseite kann man einen Zeitpunkt für einen Terminstart 
eingeben.
Die Zeit soll dann in der Tabelle gespeichert werden. Meine erste 
überlegung war denn UNIX-Timstamp als INT zu speichern, habe aber dann 
gelesen das es schönere Lösungen mit TIMESTAMP gibt. Leider hab ich im 
Internet keinerlei Beispiele dazu gefunden, wie man das richtige Format 
in PHP hinbekommt und in MySQL speichert. Desweiteren soll eine 
Sortierung nach frühestem Zeitpunkt möglich sein. Evtl. sollen Einträge 
die schon abgelaufen sind gelöscht werden. Hatte da jemand 
Informationen, Tipps, Beispiele für mich?

Desweiteren suche ich auch eine Tabelle mit Auflistung von 
MySQL-Befehlen in zusammenhang mit PHP. Hab ich auch nur sperrlich etwas 
gefunden. Bevorzugt in Deutsch.

Vielen Dank!
Fabian

von Peter II (Gast)


Lesenswert?

in der Datenbank sollte man einfach Datetime verwenden.

http://dev.mysql.com/doc/refman/5.6/en/datetime.html

Es gibt ein definiertes ODBC Format wie man Zeitangaben übergeben kann.

{ts '2015-09-26 22:19:00.2324'}

ob da mysql versteht kann ich nicht sagen.

> Desweiteren suche ich auch eine Tabelle mit Auflistung von
> MySQL-Befehlen in zusammenhang mit PHP. Hab ich auch nur sperrlich etwas
> gefunden.
die Befehl für die man mysql braucht stehen alle hier.

http://php.net/manual/de/book.mysql.php


der Rest ist SQL und in der mysql doku beschrieben
http://dev.mysql.com/doc/refman/5.7/en/

>  Bevorzugt in Deutsch.
lerne lieber Englisch zu lesen, dann findet man auch mehr Infos und 
meist aktuellere.

von Fabian P. (Firma: wiki.flowerhouse.at) (tropaion)


Lesenswert?

Peter II schrieb:
> lerne lieber Englisch zu lesen, dann findet man auch mehr Infos und
> meist aktuellere.

Ich wusste das diese Meldung kommt. Ich kann Englisch! Nur bei 
programmiertechnischen Fragen verstehe ich es auf Deutsch nun mal 
besser, meist lese ich eh auf Englisch und habe zu dem Thema Zeitformat 
viel gelesen nur verstehe ich es nicht ganz. Ich bin schon einige 
Stunden am recherchieren.
Deine Links habe ich auch schon alle durchgelesen. Der zweite ist nicht 
aktuell, er enstpricht nicht mehr dem Standard (MySQLi).

von Philipp K. (philipp_k59)


Lesenswert?

Ich glaube das grundsätzliche ist das ein Eintrag im Timestamp Feld 
immer Timestamp codiert sein muss.

zB. $timestamp = date('Y-m-d G:i:s',$mysecondstime);

Das Verständnisproblem liegt wahrscheinlich darin das Du selbst 
entscheiden musst ob du in PHP oder mysql konvertierst, bzw überhaupt 
konvertierst.

Der Obere in MYSQL wäre:
FROM_UNIXTIME($mysecondstime)
DATE(FROM_UNIXTIME($mysecondstime)) (Vergleicht nur Datum)

Ich benutze nur den unixtimestamp und rechne dann alles in Sekunden.

von Fabian P. (Firma: wiki.flowerhouse.at) (tropaion)


Lesenswert?

Da komm ich der Sache schon näher!

Kannst du mir die unteren Befehle erklären?

Oder ein Beispiel in PHP, wie ich schreiben und lesen kann?

$time = $db->query("SELECT time FROM table WHERE id LIKE '0'");
Geht das so?
Und wie kann ich da denn Zeitlich nähesten Eintrag auslesen?

Ich lerne und verstehe immer am besten Ahnhand von Beispielen.

: Bearbeitet durch User
von Philipp K. (philipp_k59)


Lesenswert?

Beispiele gibts ohne Text lesen zu müssen bei mysql.net und php.net

id like FROM_UNIXTIME(0)

Ein like ist da allerdings der falsche Ansatz soweit ich weiß.

Lese doch einfach Deutsche Tuts.

Oder: 
https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

Da ist eine Liste rund um Zeit.. für jeden Mysql Befehl ein Select und 
die Antwort-Tabelle in allen möglichen Variationen:
1
mysql> SELECT FROM_UNIXTIME(1196440219);
2
        -> '2007-11-30 10:30:19'
3
mysql> SELECT FROM_UNIXTIME(1196440219) + 0;
4
        -> 20071130103019.000000
5
mysql> SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(),
6
    ->                      '%Y %D %M %h:%i:%s %x');
7
        -> '2007 30th November 10:30:59 2007'

Wenn Du dich mit der Quelle nicht vertraut machst, lass es lieber mit 
Mysql.

von TestX (Gast)


Lesenswert?

ein genereller Tipp: statt der MySQLi erweiterung sollte man heutzutage 
PDO verwenden: http://php.net/manual/de/book.pdo.php inkl. 
Prepared-Statements.
Die meisten Tutorials die man als Anfänger findet sind in der Hinsicht 
veraltet.

Dein Problem ist erst einmal, in welcher Form die Datenbank aufgebaut 
ist! Ob in der Spalte nun ein unix-timestamp, sql timestamp oder 
datetime steht spielt eine wesentliche rolle für die Art der Abfrage.

Generell ist es wahrscheinlich am sinnvollsten wenn du dich erstmal mit 
SQL beschäftigst...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.