mikrocontroller.net

Forum: PC-Programmierung PHP + MySQLi - Fragen


Autor: Fabian Plaimauer (Firma: www.cyberlabs.at) (tropaion)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter II (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Fabian Plaimauer (Firma: www.cyberlabs.at) (tropaion)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Philipp K. (philipp_k59)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Fabian Plaimauer (Firma: www.cyberlabs.at) (tropaion)
Datum:

Bewertung
0 lesenswert
nicht 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
Autor: Philipp K. (philipp_k59)
Datum:

Bewertung
0 lesenswert
nicht 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-t...

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

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

Autor: TestX (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.