php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Scripts > BRAINSTORMING PHP/SQL/HTML/JS/CSS
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


BRAINSTORMING PHP/SQL/HTML/JS/CSS Ihr habt eine Idee, aber keinen genauen Ansatz? Diskutiert mit anderen Usern des Forums über eure Gedankengänge um evtl. hilfreiche Ideen zu bekommen!
Normale Fragen bitte weiterhin in die entsprechenden Foren!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 23-08-2012, 09:42
Ghostrider28
 Registrierter Benutzer
Links : Onlinestatus : Ghostrider28 ist offline
Registriert seit: May 2010
Beiträge: 111
Ghostrider28 befindet sich auf einem aufstrebenden Ast
Standard Stand- und Stopzeiten ermitteln

Analog zu meinem anderen Forenbeitrag (Richtige Gruppierung in Statement?) habe ich in Sachen Umsetzung mit PHP eine Frage.

Wie in dem anderen Beitrag beschrieben verwende ich zur Dokumentation meiner Radtouren einen GPS Logger, der im Takt von 1 Sekunde die Koordinaten dokumentiert. Diese werden in Form einer GPX Datei exportiert, ich lasse diese dann per PHP zerlegen und speichere die Werte in einer Datenbank.

Ich möchte am Ende ähnlich meinem anderen Beitrag eine Auswertung meiner Fahrt- und Stopzeiten sehen, in diesem Falle aber nicht in Form eines Diagrammes sondern als Auflistung. Eine Zeit lang habe ich mir einfach eine Liste ausgeben lassen, in denen jeder Wert auf die GEschwindigkeit untersucht wurde, das Resultat war dann eine Auflistung wie z.B.

23.08.2012 / 09:00:01 - in Bewegung, Geschwindigkeit: 30 kmh
23.08.2012 / 09:00:02 - in Bewegung, Geschwindigkeit: 28 kmh
23.08.2012 / 09:00:03 - in Bewegung, Geschwindigkeit: 32 kmh
23.08.2012 / 09:00:04 - in Bewegung, Geschwindigkeit: 31 kmh
23.08.2012 / 09:00:05 - Stop, Geschwindigkeit: 0 kmh
23.08.2012 / 09:00:06 - Stop, Geschwindigkeit: 0 kmh
23.08.2012 / 09:00:07 - in Bewegung, Geschwindigkeit: 17 kmh


Man kann sich vorstellen, dass eine solche Liste bei einem Loggingintervall von 1 Sekunde sehr lang und unübersichtlich sein kann und auch übersichtlich wird.

Mein Wunschgedanke ist daher eine Auflistung Schema:
23.08.2012 / 09:00:01 - 23.08.2012 / 09:00:04 in Bewegung
23.08.2012 / 09:00:05 - 23.08.2012 / 09:00:06 Stopped

[..]

Mein Ansatz war daher (grob):

- Setze ersten Status auf 0 (Stop)

-> Gebe ersten Status aus ("Fahrrad gestoppt")
- Hole ersten Geschwindigkeitswert aus DB

- Wenn erster Status = aktueller Status
-> Gebe nichts aus

-- wenn erster Status != aktueller Status
-> Gebe aus ("Bewegung")


usw.

Mein Code im Ansatz (bissi quick and dirty, ich weiß).


Code:
$last_state = 1;   
while($row = mysql_fetch_object($query))
{


$speed = $row->field_5;
$Zeit =  $row->Zeit;
$sats =  $row->satellites;  
 
    if($speed > 3)
    {
    $actual_driving_state = 1;
    }
    else
    {
    $actual_driving_state = 0;
    }
    
    
    
    
    
    if(($speed > 3) && ($sats > 6))
    {
    $actual_driving_state = 1;
    
    
              if($last_state == $actual_driving_state)
              {
              //Mache nichts, weil letzter Status = aktueller Status
                    
              
              }
              else
              {
              //Schreibe Zeile
              
              echo "<br>Gestartet - $Zeit - $speed<hr><br>";
              
        // Setze neuen Status
              $last_state       = $actual_driving_state;
              }
    
    
    
    
    }
    else
    {
    $actual_driving_state = 0;
    
    if($last_state == $actual_driving_state)
    {
    //Mache nichts, weil letzter Status = aktueller Status
          
    
    }
    else
    {
    //Sxhreibe Zeile
    
    echo "Stop $Zeit - ";
    // Setze neuen Status
    $last_state       = $actual_driving_state;
    }
    
    
    
    
    }
    
    
    
    
    
    
    
    if($last_state == $actual_driving_state)
    {
    //Mache nichts, weil letzter Status = aktueller Status
          
    
    }
    else
    {
    //Schreibe Zeile
    
    echo "in bewegung - $speed<br>";
    // Setze neuen Status
    $last_state       = $actual_driving_state;
    }
//echo $speed . "<br>"; 
}
Leider schaffe ich es nicht, die Einträge so auszugeben, dass einfach ein Startzeitraum ausgegeben wird, dann ein Stopzeitraum usw.

Hat jemand vielleicht einen Denkstubser für mich?
Mit Zitat antworten
  #2 (permalink)  
