SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Der CSS-Problemlöser

Der CSS-Problemlöser zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQL

MySQL Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQL diskutieren

Antwort
 
Themen-Optionen Ansicht
  #11  
Alt 04.06.2018, 21:31:07
AlexD AlexD ist offline
Junior Member
 
Registriert seit: Jun 2003
Beiträge: 179
AlexD befindet sich auf einem aufstrebenden Ast
AW: mehrere Tabellen über Timestamp abfragen

So ich hab jetzt eine Lösung gefunden.

Ich lasse das nicht mehr in einem Query, sondern mach es über mehrere Abfragen und dann mit Arrays.

Das Abarbeiten der Funktion dauert jetzt je nach Zeitraum ca. 8 Sekunden.

So sieht das im Moment aus:
PHP-Code:
function hzg_pvbetrieb_einzel($von=NULL$bis=NULL$betriebsart=NULL){
    include(
'sql_connect.php');

    
//*** Betriebsarten***
    // 0 = Heizen
    // 5 = Warmwasser
    // 12 = Photovoltaik
    // 17 = ZWE (Zweitwärmeerzäuger -> Heizstab)
    

    
$verbrauch NULL;
    
$ausgabe   NULL;
    
$i=0;
    
// Datum der Form dd.mm.yyyy umwandeln in YYYY-mm-dd
    
if($von !== NULL && $bis !== NULL){

        
$vondatum_split explode(".",$von);
        
$vondatum $vondatum_split[2]."-".$vondatum_split[1]."-".$vondatum_split[0];

        
$bisdatum_split explode(".",$bis);
        
$bisdatum $bisdatum_split[2]."-".$bisdatum_split[1]."-".$bisdatum_split[0];

        
$zeitraum " BETWEEN  '".$vondatum."' AND '".$bisdatum."'";
    }
    
    
    
    
//===== WEBSERVER-Daten der Heizung ===============
    
$sql_webquery "SELECT wp_status, CONVERT(DATE_FORMAT(timestamp,'%Y-%m-%d-%H:%i:00'), DATETIME) AS w_timestamp, TBWsoll
                       FROM heizung_webdaten
                      WHERE timestamp "
.$zeitraum."
                        AND wp_status = "
.$betriebsart."
                   ORDER BY w_timestamp"
;
    

    
$result $mysqli->query($sql_webquery);
    echo 
$mysqli->error;
    while(
$daten $result->fetch_array(MYSQLI_ASSOC)){

        
        
$webdaten[$i] = array('timestamp' => $daten['w_timestamp'],
                              
'wp_status' => $daten['wp_status'],
                              
'TBWsoll'   => $daten['TBWsoll']);
        
$i++;
        
    }
    
    


    
//======= DATEN Stromzähler für Heizung ==============
    
$sql_hzquery "SELECT WirkenergieSigmaL_imp, WirkleistungSigmaL, CONVERT(DATE_FORMAT(timestamp,'%Y-%m-%d-%H:%i:00'), DATETIME) AS timestamp
                       FROM strom_heizungsdaten
                      WHERE timestamp "
.$zeitraum."
                   ORDER BY timestamp"
;


    
$result $mysqli->query($sql_hzquery);
    echo 
$mysqli->error;
    while(
$hzdaten $result->fetch_array(MYSQLI_ASSOC)){

        
$hzstrom[$hzdaten['timestamp']] = array('WirkenergieSigmaL_imp' => $hzdaten['WirkenergieSigmaL_imp'],
                                                
'WirkleistungSigmaL'    => $hzdaten['WirkleistungSigmaL']);

    }
    

    
//======= DATEN Stromzähler Haus-Gesamt ===================
    
$sql_hausstrom "SELECT CONVERT(DATE_FORMAT(timestamp,'%Y-%m-%d-%H:%i:00'), DATETIME) AS timestamp, WirkleistungSigmaL
                        FROM strom_hausdaten
                       WHERE timestamp "
.$zeitraum."
                    ORDER BY timestamp"
;
                    

    
$result $mysqli->query($sql_hausstrom);
    echo 
$mysqli->error;
    while(
$hausdaten $result->fetch_array(MYSQLI_ASSOC)){

        
$hausstrom[$hausdaten['timestamp']] = array('WirkleistungSigmaL' => $hausdaten['WirkleistungSigmaL']);

    }
    

    
//======== DATEN Heizung ================================
    
$sql_hzgquery "SELECT datum, uhrzeit, TRLsoll, TRLext, TBW
                        FROM heizung_daten
                       WHERE datum "
.$zeitraum."
                    ORDER BY datum, uhrzeit"
;


    
$result $mysqli->query($sql_hzgquery);
    echo 
$mysqli->error;
    while(
$hzgdaten $result->fetch_array(MYSQLI_ASSOC)){

        
$zeit_split explode(":"$hzgdaten['uhrzeit']);
        
$tstamp $hzgdaten['datum']." ".$zeit_split[0].":".$zeit_split[1].":00";
        

        
$heizungsdaten[$tstamp] = array('TRLsoll' => $hzgdaten['TRLsoll'],
                                           
'TRList' => $hzgdaten['TRLext'],
                                           
'TBW'    => $hzgdaten['TBW']);


    }

    
    
//======== Zusammenführen der einzelnen Daten in ein Array ========
    
foreach($webdaten AS $k => $webvalues){

        if(!isset(
$heizungsdaten[$webvalues['timestamp']]['TRLsoll'])){
            
$heizungsdaten[$webvalues['timestamp']]['TRLsoll'] = NULL;
        }
        if(!isset(
$heizungsdaten[$webvalues['timestamp']]['TRList'])){
            
$heizungsdaten[$webvalues['timestamp']]['TRList'] = NULL;
        }
        if(!isset(
$heizungsdaten[$webvalues['timestamp']]['TBW'])){
            
$heizungsdaten[$webvalues['timestamp']]['TBW'] = NULL;
        }

        
$pv_heizdaten[] = array('timestamp' => $webvalues['timestamp'],
                                
'wp_status' => $webvalues['wp_status'],
                                
'WirkenergieSigmaL_imp' => $hzstrom[$webvalues['timestamp']]['WirkenergieSigmaL_imp'],
                                
'Wirkleistung_hzg'      => $hzstrom[$webvalues['timestamp']]['WirkleistungSigmaL'],
                                
'Wirkleistung_haus'     => $hausstrom[$webvalues['timestamp']]['WirkleistungSigmaL'],
                                
'TRLsoll'               => $heizungsdaten[$webvalues['timestamp']]['TRLsoll'],
                                
'TRList'               => $heizungsdaten[$webvalues['timestamp']]['TRList'],
                                
'TBWist'               => $heizungsdaten[$webvalues['timestamp']]['TBW'],
                                
'TBWsoll'              => $webvalues['TBWsoll']);

    }
    
    
    
//=== zusammenhängende Datensätze im Array gruppieren ==
    
$i=0;
    foreach(
$pv_heizdaten AS $k => $data){

        if(
$k == 0){
            
$group_data[$i][$k] = array('timestamp'             => $data['timestamp'],
                                        
'wp_status'             => $data['wp_status'],
                                        
'WirkenergieSigmaL_imp' => $data['WirkenergieSigmaL_imp'],
                                        
'Wirkleistung_hzg'      => $data['Wirkleistung_hzg'],
                                        
'Wirkleistung_haus'     => $data['Wirkleistung_haus'],
                                        
'TRLsoll'               => $data['TRLsoll'],
                                        
'TRList'                => $data['TRList'],
                                        
'TBWist'                => $data['TBWist'],
                                        
'TBWsoll'               => $data['TBWsoll']);
        } else {

            
$vk $k-1;
            
$diff strtotime($data['timestamp']) - strtotime($pv_heizdaten[$vk]['timestamp']);

            if(
$diff == 60){

                
$group_data[$i][$k] = array('timestamp'         => $data['timestamp'],
                                        
'wp_status'             => $data['wp_status'],
                                        
'WirkenergieSigmaL_imp' => $data['WirkenergieSigmaL_imp'],
                                        
'Wirkleistung_hzg'      => $data['Wirkleistung_hzg'],
                                        
'Wirkleistung_haus'     => $data['Wirkleistung_haus'],
                                        
'TRLsoll'               => $data['TRLsoll'],
                                        
'TRList'                => $data['TRList'],
                                        
'TBWist'                => $data['TBWist'],
                                        
'TBWsoll'               => $data['TBWsoll']);
            } else {
                
$i++;
                
$group_data[$i][$k] = array('timestamp'         => $data['timestamp'],
                                        
'wp_status'             => $data['wp_status'],
                                        
'WirkenergieSigmaL_imp' => $data['WirkenergieSigmaL_imp'],
                                        
'Wirkleistung_hzg'      => $data['Wirkleistung_hzg'],
                                        
'Wirkleistung_haus'     => $data['Wirkleistung_haus'],
                                        
'TRLsoll'               => $data['TRLsoll'],
                                        
'TRList'                => $data['TRList'],
                                        
'TBWist'                => $data['TBWist'],
                                        
'TBWsoll'               => $data['TBWsoll']);
            }
        }

    }
    
    
    
//============== Berechnung des Verbrauchs =================================
    
    
return $group_data;
}


