8785 sujets
Développement web côté serveur, CMS
Tu devrais trouver ton bonheur par là --> fgetcsv

y'a encore plus simple avec MySql, avec LOAD INFILE
http://dev.mysql.com/doc/refman/5.0/fr/load-data.html
(marche très bien en local mais ne fonctionne pas sur les mutualisés en général)
http://dev.mysql.com/doc/refman/5.0/fr/load-data.html
(marche très bien en local mais ne fonctionne pas sur les mutualisés en général)
Bon alors, j'ai testé la première soluce avec ça:
ç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?
$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...
Voici le code du formulaire:
et le code de l'upload et insersion...
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...

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();
?>