2017-01-19 3 views
0

列の最高値をチェックするテーブルでselectを実行していますが、これはうまく動作しますが、これらの値をJSONに変換する必要がありますこれらの値をグラフに使用します。MYSQL SELECTをチャートデータのJSONに変換

<?php 


    $result = $conn->query("SELECT MAX(score_1) `top_score_1` FROM members WHERE dashboard_id = $user_dash_id");  
    if (!$result) die($conn->error); 
    while($row=mysqli_fetch_array($result, MYSQLI_ASSOC)) 
    { 
     $top_score_1 = $row['top_score_1']; 
    } 

    $result = $conn->query("SELECT MAX(score_2) `top_score_2` FROM members WHERE dashboard_id = $user_dash_id");  
    if (!$result) die($conn->error); 
    while($row=mysqli_fetch_array($result, MYSQLI_ASSOC)) 
    { 
     $top_score_2 = $row['top_score_2']; 
    } 

    $result = $conn->query("SELECT MAX(score_3) `top_score_3` FROM members WHERE dashboard_id = $user_dash_id");  
    if (!$result) die($conn->error); 
    while($row=mysqli_fetch_array($result, MYSQLI_ASSOC)) 
    { 
     $top_score_3 = $row['top_score_3']; 
    } 

    $result = $conn->query("SELECT MAX(score_4) `top_score_4` FROM members WHERE dashboard_id = $user_dash_id");  
    if (!$result) die($conn->error); 
    while($row=mysqli_fetch_array($result, MYSQLI_ASSOC)) 
    { 
     $top_score_4 = $row['top_score_4']; 
    } 

    $result = $conn->query("SELECT MAX(score_5) `top_score_5` FROM members WHERE dashboard_id = $user_dash_id");  
    if (!$result) die($conn->error); 
    while($row=mysqli_fetch_array($result, MYSQLI_ASSOC)) 
    { 
     $top_score_5 = $row['top_score_5']; 
    } 

    $result = $conn->query("SELECT MAX(score_6) `top_score_6` FROM members WHERE dashboard_id = $user_dash_id");  
    if (!$result) die($conn->error); 
    while($row=mysqli_fetch_array($result, MYSQLI_ASSOC)) 
    { 
     $top_score_6 = $row['top_score_6']; 
    } 

    $result = $conn->query("SELECT MAX(score_7) `top_score_7` FROM members WHERE dashboard_id = $user_dash_id");  
    if (!$result) die($conn->error); 
    while($row=mysqli_fetch_array($result, MYSQLI_ASSOC)) 
    { 
     $top_score_7 = $row['top_score_7']; 
    } 

    $result = $conn->query("SELECT MAX(score_8) `top_score_8` FROM members WHERE dashboard_id = $user_dash_id");  
    if (!$result) die($conn->error); 
    while($row=mysqli_fetch_array($result, MYSQLI_ASSOC)) 
    { 
     $top_score_8 = $row['top_score_8']; 
    }             

    $total_five_stars = $top_score_1 + 
         $top_score_2 + 
         $top_score_3 + 
         $top_score_4 + 
         $top_score_5 + 
         $top_score_6 + 
         $top_score_7 + 
         $top_score_8; 
    ?> 

上記の値は8つの値が必要です。私は私のチャートデータのためにそれを使用するためにJSON配列か何かのように、それらを有効にする必要があります。

var options = { 
    type: 'line', 
    data: { 
    labels: ["SDO", 
      "DCTO", 
      "ED", 
      "CA", 
      "DHPT", 
      "IRT", 
      "GL", 
      "IL"  
      ], 
    datasets: [ 
       { 
       data: [5, 3, 3, 5, 2, 3, 4, 2], // these need to be my scores 
       borderColor: "rgba(54, 191,191, 0.6)", 
       backgroundColor : "rgba(54, 191,191, 0.6)", 
       borderWidth: 1 
       }, 
       ] 
     }, 
    options: { 
    legend: { 
     display: false 
    }, 
    scales: { 
     yAxes: [{ 
     ticks: { 
      reverse: false, 
      fontSize: 15, 
      beginAtZero: true, 
      stepSize: 1 
     } 
     }] 
    } 

    } 
} 

var ctx = document.getElementById('chartJSContainer').getContext('2d'); 
new Chart(ctx, options);  

答えて

1

私が正しく理解していれば、あなたはJSON形式でPHPスクリプトからの応答を取得したいです。その場合、関数headerjson_encodeは、これを達成するのに役立ちます

$data = [ 
    $top_score_1, $top_score_2, $top_score_3, $top_score_4, 
    $top_score_5, $top_score_6, $top_score_7, $top_score_8 
]; 

header('Content-Type: application/json'); 
echo json_encode($data); 
関連する問題