8439 sujets

Développement web côté serveur, CMS

Bonjour,

Je souhaite trouver et adapter un script php permettant à un utilisateur de charger un fichier .csv comportant des noms et prénoms, et de les insérer dans une table élèves (NOM, PRENOM)
Si quelqu'un peut m'aider? merci d'avance
Nico
Bon alors, j'ai testé la première soluce avec ça:

$row = 1;
if (($handle = fopen("../csv/test.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        echo "<p> $num champs à la ligne $row: <br /></p>\n";
        $row++;
        for ($c=0; $c < $num; $c++) {
            echo $data[$c] . "<br />\n";
        }
    }
    fclose($handle);
}


ça m'affiche le contenu du fichier CSV, il me reste maintenant à l'insérer dans ma table...

avec LOAD INFILE ça me paraît pas mal mais je ne vois pas comment insérer dans mon script PHP: genre ça?
LOAD DATA INFILE '../csv/test.csv' INTO TABLE eleves 
(ID_CLASSE,NOM,PRENOM);
Ok Alors voici mon dernier code, ça fonctionne parfaitement, mais un ultime réglage reste à trouver: ma table sql est en UTF8, mais lorsque j'importe mon fichier csv, il me l'importe brut, donc avec les accents et donc à l'affichage des ? sur les prénoms concernés...
Quelqu'un pourrait-il me guider pour faire en sorte que mon csv soit importé dans la base directement en UTF8?? merci d'avance je bloque là dessus... Smiley decu

Voici le code du formulaire:
<form enctype="multipart/form-data" action="import_eleves_ok.php?CODE_CLASSE=<?php echo $code_classe;?>" method="POST">
  <p>Aucun élève n'a été saisi dans cette classe, vous pouvez IMPORTER UNE LISTE issue d'un fichier au format CSV</p>
   <p>
     <input name="file" type="file" />
  </p>
   <p><input type="submit" value="Envoyez le fichier" /></p>
</form>


et le code de l'upload et insersion...

// CONNEXION à la base //
require_once('../connections/baseeps.php');
require_once('../connections/joomla1.php');

// RECUPERATION CODE_CLASSE
if (isset($_GET['CODE_CLASSE'])) {
  $code_classe = $_GET['CODE_CLASSE'];
}

// UPLOAD DU FICHIER CSV, vérification et insertion en BASE
if($_FILES["file"]["type"] != "application/vnd.ms-excel"){
	die("Ce n'est pas un fichier de type .csv");
}
elseif(is_uploaded_file($_FILES['file']['tmp_name'])){
mysql_select_db($database_baseeps, $baseeps);
	
	//Process the CSV file
	$handle = fopen($_FILES['file']['tmp_name'], "r");
	$data = fgetcsv($handle, 1000, ";"); //Remove if CSV file does not have column headings
	while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
		$att0 = mysql_real_escape_string($data[0]);
		$att1 = mysql_real_escape_string($data[1]);
		$att2 = mysql_real_escape_string($data[2]);
		$att3 = mysql_real_escape_string($data[3]);
		
		$sql = "INSERT INTO eleves (CODE_CLASSE, NOM, PRENOM)
					VALUES ('$code_classe', '" . $att0 . "', '" . $att1 . "')";
		mysql_query($sql);
	}
	header('Location: import_eleves.php?CODE_CLASSE='.$code_classe);
}
else{
	die("Vous ne devriez pas être là");
}

mysql_close();
?>