如何使用PHP将MySQL数据打印成条形图

时间:2013-03-14 07:55:09

标签: php mysql bar-chart

我正在创建一个报告,其中我想使用条形图显示我的数据我浏览了一些博客,教程和打印方式;但是,现在我需要的是我想以百分比显示我的数据并将其打印出来,任何人都可以帮助我吗?

这是我的代码:

<style>
.clear{
    clear:both;
}

.graphcont {
    padding-top:10px;
    color:#000;
    font-weight:700;
    float:left
}

.graph {
    float:left;
    margin-top:10px;
    background-color:#cecece;
    position:relative;
    width:280px;
    padding:0
}

.graph .bar {
    display:block;
    position:relative;
    background-image:url(images/bargraph.gif);
    background-position:right center;
    background-repeat:repeat-x;
    border-right:#538e02 1px solid;
    text-align:center;
    color:#fff;
    height:25px;
    font-family:Arial, Helvetica, sans-serif;
    font-size:12px;
    line-height:1.9em
}

.graph .bar span {
    position:absolute;
    left:1em
}
</style>

</head>

<body>

<div id="container">

<?php
require("includes/dbconnect.php");

$getcen  = mysql_query("SELECT count(*) AS totcen, center FROM `makhtab` WHERE center != '' GROUP BY center ORDER BY center") or die(mysql_error());

while ($mcent = mysql_fetch_array($getcen)) {  
     echo '<div class="rating"><div class="graphcont"><div class="graph"><strong class="bar" style="width:'.$mcent["totcen"].'%;">'.$mcent["totcen"].'</strong></div></div></div>
      <div class="clear"></div>';
}
?>
</div>

上面的代码工作正常但我想设置我的 div ,其中条形显示为固定宽度,我想根据查询创建的百分比来操纵条形宽度。在此先感谢。

3 个答案:

答案 0 :(得分:2)

我对你的建议是使用外部轻量级框架来处理图表,它简化了很多事情。

RazorFlow非常好,试一试。

答案 1 :(得分:1)

为了正确显示条形,您需要计算'totmakh'值所代表的百分比值。

首先,你需要知道最大允许值,它代表100%,我们假设它被称为MAX。定义此值后,计算百分比很容易:

$percentage = $mcent["totmakh"] * 100 / MAX;

然后,您可以使用该值设置div的百分比宽度。

答案 2 :(得分:0)

如果您想构建一个包含PHP中的交互式图表和表格以及MySQL中的数据的仪表板,您可以查看RazorFlow PHP

您将能够使用您想要的图表类型从SQL创建报告。

(披露:我是RazorFlow的开发者,我发帖只是因为我认为它是相关的)