There are few ways to import CSV into MySQL DB:
1. Manually using phpMyAdmin -- select DB, table and choose "Import".
2. MySQL can even use CSV as database storage engine (work with CSV file directly) -- but this is not recommended to use it extensively as performance is not that great -- but enough for reading data from it occasionally. The CSV file has to use specific row/column delimiters.
Official documentation: http://dev.mysql.com/doc/refman/5.1/en/csv-storage-engine.html
3. Executing this sort of SQL command (you just need to do a little bit of coding to implement this as a webpage/script):
LOAD DATA LOCAL INFILE "xxx.cvs"
INTO TABLE xxx
FIELDS TERMINATED BY ','
ENCLOSED BY '\"'
LINES TERMINATED BY '\n'
Official documentation: http://dev.mysql.com/doc/refman/5.1/en/load-data.html
4. Code your own script that will read data line by line from CSV file and convert them into SQL commands (
INSERT INTO ...).
You are asking for already existing open source solution -- phpMyAdmin is a perfect example. It is more that just an import script -- it is widely used by manage MySQL databases, but it does what you need -- import data from CSV file into MySQL DB.
Unfortunately I do not know any Open Source reporting web-based tool -- if I need a report I will code it myself.
If you search for CSV 2 MySQL a bit, you will see quite a lot PHP-based scripts available. Some of them are free and some cost some money; some will be able to handle any CSV format (row delimiter, column delimiter, non-ascii characters etc) while other may only handle a limited variation.