php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.11.2011, 18:40  
Neuer Benutzer
 
Registriert seit: 20.11.2011
Beiträge: 6
PHP-Kenntnisse:
Anfänger
newbeer befindet sich auf einem aufstrebenden Ast
Standard Alle Daten der letzten 7 Tage mit Einschränkung alle 10 Minuten.

Hallo,
versuche schon seit ner gefühlten Ewigkeit folgendes umzusetzen.
Ich habe eine Datenbank in die alle Minute Werte eingetragen werden. Diese Werte stelle ich dann mit Jpgraph dar. Das geht ja auch wunderbar für bis zu 1440 Datensätze um 24Std darzustellen.
Allerdings möchte ich auch noch die letzten 7 Tage und den ganzen Monat darstellen. Mit Werten alle Minute wirds ewig zuviel. Daher dachte ich mir für die 7 Tage alle Werte im 10 Minutenschritt auszulesen und die für den Monat alle Stunde.
Wie man die Werte der letzten 7 Tage ausliest hab ich hinbekommen
PHP-Code:
...WHERE DATE_SUB(CURDATE(),INTERVAL 7 DAY) <= Timestamp ORDER BY ID  DESC 
Doch wie muss das ändern um Schritte von 10 Minuten zu bekommen?
Es liegen in der Datenbank folgende Zeit und Datumswerte vor:
Timestamp = 20.11.2011
Time = 18:38:04

Das Feld Time muss somit noch abgefragt werden und alle Werte die ganze Zahlen wie 00,10,20,30,40,50 sind sollen geholt werden. Der Rest ignoriert.
newbeer ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 20.11.2011, 19:27  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Letztlich ist das eine Modulo-Operation. Die gibts sicher auch in SQL, aber vielleicht wäre es auch ausreichend das in PHP zu machen. Kenne jetzt allerdings die Schnittstelle zu JPGraph nicht.

[edit] bzw. Ganzzahldivision. Ist ja verwandt.

geg: 12, 17, 20, 23, 56

$var = intval ($var / 10) * 10

ergibt: 10 , 10 , 20 , 20 , 50

Die kannst Du jetzt als Schlüssel benutzen und die dazugehörigen Werte als Durchschnittswert*) zuordnen, also
10 => (12 + 17) /2
20 => (20 + 23) /2
50 => 56

*) Kommt selbstredend auf die ARt der Daten an, ob das Sinn macht.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 21.11.2011, 09:11  
Neuer Benutzer
 
Registriert seit: 20.11.2011
Beiträge: 6
PHP-Kenntnisse:
Anfänger
newbeer befindet sich auf einem aufstrebenden Ast
Standard

Die Schnittstelle zu JPGraph ist mal belanglos, da ich das Ganze dann in Arrays übergebe.
Das vorige Ausfiltern der Daten kam mir auch schon in den Sinn, aber warum soll ich erst tausende von Datensätzen aus der Datenbank lesen um sie nacher zu filtern, wenn ich es doch auch schon direkt beim auslesen könnte.
Das muss doch über einen MYSQL-Befehl gehen können.
newbeer ist offline   Mit Zitat antworten
Alt 21.11.2011, 11:08  
Erfahrener Benutzer
 
Registriert seit: 02.09.2009
Beiträge: 1.019
PHP-Kenntnisse:
Fortgeschritten
mquadrat befindet sich auf einem aufstrebenden Ast
Standard

Das Problem: Es sind nicht immer 10 Minuten. Zumindest nicht, wenn es ein "üblicher" Timer ist. Da kann die Zeit immer mal um eine Sekunde springen.
__________________
Wir suchen PHP Entwickler (Vollzeit) im Raum Darmstadt / Rhein-Main. Infos via E-Mail mueller@new-frontiers.de
mquadrat ist offline   Mit Zitat antworten
Alt 21.11.2011, 11:43  
Erfahrener Benutzer
 
Registriert seit: 01.06.2011
Beiträge: 389
PHP-Kenntnisse:
Anfänger
achtelpetit befindet sich auf einem aufstrebenden Ast
Standard

Du könntest vielleicht mit einer Hilfstabelle arbeiten, in die "zu Fuß" einmal die Intervalle eingetragen werden und diese Hilfstabelle dann in die Abfrage aufnehmen.
achtelpetit ist offline   Mit Zitat antworten
Alt 21.11.2011, 12:52  
Neuer Benutzer
 
Registriert seit: 20.11.2011
Beiträge: 6
PHP-Kenntnisse:
Anfänger
newbeer befindet sich auf einem aufstrebenden Ast
Standard

