我正在运行一个代码,用于将用户提交的文件保存到目录中。 我想跟踪提交的文件,特别是日期,星期几,时间等。
我希望能够知道一周的哪一天,一天的哪个时间,哪个月等,文件提交的费率更高,提交的文件的当前数量等等。当然正在绘制数据到图表会很棒。
我理解可以使用phpExcel
或类似的东西创建一个简单的Excel工作表,这可以通过这些方法实现。
但是我不喜欢在数据中包含无限行的想法。
我找不到比Excel表更简单或不同的东西。
是否有人碰巧知道记录这些数据的其他方法?
对不起,我忘了提及,我对保持数据库在线不感兴趣,本地也没关系。
答案 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_id
和filepath
。
当您想查询此数据时,可以使用简单的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生成图形等。