使用php在csv中进行计算

时间:2016-01-02 11:07:35

标签: php csv

首先让我自我介绍一下: 我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分钟执行一次这个脚本。

有人可以帮助我朝正确的方向发展吗?

2 个答案:

答案 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";
}