2017-07-10 6 views
1

私はまだmysqlのかなり新しいです。私はPHPでMySQLのデータを使用してグラフを作成したい。私はデータの最後の行だけを取得する以外はすべて動作します。私は過去15ヶ月間のテーブルから売上と利益率を選択しています。PHPでmysqlをループする

$cmd = " 
    select format(sum(b.sales_value)/1000,0) as 'sales', 
    format(sum(b.margin)/1000,0) as 'margin', 
    date_format(b.Date,'%Y-%b') as 'month' 
    from cc_sales.groups a, cc_sales.sales b 
    where a.cat_name = b.prod_cat 
    and (b.date between date_add(last_day(date_add(now(), interval -15 MONTH)),interval 1 DAY) And now()) 
    and (a.module = 'IN') 
    and a.cat_group = $group 
    group by date_format(b.Date,'%Y-%b') 
    order by date_format(b.Date,'%Y-%c') 
    "; 

    $result = $conn->query($cmd); 
    $chart [ 'chart_data' ][ 0 ][ 0 ] = "Item Group"; 
    $chart [ 'chart_data' ][ 1 ][ 0 ] = "Sales"; 
    $chart [ 'chart_data' ][ 2 ][ 0 ] = "Margin"; 

    for ($i = 0; $i <= $result; $i++){ 
     while($row = $result->fetch_assoc()) { 
    $chart [ 'chart_data' ][ 0 ][ $i +1 ] = $row['month']; 
    $chart [ 'chart_data' ][ 1 ][ $i +1 ] = $row['sales']; 
    $chart [ 'chart_data' ][ 2 ][ $i +1 ] = $row['margin']; 
     }} 

誰でも私が間違っていることを教えてください。あなたが二回ループしている

+0

は、あなたがMySQLでクエリを実行した、あなたに複数の行を与えることでしょうか? –

答えて

1

$i = 0; 
while($row = $result->fetch_assoc()) { 
    $chart [ 'chart_data' ][ 0 ][ $i +1 ] = $row['month']; 
    $chart [ 'chart_data' ][ 1 ][ $i +1 ] = $row['sales']; 
    $chart [ 'chart_data' ][ 2 ][ $i +1 ] = $row['margin']; 
    $i++;  
} 
+0

迅速な対応をありがとう。それは治療を働いた! –

関連する問題