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

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

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


 

Aktuelle PHP Scripte

EJS TreeGrid ansehen EJS TreeGrid

EJS TreeGrid is DHTML component written in pure JavaScript to display and edit data in table, grid, tree view or grid with tree on HTML page

09.04.2019 coqsoft@ | Kategorie: JAVASCRIPT/ Components
Suchmaschine redaktionell, Branchenportal zum Geld verdienen

Programmbeschreibung Die Bezahl-Suchmaschine ist in Perl und PHP programmiert (eigenes CGI-Verzeichnis notwendig), benötigt PHP aber keine MySQL-Datenbank. Webmaster haben mit dieser Suchmaschine neben der normalen kostenlosen Registrierung von Lin

06.04.2019 skripte@ | Kategorie: PHP/ Suchmaschinen
Oog Photo-Video-Gallery

Mit Oog Photo-Gallery können Sie einfach und stilvoll Bilder (auch Video & Audio) auf Ihrem PHP5-Webserver veröffentlichen und verwalten. Lizenz: GNU GPL v2

06.04.2019 trottbrand@ | Kategorie: PHP/ Bilder
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:51 Uhr.