2016-07-12 12 views
1

Ich versuche, mit google charts barchart zu erstellen. Ich möchte jeden Monat sowohl den Gesamtwert von Kundenaufträgen als auch den Gesamtbetrag von Verkaufsangeboten anzeigen. Jetzt habe ich es so gemacht, es zeigt nur noch Order-Werte für jeden Monat, auch im Querformat. Ich bin nicht immer, wie sowohl einzelne Balkendiagramm mit den Werten zeigen (vertikal)Anzeige Vertikales Balkendiagramm mit gruppierten Balken.

hier mein Code

$query = "SELECT MONTHNAME(last_modified) as month, 
       orders.sales_order_id, 
       orders.authorise, orders.company_id, 
       before_order_line_items.sales_order_id, 
       before_order_line_items.item, 
       before_order_line_items.uom, 
       SUM(before_order_line_items.total) AS 'Total', 
       before_order_line_items.tax from orders INNER JOIN 
       before_order_line_items ON 
       orders.sales_order_id ON  
       before_order_line_items.sales_order_id 
      where orders.order_quote = 'Order' 
      AND orders.authorise='Yes' 
      GROUP BY MONTH(orders.last_modified) 
      ORDER BY MONTH(orders.last_modified)"; 

$result = mysqli_query($con, $query); 
    while ($row = mysqli_fetch_array($result)) 
    { 
     $myurl[] = "['".$row['month']."', ".$row['Total']."]"; 

    } 

<script type="text/javascript"> 
     google.load("visualization", "1", {packages:["corechart"]}); 
     google.setOnLoadCallback(drawChart); 
     function drawChart() { 

     var data = google.visualization.arrayToDataTable([ 
      ['Month', 'Actuals'], 
     /* ['2004', 1000,  400], 
      ['2005', 1170,  460], 
      ['2006', 660,  1120], 
      ['2007', 1030,  540]*/ 


      <?php echo implode(",", $myurl); 

      ?> 

     ]); 

     var options = { 
      title: 'Orders', 
      vAxis: {title: '', titleTextStyle: {color: 'red'}} 
     }; 

     var chart = new google.visualization.BarChart(document.getElementById('chart_div')); 
     chart.draw(data, options); 
     } 
    </script> 
+0

Änderung [ 'BarChart'] (https://developers.google.com/chart/interactive/docs/gallery/barchart) zu ["ColumnChart"] (https://developers.google.com/chart/interactive/docs/gallery/columnchart) für vertikale Balken - wie für _die beiden Werte_, aussieht magst du Hilfe mit dem SQL, richtig? – WhiteHat

+0

ja, in beiden sql und in der Anzeige – meenal

+0

kann ich versuchen zu helfen, aber mehr Fragen zuerst. Gibt der obige SQL richtige Ergebnisse für Bestellungen? würde _Quotations_ mit - 'where orders.order_quote = 'Quote'' gefunden werden? Planen Sie, nur Monat und Summe zu verwenden? – WhiteHat

Antwort

1

erste ist, müssen SQL anpassen sowohl die Werte

dann zurückzukehren hinzufügen Spalten $myurl[]

$myurl[] = "['".$row['Month']."', ".$row['Quotes'].", ".$row['Orders']."]";

aus ziehen dort das Diagramm, aber empfehlen loader.js vs. ältere Bibliothek jsapi

so etwas wie dies sollte in der Nähe sein ...

$query = "SELECT 
      MONTHNAME(last_modified) as Month, 
      SUM(case when orders.order_quote = 'Order' then before_order_line_items.total else 0 end) AS Orders, 
      SUM(case when orders.order_quote = 'Quote' then before_order_line_items.total else 0 end) AS Quotes 
      FROM orders 
      INNER JOIN before_order_line_items 
      ON orders.sales_order_id = before_order_line_items.sales_order_id 
      WHERE orders.authorise = 'Yes' 
      GROUP BY MONTH(orders.last_modified) 
      ORDER BY MONTH(orders.last_modified)"; 

$result = mysqli_query($con, $query); 
while ($row = mysqli_fetch_array($result)) { 
    $myurl[] = "['".$row['Month']."', ".$row['Quotes'].", ".$row['Orders']."]"; 
} 

<script src="https://www.gstatic.com/charts/loader.js"></script> 
<script type="text/javascript"> 
    google.charts.load('current', { 
    callback: drawChart, 
    packages: ['corechart'] 
    }); 

    function drawChart() { 
    var data = google.visualization.arrayToDataTable([ 
     ['Month', 'Quotes', 'Orders'], 
     <?php 
     echo implode(",", $myurl); 
     ?> 
    ]); 

    var options = { 
     title: 'Orders', 
     vAxis: { 
     title: '', 
     titleTextStyle: { 
      color: 'red' 
     } 
     } 
    }; 

    var chart = new google.visualization.ColumnChart(document.getElementById('chart_div')); 
    chart.draw(data, options); 
    } 
</script> 
+0

'SELECT MONTHNAME (last_modified) als Monat, SUM (fall wenn orders.order_quote = 'Order' dann before_order_line_items.total else 0 end) AS Bestellungen, SUM (fall wenn orders.order_quote = 'Quote' dann before_order_line_items.total else 0 end) AS Quotes VON Bestellungen INNER JOIN before_order_line_items ON orders.sales_order_id = before_order_line_items.sales_order_id WHERE orders.authorize = 'Ja' GROUP BY MONTH (orders.last_modified) ORDER BY MONTH (orders.last_modified) 'Bearbeitete Ihre Anfrage, da eine kleine Syntax vorhanden ist Fehler – meenal

+0

Aber es gibt das richtige Ergebnis. – meenal

+0

Nichts wird angezeigt, aber dieser Fehler (mozilla firebug) ' Fehler: Ungültiger Zeilentyp für Zeile 1, loader.js, Zeile 138' – meenal

Verwandte Themen