0

PHP に問題があります。次のような CSV ファイルがあります。

宿泊者名、カテゴリー、到着、出発、料金

ジョン・スミス、レジャー、01-04-10、02-04-10、150

アン・ワトソン、プライベート、01-​​04-11、02-04-11、120

現在 - 何千もの行があります。それらをカテゴリ別にグループ化し、すべてのレジャー、次にすべてのプライベートなどのレートを追加する必要があります。これにより、各カテゴリの合計を取得できます。

次のコードでCSVファイルをインポートできました:

<?php
$fp = fopen('bookings.csv','r') or die("can't open file");
print "<table>\n";

while($csv_line = fgetcsv($fp,1024)) {
    print '<tr>';
    for ($i = 0, $j = count($csv_line); $i < $j; $i++) 
    {
        print '<td>'.$csv_line[$i].'</td>';
    }
    print "</tr>\n";
}

print '</table>';
fclose($fp) or die("can't close file");
?>

しかし、それらをグループ化して変数に値を取得するのは困難です(関連するセルからの特定の値)

誰か助けてくれませんか?

ありがとう

4

2 に答える 2

0

csv ファイルは、データベースのパターンに従う必要があります。csv ファイルの列がこの Guestname 、category、arrival、department、rate の場合、これもデータベースの形式である必要があります。データを表示する前にデータベースに保存することをお勧めします..このコードを試してください

if (isset($_FILES['file'])) 
    {
        //Import uploaded file to Database
        $handle = fopen($_FILES['file']['tmp_name'], "r");

        while (($data = fgetcsv($handle, 5000, ",")) !== FALSE) 
        {
            $import= mysqli_query ($connect,"INSERT into table(Column_1,Column_2,Column_3,Column_4) 
            values('$data[0]','$data[1]','$data[2]','$data[3]')");

        }
           //fclose($handle);

    }
    else
    {
        echo "<script>alert('No File Selected')
</script>";
    }
于 2014-12-08T01:16:06.587 に答える
0

これは、fgetcsvの公式 PHP Docに基づいています。

$ratings = array()

if (($handle = fopen("bookings.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        if(!isset($ratings[$data[1]]))
            $ratings[$data[1]] = $data[4];
        $ratings[$data[1]] += $data[4];
    }
    fclose($handle);

var_dump($ratings);
于 2013-04-15T20:22:31.810 に答える