首先让我自我介绍一下: 我33岁。生活在荷兰,如果涉及到php,我就是新手。)
我的vps httpdocs \ data \ 1day.csv上有一个csv文件。在此文件中有两列:datetime和value。该文件如下所示:
Article
我想对文件1day.csv进行简单的计算,并将其保存到另一个csv文件中。让我们说计算将是值* 5:
"datetime","value",
"2016-01-02 10:50:01","1060.9",
"2016-01-02 10:45:01","1060.6",
需要在整个"值"上进行计算。列。
我想用php做这个,让cronjob每x分钟执行一次这个脚本。
有人可以帮助我朝正确的方向发展吗?
答案 0 :(得分:0)
@riggsfolly
确定。这是我到目前为止所得到的:
// Database Connection
$host="localhost";
$uname="xxxxx";
$pass="xxxxx";
$database = "xxxxx";
$connection=mysql_connect($host,$uname,$pass);
echo mysql_error();
//or die("Database Connection Failed");
$selectdb=mysql_select_db($database) or
die("Database could not be selected");
$result=mysql_select_db($database)
or die("database cannot be selected <br>");
// Fetch Record from Database
$output = "";
$table = "quotes"; // Enter Your Table Name
$sql = mysql_query("select datetime, value from $table where type = '5' order by datetime desc limit 333");
$columns_total = mysql_num_fields($sql);
// Get The Field Name
for ($i = 0; $i < $columns_total; $i++) {
$heading = mysql_field_name($sql, $i);
$output .= '"'.$heading.'",';
}
$output .="\n";
// Get Records from the table
while ($row = mysql_fetch_array($sql)) {
for ($i = 0; $i < $columns_total; $i++) {
$output .='"'.$row["$i"].'",';
}
$output .="\n";
}
// Save the file
$directory = "/var/www/vhosts/domain.nl/httpdocs/data/";
$filename = "1day.csv";
$fd = fopen ("$directory" . $filename, "w");
fputs($fd, $output);
fclose($fd);
exit;
我卡住的部分是添加带有计算值的额外列。
答案 1 :(得分:0)
我可能会更简单。如果您不知道有多少列可以使用额外的循环来获取列名,但看起来并不必要。
$output = "datetime, value1, value2\n"; // Column names
while ($row = mysql_fetch_array($sql)) {
$output .='"' . $row[0] . '" ,';
$output .='"' . $row[1] . '" ,';
$output .='"' . ($row[1] * 5) . '"';
$output .="\n";
}