0

I wanna make statistics with month for my website, Show result for each month of this years like this

Month 1 : 195
Month 2 : 3 
Month 3 : 45
Month 4 : 15
Month 5 : 75
Month 6 : 100

I try my own code but I have problem, the code give me just 1 one result like this

Month 6 : 100

I try other code with arrays but it's doesn't work, it doesn't show any things

My own php code :

$date1 = date('m');
$date2 = date('Y');
$n = $date1;

 for($i=1;$i<=$n;$i++) {
    $sql = "SELECT sum(count) AS value_sum FROM statistics where MONTH(st_date) = $i and YEAR(st_date) = $date2 ";
    $sql_sel = mysqli_query($conn,$sql);
    echo'   <script>
    var doughnutData = [';
    while($rows = mysqli_fetch_assoc($sql_sel)) {
        if($i == 1) {
            echo '{
            value: '.$rows['value_sum'].',
            color:"#337AB7"
            },';
        }
        else if($i == 2) {
            echo '{
            value: '.$rows['value_sum'].',
            color:"#929292"
            },';
        }
        else if($i == 3) {
            echo '{
            value: '.$rows['value_sum'].',
            color:"#8BC34A"
            },';
        }
        else if($i == 4) {
            echo '{
            value: '.$rows['value_sum'].',
            color:"#FC8213"
            },';
        }
        else if($i == 5) {
            echo '{
            value: '.$rows['value_sum'].',
            color:"#90AE00"
            },';
        }
        else if($i == 6) {
            echo '{
            value: '.$rows['value_sum'].',
            color:"#15AE00"
            },';
        }
        else if($i == 7) {
            echo '{
            value: '.$rows['value_sum'].',
            color:"#FF0080"
            },';
        }
        else if($i == 8) {
            echo '{
            value: '.$rows['value_sum'].',
            color:"#AEB404"
            },';
        }
        else if($i == 9) {
            echo '{
            value: '.$rows['value_sum'].',
            color:"#0431B4"
            },';
        }
        else if($i == 10) {
            echo '{
            value: '.$rows['value_sum'].',
            color:"#B40404"
            },';
        }
        else if($i == 11) {
            echo '{
            value: '.$rows['value_sum'].',
            color:"#F7819F"
            },';
        }
        else if($i == 12) {
            echo '{
            value: '.$rows['value_sum'].',
            color:"#81F781"
            },';
        }
echo'];
new Chart(document.getElementById("doughnut").getContext("2d")).Doughnut(doughnutData);
</script>';
    }
}

I wanna show all result, so, Any help ?

Felix Kling
  • 795,719
  • 175
  • 1,089
  • 1,143
Y.Saad
  • 15
  • 6
  • 1
    What's the error? What does the generated code look like? Instead of doing the way you do it, have a look at [How to pass variables and data from PHP to JavaScript?](http://stackoverflow.com/q/23740548/218196) – Felix Kling Jun 16 '16 at 02:45
  • @FelixKling I have dates in my database with count, so I want to sum result for each month, and show them in my javascript code (diagram) I make my code, but I saw just 1 one result – Y.Saad Jun 16 '16 at 02:48
  • [mcve]? It'll help! – Topological Sort Jun 16 '16 at 03:02
  • @JohannesH. $date1 = date('m'); – Y.Saad Jun 16 '16 at 03:03
  • @Y.Saad details of your table? and structure? – Mohamed Athif Jun 16 '16 at 03:52
  • @Y.Saad I can read as much - I was interested in the actual value. I assume it's currently 6, so you're expecting 6 result sets? – Johannes H. Jun 16 '16 at 13:26
  • ALso, you're exactly getting one result for each month from the database, as `COUNT()` obviously returns exactly one value. So you'd be printing 6 charts with exactly 1 value each. You sure that's what you want? – Johannes H. Jun 16 '16 at 13:29
  • And one more point: instead of `if...else if...else if...else` I recommend you to look into `switch` – Johannes H. Jun 16 '16 at 13:30

1 Answers1

0

try this.

dbconfig.php

<?php
        $host = 'localhost';
        $dbname = 'dbname';
        $username = 'user';
        $password = 'pass';
    ?>

index.php

<?php
$date1 = date('m');
$date2 = date('Y');
$n = $date1;

 for($i=1;$i<=$n;$i++) {
    require_once 'dbconfig.php';
    try {
      $conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
      $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      $sql = "SELECT sum(count) AS value_sum FROM statistics where MONTH(st_date) = $i and YEAR(st_date) = $date2
      ";
      $q = $conn->query($sql);
      $q->setFetchMode(PDO::FETCH_ASSOC);
    } catch (PDOException $pe) {
      die("Could not connect to the database $dbname :" . $pe->getMessage());
    }
    while ($rows = $q->fetch()) {
        if($i == 1) {
            echo '{
            value: '.$rows['value_sum'].',
            color:"#337AB7"
            },';
        }
        else if($i == 2) {
            echo '{
            value: '.$rows['value_sum'].',
            color:"#929292"
            },';
        }
        else if($i == 3) {
            echo '{
            value: '.$rows['value_sum'].',
            color:"#8BC34A"
            },';
        }
        else if($i == 4) {
            echo '{
            value: '.$rows['value_sum'].',
            color:"#FC8213"
            },';
        }
        else if($i == 5) {
            echo '{
            value: '.$rows['value_sum'].',
            color:"#90AE00"
            },';
        }
        else if($i == 6) {
            echo '{
            value: '.$rows['value_sum'].',
            color:"#15AE00"
            },';
        }
        else if($i == 7) {
            echo '{
            value: '.$rows['value_sum'].',
            color:"#FF0080"
            },';
        }
        else if($i == 8) {
            echo '{
            value: '.$rows['value_sum'].',
            color:"#AEB404"
            },';
        }
        else if($i == 9) {
            echo '{
            value: '.$rows['value_sum'].',
            color:"#0431B4"
            },';
        }
        else if($i == 10) {
            echo '{
            value: '.$rows['value_sum'].',
            color:"#B40404"
            },';
        }
        else if($i == 11) {
            echo '{
            value: '.$rows['value_sum'].',
            color:"#F7819F"
            },';
        }
        else if($i == 12) {
            echo '{
            value: '.$rows['value_sum'].',
            color:"#81F781"
            },';
        }
    }
}
?>

table

ID> unique>int>auto_increment
st_date> Date
count>int
Mohamed Athif
  • 468
  • 2
  • 6
  • 19