有人可以通知我,如果有从我的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>
答案 0 :(得分:0)
我会用ajax和jquery这样做:
我猜你的列有不同的汽车类型。
+------------------------+
|ferari|lamborghini|mazda|
+------------------------+
现在您要将法拉利规格与马自达规格进行比较。
我会这样做,检查一下类车的复选框,获得一个检查的ID。之后你还可以在法拉利的那个复选框中加入一些信息,比如一些导致法拉利规格在数据库中的信息。您可以将数据库中的ferrari id设置为23,添加到复选框data-id="23"
中,然后通过按名称data-id获取元素获取jquery,并使用ajax发送信息以从数据库获取内容。并将那个保存为var作为活动用于比较,当你点击其他一些与第一个进行比较时,你可以制作一些其他脚本来平衡。