如何使用php从Database(SQL)创建FusionCharts Multi-series图表

时间:2016-06-03 01:10:06

标签: php mysql fusioncharts

有人可以通知我,如果有从我的SQL服务器生成图表的方法,但不是从不同的表生成图表,我有一个表包含很多列,我想比较用户选择的两个或更多列,同时检查复选框。 我想把数据放在多系列图表中,但我现在不知道它是如何工作的。 我的以下代码允许我成功获取x_axis(标签值)但不能获取我的数据。 有什么建议吗?

<?php
      //We have included ../Includes/FusionCharts.php, which contains functions
      //to help us easily embed the charts.
      include("class/Includes/FusionCharts.php");
      ?>
      <HTML>
        <HEAD>
        <TITLE> FusionCharts XT - </TITLE>
        <SCRIPT LANGUAGE="Javascript" SRC="fusioncharts/fusioncharts.js"></SCRIPT>
        <SCRIPT LANGUAGE="Javascript" SRC="fusioncharts/themes/fusioncharts.theme.fint.js"></SCRIPT>
     </HEAD>
     <BODY>
	 
	 <?php
           $hostdb = "localhost";   // MySQl host
           $userdb = "root";    // MySQL username
           $passdb = "";    // MySQL password
           $dbName = "database"; // MySQL database name

  	   $link =  new mysqli ($hostdb, $userdb, $passdb, $dbName);
   $strQueryCategories = "SELECT A FROM `table_temporaire` ";


           $resultCategories = $link->query($strQueryCategories);
//$col="SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'chaima' AND TABLE_NAME = 'table_temporaire'";
//$r = $link->query($col);

          $stmt = $link->prepare("SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'database' AND TABLE_NAME = 'table_temporaire'");
          $b=$stmt->execute();
          $a = array();
          foreach ($stmt->get_result() as $row)
          {      
             $a[] = $row['COLUMN_NAME'];
          }               
		  $strQueryData = "SELECT * FROM `table_temporaire`";

          $resultData = $link->query($strQueryData);
          
          $strXML = "<chart legendPostion='' caption='waak' subCaption='offt' xAxisName='date' yAxisName='valeur' showValues='0' formatNumberScale='0' rotateValues='1' theme='fint'>";

          $strXML .= buildCategories ($resultCategories, "A");
          $strXML .= buildDatasets ( $resultData, $a, $b);
                       
          $strXML .= "</chart>";
  
  		  echo renderChart("MSLine", "", $strXML, "", 600, 300, false, true);


           //  $resultCategories->mysqli_free_result ();
		   // $resultData->mysqli_free_result ();

		  //void mysqli_free_result ($resultData);
          // mysql_free_result($resultCategories);
          //mysql_free_result($resultData);
			$link->close();

          //mysql_close($link);

         function buildCategories ( $result, $labelField ) {
             $strXML = "";
             if ($result) {
                 $strXML = "<categories>";
                 while($ors = $result->fetch_assoc()) 
                 {
                     $strXML .= "<category label='" . $ors[$labelField]. "'/>";
                 }
                 $strXML .= "</categories>";
             }
             return $strXML;
         }
		
						 
         function buildDatasets ($result, $valueField, $controlBreak ) { 
            $strXML = "";
            if ($result) {

                $controlBreakValue ="";
                while($ors = $result->fetch_assoc()) 
                {    
                   {
				 	echo" ";
   
                   if( $controlBreakValue != $ors[$controlBreak] ) {
                   $controlBreakValue =  $ors[$controlBreak];
                   $strXML .= ( $strXML =="" ? "" : "</dataset>") . ( "<dataset seriesName='" . $controlBreakValue . "'>" ) ;
                                   
                                  
    			   $strXML .= "<set value='" . $ors[$valueField] . "'/>";
 									
                  }
                $strXML .= "</dataset>";
              }
							
             return $strXML;

      }
	?>
		 
        
  </BODY>
</HTML>

1 个答案:

答案 0 :(得分:0)

我会用ajax和jquery这样做:

我猜你的列有不同的汽车类型。

+------------------------+
|ferari|lamborghini|mazda|
+------------------------+

现在您要将法拉利规格与马自达规格进行比较。 我会这样做,检查一下类车的复选框,获得一个检查的ID。之后你还可以在法拉利的那个复选框中加入一些信息,比如一些导致法拉利规格在数据库中的信息。您可以将数据库中的ferrari id设置为23,添加到复选框data-id="23"中,然后通过按名称data-id获取元素获取jquery,并使用ajax发送信息以从数据库获取内容。并将那个保存为var作为活动用于比较,当你点击其他一些与第一个进行比较时,你可以制作一些其他脚本来平衡。