A voir également:
- Insertion d'un fichier csv dans BDD
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier rar - Guide
- Ouvrir un fichier .bin - Guide
- Comment ouvrir un fichier docx ? - Guide
39 réponses
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
10 juin 2013 à 16:15
10 juin 2013 à 16:15
Salut !
Quelle est la structure de ton fichier csv ?
Ensuite, est-ce que tu veux stocké le fichier csv ? Ou est-ce que tu veux simplement ajouté ces données ?
Tu peux déjà te renseigner sur l'upload de fichier en php (google est ton amis),
ainsi que sur le "traitement" d'un fichier csv.
Mais je t'aiderais également quand tu auras répondu à mes premières questions :)
Quelle est la structure de ton fichier csv ?
Ensuite, est-ce que tu veux stocké le fichier csv ? Ou est-ce que tu veux simplement ajouté ces données ?
Tu peux déjà te renseigner sur l'upload de fichier en php (google est ton amis),
ainsi que sur le "traitement" d'un fichier csv.
Mais je t'aiderais également quand tu auras répondu à mes premières questions :)
Bonjour,
Je veux ajouté ces données dans ma bdd.
Je n'ai pas compris votre première question...
Merci
Je veux ajouté ces données dans ma bdd.
Je n'ai pas compris votre première question...
Merci
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
10 juin 2013 à 16:34
10 juin 2013 à 16:34
Ton fichier csv se présente comment ?
Peux copier/coller les premières lignes :)
Peux copier/coller les premières lignes :)
Id_Cout MontantB MontantN
1 47,9 38,55
2 47,9 38,55
3 0 0
4 0 0
5 0 0
6 0 0
7 0 0
8 47,9 38,55
9 18,06 18,06
10 17,96 8,98
11 0,74 0,37
12 3,25 3,25
13 7,9 7,9
14 90 54
15 90 54
16 90 54
17 0 0
18 0 0
19 0 0
20 0 0
21 0 0
22 1,05 0,53
etc....
voila les première lignes
1 47,9 38,55
2 47,9 38,55
3 0 0
4 0 0
5 0 0
6 0 0
7 0 0
8 47,9 38,55
9 18,06 18,06
10 17,96 8,98
11 0,74 0,37
12 3,25 3,25
13 7,9 7,9
14 90 54
15 90 54
16 90 54
17 0 0
18 0 0
19 0 0
20 0 0
21 0 0
22 1,05 0,53
etc....
voila les première lignes
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
10 juin 2013 à 16:43
10 juin 2013 à 16:43
Tu l'as ouvert avec excel ou avec un bloc note ?
Pourquoi une fois il y a :
1 47,9 38,55
Et ensuite :
3 0 0
Pourquoi une fois il y a :
1 47,9 38,55
Et ensuite :
3 0 0
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
10 juin 2013 à 17:01
10 juin 2013 à 17:01
Ouvre le avec le bloc note et copie/colle :)
Maisce que je veux dire, c'est que une fois les chiffres sont séparés par une virgule et l'autre fois par un espace
Maisce que je veux dire, c'est que une fois les chiffres sont séparés par une virgule et l'autre fois par un espace
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
10 juin 2013 à 20:07
10 juin 2013 à 20:07
Ca complique les choses ^^
Alors ce que je te propose :
Il faut tout d'abord récupéré le contenu du fichier (regarde la fonction get_file_content)
Ensuite tu peux faire un explode sur le retour à la ligne
Et un sur la virgule ou l'espace :)
Et puis tu fais ton isert into avec les données que tu veux :)
Alors ce que je te propose :
Il faut tout d'abord récupéré le contenu du fichier (regarde la fonction get_file_content)
Ensuite tu peux faire un explode sur le retour à la ligne
Et un sur la virgule ou l'espace :)
Et puis tu fais ton isert into avec les données que tu veux :)
-récupéré le contenu du fichier
-explode
-Enfin, insert
je vaisessayer cela et je vous met au courant :)
-explode
-Enfin, insert
je vaisessayer cela et je vous met au courant :)
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
10 juin 2013 à 21:07
10 juin 2013 à 21:07
Ouais voila en gros c'est ca :)
//Formulaire html
form action="ajouter.php" method="post" enctype="multipart/form-data" name="form1">
<p><input type="file" name="file" /></p>
<input type="submit" name="Submit" value="Submit">
</form>
// script php
<?php
$file = file_get_contents('C:\Fichier'); //le chemin
echo strlen($file);
LOAD DATA LOCAL INFILE "cout.CSV" // le load data
INTO TABLE cout
FIELDS
TERMINATED BY ';'
OPTIONAlLY ENCLOSED BY '"'
ESCAPED BY '\\'
LINES
TERMINATED BY '\r\n'
IGNORE 1 LINES
while (!feof($fp))
{ /* Tant qu'on n'atteint pas la fin du fichier */
$ligne = fgets($fp,4096); /* On lit une ligne */
$liste = explode( ";",$ligne);
$Id_Cout = $liste[0];
$MontantB = $liste[1];
$MontantN = $liste[2];
$query = "INSERT INTO 'cout'('Id_Cout', 'MontantB', 'MontantN') VALUES ('$Id_Cout','$MontanB','$MontanN')";
$result= MYSQL_QUERY($query);
}
?>
Ou est mon erreur ?
form action="ajouter.php" method="post" enctype="multipart/form-data" name="form1">
<p><input type="file" name="file" /></p>
<input type="submit" name="Submit" value="Submit">
</form>
// script php
<?php
$file = file_get_contents('C:\Fichier'); //le chemin
echo strlen($file);
LOAD DATA LOCAL INFILE "cout.CSV" // le load data
INTO TABLE cout
FIELDS
TERMINATED BY ';'
OPTIONAlLY ENCLOSED BY '"'
ESCAPED BY '\\'
LINES
TERMINATED BY '\r\n'
IGNORE 1 LINES
while (!feof($fp))
{ /* Tant qu'on n'atteint pas la fin du fichier */
$ligne = fgets($fp,4096); /* On lit une ligne */
$liste = explode( ";",$ligne);
$Id_Cout = $liste[0];
$MontantB = $liste[1];
$MontantN = $liste[2];
$query = "INSERT INTO 'cout'('Id_Cout', 'MontantB', 'MontantN') VALUES ('$Id_Cout','$MontanB','$MontanN')";
$result= MYSQL_QUERY($query);
}
?>
Ou est mon erreur ?
"Id_Cout","MontantB","MontantN"
1,"47,9","38,55"
2,"47,9","38,55"
3,0,0
4,0,0
5,0,0
6,0,0
7,0,0
8,"47,9","38,55"
9,"18,06","18,06"
10,"17,96","8,98"
11,"0,74","0,37"
12,"3,25","3,25"
13,"7,9","7,9"
14,90,54
15,90,54
16,90,54
17,0,0
ouvert avec bloc note :)
1,"47,9","38,55"
2,"47,9","38,55"
3,0,0
4,0,0
5,0,0
6,0,0
7,0,0
8,"47,9","38,55"
9,"18,06","18,06"
10,"17,96","8,98"
11,"0,74","0,37"
12,"3,25","3,25"
13,"7,9","7,9"
14,90,54
15,90,54
16,90,54
17,0,0
ouvert avec bloc note :)
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
11 juin 2013 à 15:23
11 juin 2013 à 15:23
Partie php :
$texte = file_get_content($_FILES['file']['path']); // regarde la doc de $_FILES pour récupérer le chemin
$texte = strreplace('"',''); // on enlève les "
$lignes = explode("\n", $texte); // A vérifier pour le retour à la ligne
for($i = 1 ; $i < count($lignes) ; $i++) // On parcourt chaque ligne
{
$ligne = explode(',', $lignes[$i]);
insert into maTable set id_count = $ligne[0], montantB = $ligne[1], montantN = $ligne[2]
}
Engros ca peut marché
$texte = file_get_content($_FILES['file']['path']); // regarde la doc de $_FILES pour récupérer le chemin
$texte = strreplace('"',''); // on enlève les "
$lignes = explode("\n", $texte); // A vérifier pour le retour à la ligne
for($i = 1 ; $i < count($lignes) ; $i++) // On parcourt chaque ligne
{
$ligne = explode(',', $lignes[$i]);
insert into maTable set id_count = $ligne[0], montantB = $ligne[1], montantN = $ligne[2]
}
Engros ca peut marché
Bonjour,
Le script marche, merci
Mais maintenant j'ai un autre problème.
la on insert que dans une table(coûts), comment on doit procéder pour pouvoir insérer dans autre tables(pour qu'il y ait un choix)
merci
Le script marche, merci
Mais maintenant j'ai un autre problème.
la on insert que dans une table(coûts), comment on doit procéder pour pouvoir insérer dans autre tables(pour qu'il y ait un choix)
merci
voici l'affichage du fichier .csv :
"Id_Cout","MontantB","MontantN"
1,"47,9","38,55"
2,"47,9","38,55"
3,0,0
4,0,0
5,0,0
6,0,0
7,0,0
8,"47,9","38,55"
9,"18,06","18,06"
10,"17,96","8,98"
11,"0,74","0,37"
12,"3,25","3,25"
13,"7,9","7,9"
14,90,54
15,90,54
16,90,54
17,0,0
18,0,0
19,0,0
20,0,0
Sur ma base de donées, il affiche pas les chiffre décimaux.
comment faire ?
voici le scprit :
<?php
// ouverture
mysql_connect("localhost","root","");
mysql_select_db("mysql");
//Le chemin d'acces
$fichier = fopen("C:\Fichier\couts.csv", "r");
//tant que
while (!feof($fichier))
{
// On recupere toute la ligne
$uneLigne = fgets($fichier, 1024);
//On met dans un tableau les differentes valeurs trouvés (ici séparées par un ';')
$tableauValeurs = explode(',', $uneLigne);
// On crée la requete pour inserer les donner (ici il y a 3 champs donc de [0] a [2])
$sql="INSERT INTO couts VALUES ('".$tableauValeurs[0]."', '".$tableauValeurs[1]."', '".$tableauValeurs[2]."')";
$req=mysql_query($sql)or die (mysql_error());
}
//vérification et réponse
if ($req)
{
echo"Ajout dans la base de données effectué avec succès";
}
else
{
echo"Echec dans l'ajout dans la base de données";
}
?>
"Id_Cout","MontantB","MontantN"
1,"47,9","38,55"
2,"47,9","38,55"
3,0,0
4,0,0
5,0,0
6,0,0
7,0,0
8,"47,9","38,55"
9,"18,06","18,06"
10,"17,96","8,98"
11,"0,74","0,37"
12,"3,25","3,25"
13,"7,9","7,9"
14,90,54
15,90,54
16,90,54
17,0,0
18,0,0
19,0,0
20,0,0
Sur ma base de donées, il affiche pas les chiffre décimaux.
comment faire ?
voici le scprit :
<?php
// ouverture
mysql_connect("localhost","root","");
mysql_select_db("mysql");
//Le chemin d'acces
$fichier = fopen("C:\Fichier\couts.csv", "r");
//tant que
while (!feof($fichier))
{
// On recupere toute la ligne
$uneLigne = fgets($fichier, 1024);
//On met dans un tableau les differentes valeurs trouvés (ici séparées par un ';')
$tableauValeurs = explode(',', $uneLigne);
// On crée la requete pour inserer les donner (ici il y a 3 champs donc de [0] a [2])
$sql="INSERT INTO couts VALUES ('".$tableauValeurs[0]."', '".$tableauValeurs[1]."', '".$tableauValeurs[2]."')";
$req=mysql_query($sql)or die (mysql_error());
}
//vérification et réponse
if ($req)
{
echo"Ajout dans la base de données effectué avec succès";
}
else
{
echo"Echec dans l'ajout dans la base de données";
}
?>
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
12 juin 2013 à 14:36
12 juin 2013 à 14:36
Sur ma base de donées, il affiche pas les chiffre décimaux.
Ton champ dans la base de données doit être un int, déclare le en float ou autre et le problème sera résolu ;-)
Ton champ dans la base de données doit être un int, déclare le en float ou autre et le problème sera résolu ;-)
oui merci :)
J'ai une dernière question...
La on peut juste insérer les données dans une seul table, comment faire pour avoir la possibilité de faire des insertion dans d'autre tables aussi ?
merci
voici mon code :
// ouverture
mysql_connect("localhost","root","");
mysql_select_db("mysql");
//Le chemin d'acces
$fichier = fopen("C:\Fichier\couts.csv", "r");
//vide la table balance avant toute insertion
//$req="TRUNCATE TABLE couts";
//mysql_query($req)or die (mysql_error());
//tant que
while (!feof($fichier))
{
// On recupere toute la ligne
$uneLigne = fgets($fichier, 1024);
//On met dans un tableau les differentes valeurs trouvés (ici séparées par un ',')
$tableauValeurs = explode(';', $uneLigne);
// On crée la requete pour inserer les donner (ici il y a 3 champs donc de [0] a [2])
$sql="INSERT INTO couts VALUES ('".$tableauValeurs[0]."', '".$tableauValeurs[1]."', '".$tableauValeurs[2]."')";
$req=mysql_query($sql)or die (mysql_error());
}
//vérification et réponse
if ($req)
{
echo"Ajout dans la base de données effectué avec succès";
}
else
{
echo"Echec dans l'ajout dans la base de données";
}
?>
J'ai une dernière question...
La on peut juste insérer les données dans une seul table, comment faire pour avoir la possibilité de faire des insertion dans d'autre tables aussi ?
merci
voici mon code :
// ouverture
mysql_connect("localhost","root","");
mysql_select_db("mysql");
//Le chemin d'acces
$fichier = fopen("C:\Fichier\couts.csv", "r");
//vide la table balance avant toute insertion
//$req="TRUNCATE TABLE couts";
//mysql_query($req)or die (mysql_error());
//tant que
while (!feof($fichier))
{
// On recupere toute la ligne
$uneLigne = fgets($fichier, 1024);
//On met dans un tableau les differentes valeurs trouvés (ici séparées par un ',')
$tableauValeurs = explode(';', $uneLigne);
// On crée la requete pour inserer les donner (ici il y a 3 champs donc de [0] a [2])
$sql="INSERT INTO couts VALUES ('".$tableauValeurs[0]."', '".$tableauValeurs[1]."', '".$tableauValeurs[2]."')";
$req=mysql_query($sql)or die (mysql_error());
}
//vérification et réponse
if ($req)
{
echo"Ajout dans la base de données effectué avec succès";
}
else
{
echo"Echec dans l'ajout dans la base de données";
}
?>
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
12 juin 2013 à 15:04
12 juin 2013 à 15:04
Bah tu fais un autre insert into dans une autre table, non ? :)