//========= Gibt dieses Array aus =============
Abfrage dauerte3 Sek.

Array
(
    [
0] => Array
        (
            [
0] => Array
                (
                    [
timestamp] => 2018-05-01 11:40:00
                    
[wp_status] => 12
                    
[WirkenergieSigmaL_imp] => 5624.8008
                    
[Wirkleistung_hzg] => 3.2618
                    
[Wirkleistung_haus] => -2.4285
                    
[TRLsoll] => 56.0
                    
[TRList] => 34.8
                    
[TBWist] => 49.2
                    
[TBWsoll] => 
                )

            [
1] => Array
                (
                    [
timestamp] => 2018-05-01 11:41:00
                    
[wp_status] => 12
                    
[WirkenergieSigmaL_imp] => 5624.8379
                    
[Wirkleistung_hzg] => 3.2658
                    
[Wirkleistung_haus] => 1.3247
                    
[TRLsoll] => 56.0
                    
[TRList] => 35.1
                    
[TBWist] => 49.1
                    
[TBWsoll] => 
                )

            [
2] => Array
                (
                    [
timestamp] => 2018-05-01 11:42:00
                    
[wp_status] => 12
                    
[WirkenergieSigmaL_imp] => 5624.9043
                    
[Wirkleistung_hzg] => 1.1184
                    
[Wirkleistung_haus] => 0.8235
                    
[TRLsoll] => 56.0
                    
[TRList] => 36.0
                    
[TBWist] => 49.2
                    
[TBWsoll] => 
                )

        )

    [
1] => Array
        (
            [
3] => Array
                (
                    [
timestamp] => 2018-05-01 14:38:00
                    
[wp_status] => 12
              
           

Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
mehrere Tabellen mit teilweise gleichem Titel mit PHP abfragen tobi28862 MySQL 2 23.07.2009 09:46:08
zwei Tabellen abfragen crowl MySQL 4 18.04.2008 12:31:55
mehrere tabellen abfragen scones MySQL 6 09.05.2007 20:23:20
Db abfragen von 2 tabellen GrafvonHenneber PHP Grundlagen 6 22.01.2003 15:37:48
mysql querverbindungen aus tabellen abfragen flobee PHP für Fortgeschrittene und Experten 2 17.06.2002 17:16:49


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:44:50 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.


© 2001-2018 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt