Ankündigung

Einklappen
Keine Ankündigung bisher.

Script für Statistik: Finde den Fehler nicht

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Script für Statistik: Finde den Fehler nicht

    Hallo

    Ich muss ein Script für eine Statistik abändern. Leider werden mir keine Error-Codes angezeigt und habe auch sehr wenig Erfahrung mit php. Vielleicht findet jemand von euch den Fehler? Ich vermute, dass ich "foreach" falsch benutzt habe

    PHP-Code:
        function get_order() {

            
    // Query ausfuehren und in Array speichern
            
    $query "SELECT date_part('year',order_date) AS year,date_part('month',order_date) AS month,sum(1) AS anzahl FROM orders,
            COUNT(produkt) AS c_dxf FROM orders WHERE produkt=dxf,
            COUNT(produkt) AS c_dxf_av_zp_bl FROM orders WHERE produkt=dxf_av_zp_bl,
            COUNT(produkt) AS c_dxf_pla_thun_zp FROM orders WHERE produkt=dxf_pla_thun_zp,
            COUNT(produkt) AS c_dxf_pro_gemeinde FROM orders WHERE produkt=dxf_pro_gemeinde,
            (...) 
            GROUP BY date_part('month',order_date),date_part('year',order_date) 
            ORDER BY year DESC ,month DESC"
    ;
            
    $res $GLOBALS['TYPO3_DB']->handlerInstance['db_be_orders']->Execute$query );

            for( 
    $i=0$row $res->FetchRow();$i++) {
              
    $maxArray[$i]=$row['anzahl'];
              
    $valArray[$i]=$row;
            }
            
            
            
    // Maximale Laenge herausfinden
            
    $config_width_img=max($maxArray);

            
    // Schleife für Ausgabe der Bildbalken
            
    $content.='<h3>Nach Monat und Jahr</h3>';
            
    $content.='<table width="100%"><tr><th>Jahr</th><th>Monat</th><th width="20">Anzahl</th><th>Bestellungen</th></tr>';
            foreach( 
    $valArray AS $row ) {
              
    $img_widthintval(100/$config_width_img*$row['anzahl']);
              
    $img_width_dxfintval(100/$config_width_img*$row['c_dxf']);
              
    $img_width_dxf_av_zp_blintval(100/$config_width_img*$row['c_dxf_av_zp_bl']);
              
    $img_width_dxf_pla_thun_zpintval(100/$config_width_img*$row['c_dxf_pla_thun_zp']);
              
    $img_width_dxf_pro_gemeindeintval(100/$config_width_img*$row['c_dxf_pro_gemeinde']);
              (...)
                
              
    $content .='<tr><td>'.$row['year'].'</td><td>'.$row['month'].'</td><br /><td>'.$row['anzahl'].'</td><td>
              <div style="width:'
    .$img_width_dxf.'%;height:10px;background-color:red;"></div>
              <div style="width:'
    .$img_width_dxf_av_zp_bl.'%;height:10px;background-color:red;"></div>
              <div style="width:'
    .$img_width_dxf_pla_thun_zp.'%;height:10px;background-color:red;"></div>
              <div style="width:'
    .$img_width_dxf_pro_gemeinde.'%;height:10px;background-color:red;"></div>
              (...)
              </td></tr>'
    ;
            }
            
    $content .= '</table><p></p><p></p>';

            return 
    $content;
        } 
    Ich habe etwas abgekürzt. Insgesamt sinds 14 Produkte.
    MfG Dorian

  • #2
    Auf dem Entwicklungsserver bitte das Skript
    PHP-Code:
    <?php
    echo 'ini: 'get_cfg_var('cfg_file_path');
    ?>
    ausführen. Die angezeigte Datei in einem Texteditor öffnen und folgende Werte einstellen.
    error_reporting=E_ALL
    display_errors=On
    display_startup_errors=On
    Zeilen, die mit einem ; beginnen sind Kommentare und im Moment uninteressant.
    Alle drei Werte werden vermutlich bereits in der .ini gesetzt. Also suchen und verändern (aber nochmal: nicht die mit ; am Anfang!).
    Datei speichern, Webserver neu starten und noch einmal versuchen.
    Gibt es jetzt Fehlermeldungen, Warnungen oder Hinweise?

    Kommentar


    • #3
      Erstmal willkommen im Forum.

      Wenn Du nicht sagst, was nicht geht, wird Dir wohl auch keiner helfen können, es zu beheben.

      Wenn Du schon von Error-Codes redest, hast Du dann auch error_reporting(E_ALL) am Anfang des Scripts stehen?

      Hast Du die mysql-Query mal direkt in einem MySQL-Frontend ausprobiert? Die sieht für mich reichlich gruselig aus.

      Kommentar


      • #4
        Schreib mal am Anfang des Scriptes:
        Code:
        error_reporting(E_ALL);
        ini_set("display_errors", TRUE);
        Es ist auch gut möglich, dass das Script an sich fehlerfrei ist aber keine Ergebnisse aus der DB ausgelesen werden. Solltest also schaun, ob die SQL-Anweisung richtig ist, ob Datensätze gefunden werden.

        Kommentar


        • #5
          Ich glaub ich hab was gefunden:

          Fatal error: Call to a member function FetchRow() on a non-object in /var/www/be-geo/stats/typo3conf/ext/t3m_showstats/pi1/class.tx_t3mshowstats_pi1.php on line 129


          Gehe dem mal nach! Vielen Dank für die Hinweise!
          MfG

          Kommentar

          Lädt...
          X