Alt 23-08-2012, 11:45
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
$data = array(
  array(
'time' => '23.08.2012 / 09:00:01''speed' => 30),
  array(
'time' => '23.08.2012 / 09:00:02''speed' => 28),
  array(
'time' => '23.08.2012 / 09:00:03''speed' => 32),
  array(
'time' => '23.08.2012 / 09:00:04''speed' => 31),
  array(
'time' => '23.08.2012 / 09:00:05''speed' => 0),
  array(
'time' => '23.08.2012 / 09:00:06''speed' => 0),
  array(
'time' => '23.08.2012 / 09:00:07''speed' => 17),
  
null
);
$i 0;

$prevRow null;
while(
$actRow $data[$i++]) { // für Daten aus Datenbank durch fetch-Statement zu ersetzen
  
if(!$prevRow || ($prevRow['speed'] === 0) != ($actRow['speed'] === 0)) {
    if(
$prevRow) {
      echo 
$prevRow['time'] . ($prevRow['speed'] === ' stopped' ' in bewegung') . "\n";
    }
    echo 
$actRow['time'] . ' - ';
  }
  
$prevRow $actRow;
}
echo 
$prevRow['time'] . ($prevRow['speed'] === ' stopped' ' in bewegung') . "\n"
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #3 (permalink)  
Alt 25-08-2012, 16:17
Ghostrider28
 Registrierter Benutzer
Links : Onlinestatus : Ghostrider28 ist offline
Registriert seit: May 2010
Beiträge: 111
Ghostrider28 befindet sich auf einem aufstrebenden Ast
Standard

Hi wahsaga,

klasse, genau so stellte ich mir das vor.

Nun habe ich das Ergebnis der MySQL Abfrage eingebaut und die Einordnung von Fahrzeiten (Speed > 0) abgeändert.
Denn oft werden auch im Stillstand Geschwindigkeiten angezeigt (3-7 km/h), die eigentlich nicht real sind, bedingt durch die Schwankungen der Anzahl der Satelliten.

Nun habe ich zwei neue Probleme:

a.) tauchen Datensätze auf bei denen Startzeit = Stopzeit
z.b.:
24.08.2012-12:15:31 - 24.08.2012-12:15:31 in bewegung

b.) werden Stopzeiten nicht gruppiert (Bewegungen werden prima gruppiert)
z.B.:
24.08.2012-10:48:52 - 24.08.2012-11:46:06 stopped


Aktuell:

Code:
$prevRow = null;
while($actRow = mysql_fetch_array($query)) { // für Daten aus Datenbank durch fetch-Statement zu ersetzen
  if(!$prevRow || ($prevRow['speed'] > 4) != ($actRow['speed'] > 3)) {
    if($prevRow) {
      echo $prevRow['time'] . ($prevRow['speed'] < 4 ? ' stopped' : ' in bewegung') . "<br>";
    }
    echo $actRow['time'] . ' - ';
  }
  $prevRow = $actRow;
}
echo $prevRow['time'] . ($prevRow['speed'] < 4 ? ' stopped' : ' in bewegung') . "\n";

Hier die Tagesauswertung von gestern:

24.08.2012-10:48:52 - 24.08.2012-11:46:06 stopped
24.08.2012-11:46:11 - 24.08.2012-11:49:51 stopped
24.08.2012-11:49:56 - 24.08.2012-11:52:07 stopped
24.08.2012-11:52:12 - 24.08.2012-11:52:21 in bewegung
24.08.2012-11:52:27 - 24.08.2012-11:54:56 stopped
24.08.2012-11:55:01 - 24.08.2012-11:55:26 stopped
24.08.2012-11:55:31 - 24.08.2012-12:04:21 in bewegung
24.08.2012-12:04:26 - 24.08.2012-12:04:49 stopped
24.08.2012-12:04:54 - 24.08.2012-12:05:14 in bewegung
24.08.2012-12:05:19 - 24.08.2012-12:05:49 stopped
24.08.2012-12:05:54 - 24.08.2012-12:06:53 in bewegung
24.08.2012-12:06:58 - 24.08.2012-12:07:13 stopped
24.08.2012-12:07:18 - 24.08.2012-12:09:51 in bewegung
24.08.2012-12:09:56 - 24.08.2012-12:10:26 stopped
24.08.2012-12:10:31 - 24.08.2012-12:14:51 stopped
24.08.2012-12:14:56 - 24.08.2012-12:15:00 in bewegung
24.08.2012-12:15:06 - 24.08.2012-12:15:26 stopped
24.08.2012-12:15:31 - 24.08.2012-12:15:31 in bewegung
24.08.2012-12:15:45 - 24.08.2012-13:30:39 stopped
24.08.2012-13:30:44 - 24.08.2012-13:32:00 in bewegung
24.08.2012-13:32:06 - 24.08.2012-13:32:36 stopped
24.08.2012-13:32:41 - 24.08.2012-13:44:50 in bewegung
24.08.2012-13:44:55 - 24.08.2012-13:48:24 stopped
24.08.2012-13:48:29 - 24.08.2012-13:53:11 stopped
24.08.2012-13:53:16 - 24.08.2012-14:03:17 stopped
24.08.2012-14:03:22 - 24.08.2012-14:03:27 in bewegung
24.08.2012-14:03:32 - 24.08.2012-14:05:03 stopped
24.08.2012-14:05:08 - 24.08.2012-14:05:08 in bewegung
24.08.2012-14:05:14 - 24.08.2012-14:05:14 in bewegung
24.08.2012-14:05:19 - 24.08.2012-15:05:26 stopped
24.08.2012-15:05:41 - 24.08.2012-15:06:17 stopped
24.08.2012-15:06:27 - 24.08.2012-15:28:19 stopped
24.08.2012-15:28:24 - 24.08.2012-15:29:37 stopped
24.08.2012-15:29:42 - 24.08.2012-15:29:42 in bewegung
24.08.2012-15:30:22 - 24.08.2012-15:30:37 stopped
24.08.2012-15:30:42 - 24.08.2012-15:40:58 stopped
24.08.2012-15:41:05 - 24.08.2012-15:47:04 stopped
24.08.2012-15:47:41 - 24.08.2012-15:49:54 stopped
24.08.2012-15:49:59 - 24.08.2012-15:59:33 stopped
24.08.2012-15:59:38 - 24.08.2012-15:59:38 in bewegung
24.08.2012-15:59:41 - 24.08.2012-16:01:12 stopped
24.08.2012-16:01:17 - 24.08.2012-16:01:17 in bewegung
24.08.2012-16:01:22 - 24.08.2012-16:02:21 stopped
24.08.2012-16:02:26 - 24.08.2012-16:11:02 stopped
24.08.2012-16:11:06 - 24.08.2012-16:11:06 in bewegung
24.08.2012-16:11:11 - 24.08.2012-16:11:11 in bewegung
24.08.2012-16:11:18 - 24.08.2012-16:11:18 in bewegung
24.08.2012-16:11:23 - 24.08.2012-16:13:03 stopped
24.08.2012-16:13:08 - 24.08.2012-16:13:08 in bewegung
24.08.2012-16:13:12 - 24.08.2012-16:13:17 in bewegung
24.08.2012-16:13:22 - 24.08.2012-16:14:35 stopped
24.08.2012-16:14:40 - 24.08.2012-16:14:40 in bewegung
24.08.2012-16:14:58 - 24.08.2012-16:14:58 stopped
24.08.2012-16:15:03 - 24.08.2012-16:15:03 in bewegung
24.08.2012-16:15:29 - 24.08.2012-16:15:29 stopped
24.08.2012-16:15:40 - 24.08.2012-16:15:44 in bewegung
24.08.2012-16:15:50 - 24.08.2012-21:47:17 stopped
24.08.2012-21:48:09 - 24.08.2012-21:48:09 in bewegung
24.08.2012-21:48:14 - 24.08.2012-22:33:13 stopped
24.08.2012-22:33:18 - 24.08.2012-22:33:18 in bewegung
24.08.2012-22:33:39 - 24.08.2012-22:36:22 stopped
24.08.2012-22:36:27 - 24.08.2012-22:36:32 stopped
24.08.2012-22:36:39 - 24.08.2012-22:37:56 stopped
24.08.2012-22:38:01 - 24.08.2012-22:46:02 in bewegung
24.08.2012-22:50:27 - 24.08.2012-22:51:32 stopped
24.08.2012-22:52:08 - 24.08.2012-22:54:07 in bewegung
24.08.2012-22:54:12 - 24.08.2012-22:54:27 stopped
24.08.2012-22:54:32 - 24.08.2012-23:03:41 in bewegung
24.08.2012-23:05:01 - 25.08.2012-01:59:58 stopped
24.08.2012-11:46:11 - 24.08.2012-11:49:51 stopped
24.08.2012-11:49:56 - 24.08.2012-11:52:07 stopped
Mit Zitat antworten
  #4 (permalink)  
Alt 29-08-2012, 15:40
Ghostrider28
 Registrierter Benutzer
Links : Onlinestatus : Ghostrider28 ist offline
Registriert seit: May 2010
Beiträge: 111
Ghostrider28 befindet sich auf einem aufstrebenden Ast
Standard

Ich habe den Code aus meinem Vorpost nochmal in allen möglichen erdenklichen Varianten verändert, aber irgendwie schaffe ich es nicht, die Stand- und Fahrzeiten richtig zu gruppieren bzw. die Standzeit so zu definieren, dass Stand < 4 kmh und Fahrt > 4 kmh.

Suspekt ist mir auch die Anzahl der Zeilen. Ganz so oft stoppe und fahre ich eigentlich nicht.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
browser und os ermitteln xJonx PHP Developer Forum 12 30-03-2006 10:07
KW ermitteln und ausgeben phpneuling SQL / Datenbanken 8 14-09-2004 14:24
Windows 2003 Server (Stand. Edt.) Metallica Windows (Client/Server) 16 29-06-2004 14:38
will the real hussein please stand up ...? wahsaga Out of Order 1 20-09-2003 13:48

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:24 Uhr.