PDA

View Full Version : Import CSV dans MySQL


pmadfm
09-28-2007, 10:08 AM
Bonjour,

Voici un exemple d'import de fichier csv dans Mysql, il reste bien sur à l'adapter à votre table en modifiant les éléments du mapping.

Cet exemple charge des tables de catégories et de sites dans un script d'annuaire : Utilisable, à vous de l'adapter à vos besoin.

<?php
// IMPORTATOIN DE LA TABLE DES CATEGORIES !1ERE VERSION!

include("connectSite.php");

$db = ouvreBase($SQLhost, $SQLuser, $SQLpass, $SQLbase);
//include("../includes/connect.php");

// variables
$fichier = "categorie.csv";

echo("V1 $SQLbase<BR>");

$db = mysql_connect($SQLhost,$SQLuser,$SQLpass) or die("Impossible de se connecter la base de donnees");
mysql_select_db($SQLbase);


//mysql_query("DELETE FROM categories_v2", $db);

// ouverture du fichier en lecture
if (file_exists($fichier))
$fp = fopen("$fichier", "r");
else{ // fichier inconnu
echo "Fichier introuvable !<br>Importation stoppe.";
exit();
}

// importation
while (!feof($fp)){
$ligne = fgets($fp,4096);
$liste = explode(";",$ligne); // on cree un tableau des elements separe par point virgule
$id = $liste[0];
$id_cat_mere = $liste[1];
$cat_name = $liste[2];
$texte = $liste[3];
$activation = $liste[4];
$position = $liste[5];
$can_add = $liste[6];

$query = "INSERT INTO categories_v2 VALUES('$id','$id_cat_mere','$cat_name','$texte',' $activation','$position','$can_add');";
$result= mysql_query($query, $db);
if (mysql_error()){
echo "Erreur dans la base de donnees soit des virgule sont presente, soit votre hebergeur vous lock<br> ou tou simplement pour l'erreur suivante : ".mysql_error();
echo "<br>Importation stope !";
fclose($fp);
exit();
}else{
echo "$cat_name | $texte
<br>";
}
}

echo "<br>Importation termine, avec succes";


?>


<?
// IMPORTATOIN DE LA TABLE DES SITES !1ERE VERSION!


// variables
$fichier = "sites.csv";

echo("V1 $SQLbase<BR>");

$db = mysql_connect($SQLhost,$SQLuser,$SQLpass) or die("Impossible de se connecter la base de donnees");
mysql_select_db($SQLbase);


//mysql_query("DELETE FROM sites_v2", $db);

// ouverture du fichier en lecture
if (file_exists($fichier))
$fp = fopen("$fichier", "r");
else{ // fichier inconnu
echo "Fichier introuvable !<br>Importation stoppe";
exit();
}
// lors de l'importation faite gaffe au point virgule dans les commentaires car ca va vous décaler l'import
// importation
while (!feof($fp)){
$ligne = fgets($fp,4096);
$liste = explode(";",$ligne); // on cree un tableau des elements separe par point virgule
$id = $liste[0];
$id_cat = $liste[1];
$titre = $liste[2];
$description = $liste[3];
$url = $liste[4];
$url_image = $liste[5];
$nom_proprio = $liste[6];
$email_proprio = $liste[7];
$date_validation = $liste[8];
$activation = $liste[9];
$niveau = $liste[10];
$nb_clics = $liste[11];
$moyenne_votes = $liste[12];
$nb_votes = $liste[13];
$nb_com = $liste[14];

$query = "INSERT INTO sites_v2 VALUES('$id','$id_cat','$titre','$description','$u rl','$url_image','$nom_proprio','$email_proprio',' $date_validation','$activation','$niveau','$nb_cli cs','$moyenne_votes','$nb_votes','$nb_com');";
$result= mysql_query($query, $db);
if (mysql_error()){
echo "Erreur dans la base de donnees soit des virgule sont presente, soit votre hebergeur vous lock <br> ou tout simplement pour l'erreur suivante : ".mysql_error();
echo "<br>Importation stope";
fclose($fp);
exit();
}else{
echo "$url | $titre
<br>";
}
}

echo "<br>Importation termine, avec succes.";

fclose($fp);
mysql_close($db);
?>

adyonne
09-28-2007, 06:29 PM
bonsoir,

Je ne comprends pas tout, mais bon, nous sommes ici pour poser des questions, n'est ce pas.

1] Ce fichier on lui donne n'importe quel nom ?

Un exemple me parait plus parlant pour moi,
car j'aimerai importer un fichier cvs, comme je suis pas un expert d'informatique une petite aide me serait nécessaire.

Merci

pmadfm
10-02-2007, 08:51 AM
Bonjour,

Je suppose que tu veux dire CSV et non cvs.

Comme c'est un programme en php tu l'appelle comme tu le souhaite, simplement il te faut modifier les noms de table et des variables pour les faire correspondre à ton existant.

Le but est de fournir un exemple de programme prêt à être modifié pour ceux qui ne maîtrise pas PHP, mais il faut quand même avoir quelques notions en mysql et en php et phpmyadmin.

Sinon tu n'ira pas loin.

John Turner
10-02-2007, 09:07 AM
Bonjour, tous le monde.
Si vous avez quelques questions ne hesistez pas pour posser leur ici.

ebionet
10-07-2007, 11:41 AM
can u post your script in English please

TurXaliM
10-07-2007, 01:23 PM
can u post your script in English pleasehttp://www.esyndicat.com/forum/forum-32.html

pmadfm
10-08-2007, 04:33 PM
can u post your script in English please

Sorry !

But this forum is an forum in french !

This is an modele for programing an import to mysql from file csv in PHP.

Modify the varaible and the table and ok !

Also goto at 01-AGF Annuaire Généraliste Francophone (http://annuaire-generaliste.01adfm.com)