【问题标题】:How to create a FusionCharts Multi-series chart from Database (SQL) using php如何使用 php 从数据库 (SQL) 创建 FusionCharts 多系列图表
【发布时间】:2017-04-04 18:54:27
【问题描述】:

如果有从我的 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>

【问题讨论】:

    标签: php mysql fusioncharts


    【解决方案1】:

    我会像这样使用 ajax 和 jquery 来做:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-24
      • 2015-03-16
      相关资源
      最近更新 更多