Importare CSV e compilare le giuste tabelle

ivarello

Utente Attivo
14 Dic 2012
211
1
16
salve a tutti, ho un bel quesito forse problematico, non se nessuno lo ha mai trattato qualcuno, ma spero vivamente di si. Praticamente sto cercando di importare un file csv nel database, il problema sorge per via delle mie esigenze, ovvero il file contiene una colonna con vari username, io vorrei che a seconda dello username, la riga vada a popolare i campi della tabella che porta il nome dello username.
Lo so, lo so è molto intrigato il discorso, cerco di aiutare la comprensione così:

file csv:

nome;cognome;città;username;
marco;rossi;milano;marcoross;
roberto;bianchi;roma;robertobianc;
giorgio;verdi;palermo;giorgioverd;
ecc;ecc;ecc;ecc;

dopo essere caricato dovrebbe andare a popolare le varie tabelle in questo modo:
Tabella: marcoross
[table="width: 500"]
[tr]
[td]nome[/td]
[td]cognome[/td]
[td]città[/td]
[td]username[/td]
[/tr]
[tr]
[td]marco[/td]
[td]rossi[/td]
[td]milano[/td]
[td]marcoross[/td]
[/tr]
[/table]

Tabella: robertobianc

[table="width: 500"]
[tr]
[td]nome[/td]
[td]cognome[/td]
[td]città[/td]
[td]username[/td]
[/tr]
[tr]
[td]roberto[/td]
[td]bianchi[/td]
[td]roma[/td]
[td]robertobianc[/td]
[/tr]
[/table]

Spero di essere stato un pò più chiaro :crying: help me pls
 
altra cosa qualcuno conosce un modo per evitare di caricare la prima riga e colonna?
 
Ho risolto il saltare la prima colonna e riga così (potrebbe essere utile a qualcuno):

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR...nsitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Upload page</title>
<style type="text/css">
body {
        background: #E3F4FC;
        font: normal 14px/30px Helvetica, Arial, sans-serif;
        color: #2b2b2b;
}
a {
        color:#898989;
        font-size:14px;
        font-weight:bold;
        text-decoration:none;
}
a:hover {
        color:#CC0033;
}
 
h1 {
        font: bold 14px Helvetica, Arial, sans-serif;
        color: #CC0033;
}
h2 {
        font: bold 14px Helvetica, Arial, sans-serif;
        color: #898989;
}
#container {
        background: #CCC;
        margin: 100px auto;
        width: 945px;
}
#form                   {padding: 20px 150px;}
#form input     {margin-bottom: 20px;}
</style>
</head>
<body>
<div id="container">
<div id="form">
 
<?php
 
include "include/config.php"; //Connect to Database
include "include/connect.php"; //Connect to Database
 
$deleterecords = "TRUNCATE TABLE tablename"; //empty the table of its current records
mysql_query($deleterecords);
 
//Upload File
if (isset($_POST['submit'])) {
        if (is_uploaded_file($_FILES['filename']['tmp_name'])) {
                echo "<h1>" . "File ". $_FILES['filename']['name'] ." uploaded successfully." . "</h1>";
                echo "<h2>Displaying contents:</h2>";
                readfile($_FILES['filename']['tmp_name']);
        }
 
        //importa il file nel database
        $handle = fopen($_FILES['filename']['tmp_name'], "r");
		
                //permette di saltare la prima riga
		$data = fgetcsv($handle, 1000, ";");  
 
               //partendo da $data[1] e non da $data[0] salto la prima colonna ;)
        while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
                $import="INSERT into nomedatabase (nome, cognome,  citta, username, messaggio, quando, achi) values('$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]')";
 
                mysql_query($import) or die(mysql_error());
        }
 
        fclose($handle);
 
        print "Upload avvenuto con successo";
 
        //tira fuori il form dell'upload
}else {
 
        print "cerca il file csv per l'upload<br />\n";
 
        print "<form enctype='multipart/form-data' action='upload.php' method='post'>";
 
        print "File name to import:<br />\n";
 
        print "<input size='50' type='file' name='filename'><br />\n";
 
        print "<input type='submit' name='submit' value='Upload'></form>";
 
}
 
?>
 
</div>
</div>
</body>
</html>

per quanto riguarda lo smistamento nel giusto database sono ancora in alto mare, se qualcuno mi da una mano esce un bel lavoretto ;)
Praticamente si dovrebbe analizzare la colonna $data[4] a seconda dello username smistare nel database giusto, ma solo le righe che contengono lo username.
 
Ultima modifica:

Discussioni simili