PHP跟踪流程

时间:2015-09-03 01:19:06

标签: php database excel

我正在运行一个代码,用于将用户提交的文件保存到目录中。 我想跟踪提交的文件,特别是日期,星期几,时间等。

我希望能够知道一周的哪一天,一天的哪个时间,哪个月等,文件提交的费率更高,提交的文件的当前数量等等。当然正在绘制数据到图表会很棒。

我理解可以使用phpExcel或类似的东西创建一个简单的Excel工作表,这可以通过这些方法实现。

但是我不喜欢在数据中包含无限行的想法。

我找不到比Excel表更简单或不同的东西。

是否有人碰巧知道记录这些数据的其他方法?

对不起,我忘了提及,我对保持数据库在线不感兴趣,本地也没关系。

1 个答案:

答案 0 :(得分:2)

当用户将文件提交到其目录时,在上传脚本中,调用以下函数:

function log_upload($user_id, $filepath){
    // check if user ID is valid using your own logic

    // Connect to your database
    $mysqli = new mysqli('host', 'user', 'pass', 'db_name');

    // Check connection is successful
    if($mysqli->connect_error){
        die('Error : ('. $mysqli->connect_errno .') '. $mysqli->connect_error); 
    }

    $user_id = '"'.$mysqli->real_escape_string($user_id).'"';
    $datestamp = '"'. date("Y-m-d H:i:s") .'"';
    $filepath = '"'.$mysqli->real_escape_string($file_path).'"';


    $insert_stmt  = $mysqli->query("INSERT INTO logs (user_id, datestamp, file_path) VALUES ($user_id, $datestamp, $filepath)");
    if(!$insert_stmt){
        die('Error : ('. $mysqli->errno .') '. $mysqli->error);
    }
}

在您的上传脚本中成功上传后,请致电log_upload($user_id,$filepath);

注意:您需要添加自己的逻辑或弄清楚如何自行传递上传文件的user_idfilepath

当您想查询此数据时,可以使用简单的MySQL查询,例如:

SELECT user_id, COUNT(user_id) as user_counted 
FROM logs 
WHERE datestamp BETWEEN '2015-01-01' 
AND '2015-01-31' 
GROUP BY user_id

2015年1月份,您网站上的用户回访率最高。

您可以开始构建更复杂的SQL查询,以根据需要确定其他因素。请看一下MySQL manual的指导和提示,(显然!)Stack Overflow

如果您绝对想要使用Excel查看此数据,可以从MySQL下载Excel / CSV文件并使用Excel,直到您对SQL查询的满意度增加。那里有大量的SQL教程和this Stack Overflow question虽然是一个不好的问题,但确实触及了如何从MySQL生成图形等。