Insertion d'un fichier csv dans BDD
debutant
-
debutant -
debutant -
Bonjour,
Je voudrais insérer des fichiers en .csv dans ma base de donnée(Xampp, PHPMyAdmin)
J'ai crée sous PhpMyAdmin une table nommée cout et je voudrais donc le remplir en insérant le fichier .csv
Ma table cout est composé de : Id_Cout, MontantB, MontantN
J'ai crée un formulaire avec un bouton parcourir(qui va aller chercher le fichier)
Maintenant je dois crée un script en php et c'est la que je bloque....
j'ai cherché un peu partout mais je n'ai malheureusement pas trouvé la solution...
voici mon formulaire en 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>
Merci de m'aider pour le script SVP
Je voudrais insérer des fichiers en .csv dans ma base de donnée(Xampp, PHPMyAdmin)
J'ai crée sous PhpMyAdmin une table nommée cout et je voudrais donc le remplir en insérant le fichier .csv
Ma table cout est composé de : Id_Cout, MontantB, MontantN
J'ai crée un formulaire avec un bouton parcourir(qui va aller chercher le fichier)
Maintenant je dois crée un script en php et c'est la que je bloque....
j'ai cherché un peu partout mais je n'ai malheureusement pas trouvé la solution...
voici mon formulaire en 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>
Merci de m'aider pour le script SVP
A voir également:
- Insertion d'un fichier csv dans BDD
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
39 réponses
Il faut le faire en deux fois ;-)
Tu fais deux requetes, donc deux fois :
$sql1="INSERT INTO ma table VALUES (mes valeurs)";
$req1=mysql_query($sql1)or die (mysql_error());
$sql2="INSERT INTO ma table 2 VALUES (mes autres valeurs)";
$req2=mysql_query($sql2)or die (mysql_error());
Tu fais deux requetes, donc deux fois :
$sql1="INSERT INTO ma table VALUES (mes valeurs)";
$req1=mysql_query($sql1)or die (mysql_error());
$sql2="INSERT INTO ma table 2 VALUES (mes autres valeurs)";
$req2=mysql_query($sql2)or die (mysql_error());
$sql="INSERT INTO couts VALUES ('".$tableauValeurs[0]."', '".$tableauValeurs[12]."', '".$tableauValeurs[15]."')";
$sql1="INSERT INTO rub VALUES ('".$tableauValeurs[9]."', '".$tableauValeurs[10]."', '".$tableauValeurs[16]."', '".$tableauValeurs[17]."')";
$sql2="INSERT INTO rem VALUES ('".$tableauValeurs[13]."', '".$tableauValeurs[14]."')";
$req=mysql_query($sql)or die (mysql_error());
$req2=mysql_query($sql1)or die (mysql_error());
$req3=mysql_query($sql2)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";
}
if ($req2)
{
echo"Ajout dans la base de données effectué avec succès";
}
else
{
echo"Echec dans l'ajout dans la base de données";
}
if ($req3)
{
echo"Ajout dans la base de données effectué avec succès";
}
else
{
echo"Echec dans l'ajout dans la base de données";
}
Sa rajoute les lignes mais pas les valeurs(qui sont vides ou des zéro)
$sql1="INSERT INTO rub VALUES ('".$tableauValeurs[9]."', '".$tableauValeurs[10]."', '".$tableauValeurs[16]."', '".$tableauValeurs[17]."')";
$sql2="INSERT INTO rem VALUES ('".$tableauValeurs[13]."', '".$tableauValeurs[14]."')";
$req=mysql_query($sql)or die (mysql_error());
$req2=mysql_query($sql1)or die (mysql_error());
$req3=mysql_query($sql2)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";
}
if ($req2)
{
echo"Ajout dans la base de données effectué avec succès";
}
else
{
echo"Echec dans l'ajout dans la base de données";
}
if ($req3)
{
echo"Ajout dans la base de données effectué avec succès";
}
else
{
echo"Echec dans l'ajout dans la base de données";
}
Sa rajoute les lignes mais pas les valeurs(qui sont vides ou des zéro)
Bah ca veut dire que ton $tableauValeurs est vide alors !
Fais un print_r($tableauValeurs) pour voir ce qu'il y a dedans
Fais un print_r($tableauValeurs) pour voir ce qu'il y a dedans
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
"Numéro du centre de facturation","Numéro de référence de la facture","Nom du client","Numéro de l'utilisateur","Nom et prénom de l'utilisateur","Numéro de référence de l'utilisateur","Numéro de téléphone","Période de la facture","Nom de la rubrique","Nom de la sous-rubrique","Quantité ou volume","Montant brut","Taux de remise","Montant des remises","Montant Net"," Nom de la rubrique de niveau 1"," Nom de la rubrique de niveau 2"
"7.22548.11",20001720010313," SERVICE FINANCIER","7.22548.11.00.100006","1 COMMUNE DE SEVRAN","0842048077-0842048077",143101060,27/03/13,"Communications",,,"47,9",,"-9,35","38,55",,
"7.22548.11",20001720010313," SERVICE FINANCIER","7.22548.11.00.100006","1 COMMUNE DE SEVRAN","0842048077-0842048077",143101060,27/03/13,"Communications",,,"47,9","19,52","-9,35","38,55","Depuis le fixe",
"7.22548.11",20001720010313," SERVICE FINANCIER","7.22548.11.00.100006","1 COMMUNE DE SEVRAN","0842048077-0842048077",143101060,27/03/13,"Communications",,,0,0,0,0,"Depuis le fixe","Communications incluses"
"7.22548.11",20001720010313," SERVICE FINANCIER","7.22548.11.00.100006","1 COMMUNE DE SEVRAN","0842048077-0842048077",143101060,27/03/13,"Communications","Appels Fixes vers Fixes",03:52:06,0,0,0,0,"Depuis le fixe","Communications incluses"
"7.22548.11",20001720010313," SERVICE FINANCIER","7.22548.11.00.100006","1 COMMUNE DE SEVRAN","0842048077-0842048077",143101060,27/03/13,"Communications","Appels Fixes vers International",01:29:51,0,0,0,0,"Depuis le fixe","Communications incluses"
"7.22548.11",20001720010313," SERVICE FINANCIER","7.22548.11.00.100006","1 COMMUNE DE SEVRAN","0842048077-0842048077",143101060,27/03/13,"Communications","Appels Fixes vers Interne",03:13:18,0,0,0,0,"Depuis le fixe","Communications incluses"
voici les données que je dois importé dans déférent tables(rub,rem,couts)
et le code :
$sql="INSERT INTO couts VALUES ('".$tableauValeurs[11]."', '".$tableauValeurs[14]."')";
$sql1="INSERT INTO rub VALUES ('".$tableauValeurs[9]."', '".$tableauValeurs[10]."', '".$tableauValeurs[16]."', '".$tableauValeurs[17]."')";
$sql2="INSERT INTO rem VALUES ('".$tableauValeurs[13]."', '".$tableauValeurs[14]."')";
$req=mysql_query($sql)or die (mysql_error());
$req2=mysql_query($sql1)or die (mysql_error());
$req3=mysql_query($sql2)or die (mysql_error());
Mais sa insère les lignes mais pas les données....
"7.22548.11",20001720010313," SERVICE FINANCIER","7.22548.11.00.100006","1 COMMUNE DE SEVRAN","0842048077-0842048077",143101060,27/03/13,"Communications",,,"47,9",,"-9,35","38,55",,
"7.22548.11",20001720010313," SERVICE FINANCIER","7.22548.11.00.100006","1 COMMUNE DE SEVRAN","0842048077-0842048077",143101060,27/03/13,"Communications",,,"47,9","19,52","-9,35","38,55","Depuis le fixe",
"7.22548.11",20001720010313," SERVICE FINANCIER","7.22548.11.00.100006","1 COMMUNE DE SEVRAN","0842048077-0842048077",143101060,27/03/13,"Communications",,,0,0,0,0,"Depuis le fixe","Communications incluses"
"7.22548.11",20001720010313," SERVICE FINANCIER","7.22548.11.00.100006","1 COMMUNE DE SEVRAN","0842048077-0842048077",143101060,27/03/13,"Communications","Appels Fixes vers Fixes",03:52:06,0,0,0,0,"Depuis le fixe","Communications incluses"
"7.22548.11",20001720010313," SERVICE FINANCIER","7.22548.11.00.100006","1 COMMUNE DE SEVRAN","0842048077-0842048077",143101060,27/03/13,"Communications","Appels Fixes vers International",01:29:51,0,0,0,0,"Depuis le fixe","Communications incluses"
"7.22548.11",20001720010313," SERVICE FINANCIER","7.22548.11.00.100006","1 COMMUNE DE SEVRAN","0842048077-0842048077",143101060,27/03/13,"Communications","Appels Fixes vers Interne",03:13:18,0,0,0,0,"Depuis le fixe","Communications incluses"
voici les données que je dois importé dans déférent tables(rub,rem,couts)
et le code :
$sql="INSERT INTO couts VALUES ('".$tableauValeurs[11]."', '".$tableauValeurs[14]."')";
$sql1="INSERT INTO rub VALUES ('".$tableauValeurs[9]."', '".$tableauValeurs[10]."', '".$tableauValeurs[16]."', '".$tableauValeurs[17]."')";
$sql2="INSERT INTO rem VALUES ('".$tableauValeurs[13]."', '".$tableauValeurs[14]."')";
$req=mysql_query($sql)or die (mysql_error());
$req2=mysql_query($sql1)or die (mysql_error());
$req3=mysql_query($sql2)or die (mysql_error());
Mais sa insère les lignes mais pas les données....
Fais plutot un print_r de chaque variable que tu veux inséré, genre print_r($tableauValeurs[11]) pcq le tableau est un peu long pour chercher le 11 et les autres x)
$sql="INSERT INTO couts VALUES ('".$tableauValeurs[11]."', '".$tableauValeurs[14]."')";
$sql1="INSERT INTO rub VALUES ('".$tableauValeurs[9]."', '".$tableauValeurs[10]."', '".$tableauValeurs[16]."', '".$tableauValeurs[17]."')";
$sql2="INSERT INTO rem VALUES ('".$tableauValeurs[13]."', '".$tableauValeurs[14]."')";
print_r($sql);
print_r($sql1);
print_r($sql2);
$req=mysql_query($sql)or die (mysql_error());
$req2=mysql_query($sql1)or die (mysql_error());
$req3=mysql_query($sql2)or die (mysql_error());
ça va donc se présenter comme ça ?
$sql1="INSERT INTO rub VALUES ('".$tableauValeurs[9]."', '".$tableauValeurs[10]."', '".$tableauValeurs[16]."', '".$tableauValeurs[17]."')";
$sql2="INSERT INTO rem VALUES ('".$tableauValeurs[13]."', '".$tableauValeurs[14]."')";
print_r($sql);
print_r($sql1);
print_r($sql2);
$req=mysql_query($sql)or die (mysql_error());
$req2=mysql_query($sql1)or die (mysql_error());
$req3=mysql_query($sql2)or die (mysql_error());
ça va donc se présenter comme ça ?
INSERT INTO couts VALUES ('', '')INSERT INTO rub VALUES ('', '', '', '')
voila ce qui s'affiche....
Tout en bas de la page il y a écrit Query was empty
voila ce qui s'affiche....
Tout en bas de la page il y a écrit Query was empty
Bonjour, tout est fini mais une dernière question...
Je dois sélectionner le fichier avec un bouton parcourir. Or, dans mon code il y a le chemin et donc le bouton parcourir ne sert plus a rien...
Comment faire pour changer ?
$fichier = fopen("C:\Fichier\ex.csv", "r");
merci
Je dois sélectionner le fichier avec un bouton parcourir. Or, dans mon code il y a le chemin et donc le bouton parcourir ne sert plus a rien...
Comment faire pour changer ?
$fichier = fopen("C:\Fichier\ex.csv", "r");
merci
Attention, le bouton parcourir agit sur l'ordinateur de l'utilisateur, afin de prendre l'élement sélectionner sur l'ordi de l'utilisateur et de le copier sur ton serveur.
Si c'est ce que tu veux faire, tu récupères avec le fichier sous cette forme : $_FILES[nom du fichier][informations du fichier]
Donc si tu as un <input type="file" name="monFichier">
Tu le récupère avec $_FILES['monFichier']['tmp_name'] sur le quel tu peux faire un fopen
Si c'est ce que tu veux faire, tu récupères avec le fichier sous cette forme : $_FILES[nom du fichier][informations du fichier]
Donc si tu as un <input type="file" name="monFichier">
Tu le récupère avec $_FILES['monFichier']['tmp_name'] sur le quel tu peux faire un fopen
//Le chemin d'acces
$fichier = fopen($_FILES['monFichier']['tmp_name'], "r");
Merci pour de votre aide, ca fonctionne :)
$fichier = fopen($_FILES['monFichier']['tmp_name'], "r");
Merci pour de votre aide, ca fonctionne :)