Jup, das hatte ich auch schon erwogen zu tun. Paralell dazu noch ein paar Datenbanken führen die die Werte alle 10 Minuten eintragen.
Nur müsste ich so noch nebenbei 12 Tabellen führen die an sich auch in der Einen sind.
Es sind ja Temperaturen die ich logge und die sind minütlich eingetragen.
Wenn ich für eine Woche die Daten holen will, dann sind das 10080 Einträge á 6 Fühler = 60480 die ich holen muss und in Arrays packe. Das dann als Graph darzustellen dauert ewig.
Deshalb alle 10 Minuten als auswahl. Für einen Wochengraph reicht das vollkommen. Nun soll aber noch ein Monatsgraph und Jahresgraph folgen. Das würde den Rahmen des Möglichen sprengen.
Gibts da wirklich keinen SELECT Befehl zum zusätzlichen Intervall für Time?
Denn zusätzlich Tabellen anlegen halte ich für unproduktiv.
newbeer ist offline   Mit Zitat antworten
Alt 21.11.2011, 15:29  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Und was gefällt dir an Nikoschs Vorschlag nicht?

Für deine 10-Minuten-Intervalle liest du nur die Datensätze aus, bei denen der Minutenanteil durch 10 geteilt glatt aufgeht, und für die Stunden analog.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 21.11.2011, 20:51  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Danke, Chris, Ich wollte schon anfangen zu winken und „Hallo, hört mich wer“ zu rufen

Zitat:
Die Schnittstelle zu JPGraph ist mal belanglos, da ich das Ganze dann in Arrays übergebe.
Hüstel, ja genau das _ist_ ja die Schnittstelle und genau deshalb habe ich ja gefragt.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 21.11.2011, 20:54  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Gibts da wirklich keinen SELECT Befehl zum zusätzlichen Intervall für Time?
Ich habe oben bereits auf Modulo resp. Ganzzahldivision hingewiesen. Bevor Du Dir hier weiter die Lösung erfragst, schlage ich vor, Du investierst erst mal selbst etwas Hirnschmalz in einem Lösungsversuch.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 22.11.2011, 11:26  
Neuer Benutzer
 
Registriert seit: 20.11.2011
Beiträge: 6
PHP-Kenntnisse:
Anfänger
newbeer befindet sich auf einem aufstrebenden Ast
Standard

Ob ich die Daten an JPGraph oder einfach in einer Tabelle ausgebe ist doch belanglos für die Abfrage.
Die Daten werden doch erst nach dem Auslesen übergeben.
Sprich ich hol mir die Daten die ich will und pack sie in eine Schleife um ein Array zu füllen.
Aber ich will doch schon vorher ansetzen und gleich die Abfrage so schreiben das nicht erst alle Daten geholt werden müssen und danach selektiert wird und dann erst an das Array übergeben wird.
Das hab ich schon hinbekommen, doch warum soll ich knapp 100000 Datensätze auslesen um danach zu filtern, wenn ich auch schon vorher bei der Abfrage filtern könnte und somit nur kanpp 1440 Datensätze holen kann.

Entweder stehe ich grad auf der Leitung, aber ich habe den Vorschlag von Nikosch so verstanden die Daten nach dem Auslesen zu filtern und dann an das Array zu übergeben.

Bei modulo selber kann ich leider keine passende Funktion mir schlussfolgern. Bin da auch nicht bewandert genug, da ich erst seit knapp 4 Wochen überhaupt mich damit beschäftige. Daher entschuldigt mein unverständnis manchmal.
newbeer ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Tabelle soll nach X Einträgen neue Zeile anfangen raws18 PHP Einsteiger 6 10.02.2011 17:19
Vie Formular empfangene Daten berarbeiten und an remote PHP Skript senden fr3sh PHP Einsteiger 4 27.01.2011 10:20
mehrere Daten von Tabelle gleichzeitig eintragen Mario75 PHP Einsteiger 3 27.11.2010 12:49
Anzahl Tage aus zwei Daten rainerwahnsinn PHP Tipps 2010 1 23.07.2010 15:08
[Erledigt] geänderte Daten übergeben ? danyh Datenbanken 3 17.03.2010 12:00
[Erledigt] :: [geloest] Minuten pro Stunde ermitteln tzzaetaynzz Datenbanken 6 19.05.2009 19:15
Website in XML-Format öffnen und Daten in DB schreiben...aber nur wie ? Oli Krause PHP Tipps 2009 11 22.03.2009 12:36
Registrierte User sollen ihre Daten ändern können 54ch4 PHP Tipps 2009 17 14.03.2009 14:29
[Erledigt] sql daten für einen kunden auslesen/ändern im Formular PHP Tipps 2005-2 3 12.10.2005 08:36
[Erledigt] Daten aus mehreren Tabellen holen Datenbanken 0 19.09.2005 17:14
Daten auslesen und ändern Datenbanken 2 17.09.2005 19:28
Daten eintragen und auslesen Rettungsdackel Datenbanken 0 14.09.2005 16:29
[Erledigt] Leidiges Thema Countdown HTML, Usability und Barrierefreiheit 16 26.03.2005 12:40
array_push nur in begrenzter Anzahl ausführen ? PHP Tipps 2004 2 07.09.2004 09:05
HILFE: Column count doesn't match value count at row 1 Datenbanken 17 12.06.2004 16:45

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql timestamp minutenschritt, datenbank: alle daten der letzten woche aufrufen, php alle werte der letzten woche, dateien der letzten 7 tage anzeigen, php nur einträge der letzten 10 tage

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:39 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum