Multiple records to Google Charts

試著忘記壹切 提交于 2019-12-12 04:37:30

问题


I would like to make a timeline from a SQL query with the help of Google Charts. I have used the following code to create the array, that encode to json. The problem is, that $table contains only the last record on the end of this code, but I have more than 1 record.

$rows = array();
$table = array();

$table['cols'] = array( 
  array('id' => '', 'label' => 'Name', 'pattern' => '', 'type' => 'string'), 
  array('id' => '', 'label' => 'Start', 'pattern' => '', 'type' => 'date'), 
  array('id' => '', 'label' => 'End', 'pattern' => '', 'type' => 'date') ); 
while($r = mysql_fetch_assoc($results)) { 
  $name=$r['Name']; $date=$r['Date'];
  $start=$r['start']; 
  $end=$r['end']; 
  $year=date("Y", strtotime($date)); 
  $month=date("m", strtotime($date)); 
  $day=date("d", strtotime($date));
  $start_h=date("H", strtotime($start));
  $start_min=date("i", strtotime($start));
  $start_sec=date("s", strtotime($start)); 
  $end_h=date("H", strtotime($end));
  $end_min=date("i", strtotime($end)); 
  $end_sec=date("s", strtotime($end));
  $start_merged = "Date(".$year.",".$month.",".$day.",".$start_h.",".$start_min.",".$start_sec.")";
  $end_merged = "Date(".$year.",".$month.",".$day.",".$end_h.",".$end_min.",".$end_sec.")";
  $rows = array(); 
  $temp = array(); 
  $temp[] = array('v' => (string) $name); 
  $temp[] = array('v' => (string) $start_merged); 
  $temp[] = array('v' => (string) $end_merged);
  $rows[] = array('c' => $temp);
}
$table['rows'] = $rows;

回答1:


You empty the array in which you collect the results in the middle of the loop:

$rows = array();

Move it outside.

Disclaimer: I haven't checked the rest of the code.

Note: judicious use of var_dump or print_r can quickly show you where the problem occours.



来源:https://stackoverflow.com/questions/25337511/multiple-records-to-google-charts

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!