php - 使用 PHP (laravel)/Mysql 进行网页统计

标签 php mysql laravel

我有一个使用 Laravel 4 创建的登录/注销应用程序。我需要进行网络统计,以便每当用户登录时,它都会向我显示一天内用户数量的折线图。

下面是我的登录方法,每当用户登录时,我都会将数据保存在数据库中。

 public function postLogin() {

    $input = Input::all();
    $rules = array('email' => 'required', 'password' => 'required');
    $v = Validator::make($input, $rules);

    if ($v->fails()) {
        return Redirect::to('login')->withErrors($v);
    } else {
        $credentials = array('email' => $input['email'], 'password' => $input['password']);

        if (Auth::attempt($credentials)) {
            $id = Auth::user()->id;
            $auditor = new Auditor();
            $auditor->user_id = $id;
            $auditor->operation = 'login';
            $auditor->save();
            return Redirect::to('admin');
        } else {
            return View::make('home.login', array('message' => 'Wrong username/password!'));
        }
    }
}

我有一个 Controller ,用于对数据库中的数据进行分组。我知道这是不正确的,但我不知道如何继续创建图表。

public function graph() {
    $auditor = new Auditor();
    $auditor = array();
    //get data from database
    $sql = "SELECT  DATE('auditor'.'created') AS date" . "COUNT('auditor'.'auditor_id') AS 'count'". "FROM 'auditor'".
    "WHERE auditor .created BETWEEN 2015-09-01 00:00:00 AND 2015-09-31 23:59:59". "GROUP BY date"."ORDER BY date";
    $result = mysqli_query($sql) or die('Query failed: ' . mysql_error());
    if ($result) {
        while ($row = mysql_fetch_assoc($result)) {

        }
    }

请帮我看看如何绘制图表,是否可以在分组后在图表中显示数据?

最佳答案

我第二个phpChart 。过去用它来完成在线报告任务。非常容易快速创建图表。

这是使用 phpChart 基于其 online example -- Axis Labels Rotated Text 2: 的场景的解决方案

    <?php 
$line = array(array('user', 12), array('admin', 3), array('user2', 1), array('user3', 1));

$pc = new C_PhpChartX(array($line),'user_chart');
$pc->add_plugins(array('canvasTextRenderer'));
//set series
$pc->add_series(array('renderer'=>'plugin::BarRenderer'));
//set axes
$pc->set_axes(array(
    'xaxis'  => array(
        'renderer'=>'plugin::CategoryAxisRenderer',
        'tickRenderer'=>'plugin::CanvasAxisTickRenderer'),
    'yaxis'  => array(
        'autoscale'=>true,
        'tickRenderer'=>'plugin::CanvasAxisTickRenderer')
));

$pc->draw(800,500);
?>

结果: enter image description here

这是我发现的关于 Codeproject 的精彩介绍:http://www.codeproject.com/Articles/604542/Creating-Interactive-HTML5-Graphs-in-PHP

Laravel 不提供任何开箱即用的图表库。您需要找到用 PHP 编写的第三方库才能从 Laravel 应用程序生成图表。

一些免费的图表库是:

我强烈建议您搜索php charting library在 StackOverflow 中查看其他有经验的用户的意见。

选择特定库时,将其作为任何其他依赖项添加到您的composer.json 文件中。

关于php - 使用 PHP (laravel)/Mysql 进行网页统计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32686708/

相关文章:

mysql - 使用 MySQL 的 UTC 到 America/New_York 时区

mysql - 这是语义上正确的 SQLite 搜索查询吗?

php - Laravel 一对一的关系。将用户名从表保存到另一个表

php - 安全地更改信用金额

php - symfony 2 中的结构应用

mysql 多次计数和连接返回奇怪的值

php - 如何在 Laravel 中创建模型?

php - Laravel 资源策略总是错误的

php - Facebook api - PHP/Javascript 和 OpenGraph

nginx - 在 nginx(在 chroot 下)上使用 PHP-FPM 执行不返回任何内容