2016-06-03 2 views
0

может кто-нибудь сообщить мне, есть ли способ генерации диаграмм с моего SQL-сервера, но не из разных таблиц, у меня есть одна таблица, содержащая много столбцов и я хочу сравнить два или более столбцов, выбранных пользователем, проверяя флажок. Я хочу поместить данные в диаграммы Multi-серии, но теперь я не знаю, как это работает. Мой следующий код, позвольте мне успешно получить x_axis (значение метки), но не мои данные. любые предложения?Как создать диаграмму Multi-серии FusionCharts из базы данных (SQL) с помощью php

<?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> 
 
\t 
 
\t <?php 
 
      $hostdb = "localhost"; // MySQl host 
 
      $userdb = "root"; // MySQL username 
 
      $passdb = ""; // MySQL password 
 
      $dbName = "database"; // MySQL database name 
 

 
    \t $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']; 
 
      }    
 
\t \t $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>"; 
 
    
 
    \t \t echo renderChart("MSLine", "", $strXML, "", 600, 300, false, true); 
 

 

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

 
\t \t //void mysqli_free_result ($resultData); 
 
      // mysql_free_result($resultCategories); 
 
      //mysql_free_result($resultData); 
 
\t \t \t $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; 
 
     } 
 
\t \t 
 
\t \t \t \t \t \t 
 
     function buildDatasets ($result, $valueField, $controlBreak) { 
 
      $strXML = ""; 
 
      if ($result) { 
 

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

 
     } 
 
\t ?> 
 
\t \t 
 
     
 
    </BODY> 
 
</HTML>

ответ

0

Я хотел бы сделать это с помощью AJAX и JQuery, как это:

Я предполагаю, что у вас есть столбцы с именами с различными типами автомобилей.

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

И теперь вы хотите сравнить спецификации ferari с спецификациями mazda. Я бы сделал это, как показано на отмеченном флажке с автомобилями класса, получить идентификатор проверенного. После этого вы также можете поместить некоторую информацию в этот флажок для ferrari, например, некоторую информацию, которая приводит к спецификациям ferrari в базе данных. Вы можете сделать так, как id ferrari в базе данных - 23, добавив в checkbox data-id="23", а затем получите с jquery путем получения элементов по имени data-id и отправить информацию с ajax для получения содержимого из базы данных. И сохраните эту переменную как активную для сравнения, и когда вы щелкните по другому, чтобы сравнить с первым, вы можете сделать некоторые другие скрипты для выравнивания вещей.