A voir également:
- Importer un fichier csv dans mysql en php
- Importation fichier csv dans mysql (php) ✓ - Forum - PHP
- Importer contenu de fichier csv dans base de données MySQL ✓ - Forum - MySQL
- {MySQL} script d'importation auto de csv vers BDD ✓ - Forum - MySQL
- Import fichier CSV to PhpMyadmin ✓ - Forum - PHP
- {MySQL} Je n'arrive pas importer un fichier .csv . - Forum - MySQL
2 réponses
kuslargibi
// ****************************************************************** *
// ******Lire un csv et l'importer dans la base de donnée *
// ******2 fichiers nécessaires : formulaire.php et ajouter.php *
// *********l'un pour choisir le fichier csv et l'autre pour *
// ***************enregistrer dans la bdd *
**** le fichier csv doit etre du type ci dessous *
*** link,email *
*** www.mafonction.com,axel@tueslemeilleur.com *
*** www.csvfacile.com,csv@insert.com *
///************************************************************ *********
//formulaire.php
<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>
________________________________________________
//ajouter.php
//lire un csv et ajouter le couple email,url dans la base de donnee
if (isset($_FILES['file'])) {
$file = $_FILES['file']['tmp_name'];
$handle = fopen($file,'r');
$row = 1;
$handle = fopen("$file", "r");
while (($data = fgetcsv($handle, 4096, ",")) !== FALSE) {
$num = count($data);
//echo "<p> $num fields in line $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
//je met les donnees en miniscule et detecte si l'email est dans la colonne 0 ou 1
//meme chose pour l'url
//je les transformes en miniscule
$data[1]=strtolower($data[1]);
$data[0]=strtolower($data[0]);
//je controle l'entete du csv
if ($data[1]=='emails' && $data[0] == 'links' ) $mode=1 ;
if ($data[1]=='email' && $data[0] == 'link' ) $mode=1 ;
if ($data[1]=='email' && $data[0] == 'links' ) $mode=1 ;
if ($data[1]=='emails' && $data[0] == 'link' ) $mode=1 ;
////meme chose pour le mode 2 il faut changer $data[0] par $data[1]
///c'est à dire si l'on souhaite avoir email,link, il faut recopier le
///meme code et changer tous les $data[0] par $data[1] et $data[1] par $data[0]
}
if ($mode==1)
{
//je controle l'email
$avant_arobase = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]';
$nomdudomaine = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)';
$caract_allow_before_arobase = '/^' . $atom . '+' .
'(\.' . $avant_arobase . '+)*' .
'@' .
'(' . $nomdudomaine . '{1,63}\.)+' .
$domain . '{2,63}$/i';
// test de l'adresse e-mail
if (preg_match($caract_allow_before_arobase, $data[1])) {
}
else
{
$data[1] = NULL ;
}
$data[1]=strtolower($data[1]);
$data[0]=strtolower($data[0]);
//je controle tous les donnees s'il s'agit bien d'un url et d'un email
///dans le cas contraire, ils seront filtrées
$point = strpos($data[0],".");
if($point=='')
{
$data[0]=NULL;
}
$point = strpos($data[0],"@");
if($point=='')
{
$data[0]=$data[0];
}
else
{
$data[0]=NULL;
}
if ( $data[1] != NULL && $data[0] != NULL )
{
$numberdownload=$numberdownload+1;
$marequete = "INSERT INTO matable SET
monurl ='$data[0]' ,
monemail ='$data[1]'
";
$resultat=mysql_query ($marequete) or die (mysql_error());
}
}
}
//if ( $resultat ){ echo "<p> insertion with Succesfully </p> <p>
//" ;
//si des adresses ont ete enregistrer
if ($numberdownload>0){
echo " <p>You have downloaded $numberdownload combinaisons </p>";
echo "<p>The list Id is : $rowIdListNext </p>";
}
///si aucune adresse a ete enregistrer
if ($existadresse==0 && $numberdownload==0)
{
echo " <p> Error .. Your Csv file has a problem.</p>";
echo " <p> Please notice that your csv file has a header</p>";
}
//si les adresses existe deja
if ($existadresse>0 )
{
echo " <p>$existadresse combinaisons already exist! </p>";
}
//renvoie à la page qui a valider le formulaire...c'est à dire vers formulaire.php
$departure=$_SERVER['HTTP_REFERER'];//recover the adress which the user come from
echo "<meta HTTP-EQUIV=\"Refresh\" content=\"5;URL=$departure \"> " ;
// ******Lire un csv et l'importer dans la base de donnée *
// ******2 fichiers nécessaires : formulaire.php et ajouter.php *
// *********l'un pour choisir le fichier csv et l'autre pour *
// ***************enregistrer dans la bdd *
**** le fichier csv doit etre du type ci dessous *
*** link,email *
*** www.mafonction.com,axel@tueslemeilleur.com *
*** www.csvfacile.com,csv@insert.com *
///************************************************************ *********
//formulaire.php
<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>
________________________________________________
//ajouter.php
//lire un csv et ajouter le couple email,url dans la base de donnee
if (isset($_FILES['file'])) {
$file = $_FILES['file']['tmp_name'];
$handle = fopen($file,'r');
$row = 1;
$handle = fopen("$file", "r");
while (($data = fgetcsv($handle, 4096, ",")) !== FALSE) {
$num = count($data);
//echo "<p> $num fields in line $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
//je met les donnees en miniscule et detecte si l'email est dans la colonne 0 ou 1
//meme chose pour l'url
//je les transformes en miniscule
$data[1]=strtolower($data[1]);
$data[0]=strtolower($data[0]);
//je controle l'entete du csv
if ($data[1]=='emails' && $data[0] == 'links' ) $mode=1 ;
if ($data[1]=='email' && $data[0] == 'link' ) $mode=1 ;
if ($data[1]=='email' && $data[0] == 'links' ) $mode=1 ;
if ($data[1]=='emails' && $data[0] == 'link' ) $mode=1 ;
////meme chose pour le mode 2 il faut changer $data[0] par $data[1]
///c'est à dire si l'on souhaite avoir email,link, il faut recopier le
///meme code et changer tous les $data[0] par $data[1] et $data[1] par $data[0]
}
if ($mode==1)
{
//je controle l'email
$avant_arobase = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]';
$nomdudomaine = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)';
$caract_allow_before_arobase = '/^' . $atom . '+' .
'(\.' . $avant_arobase . '+)*' .
'@' .
'(' . $nomdudomaine . '{1,63}\.)+' .
$domain . '{2,63}$/i';
// test de l'adresse e-mail
if (preg_match($caract_allow_before_arobase, $data[1])) {
}
else
{
$data[1] = NULL ;
}
$data[1]=strtolower($data[1]);
$data[0]=strtolower($data[0]);
//je controle tous les donnees s'il s'agit bien d'un url et d'un email
///dans le cas contraire, ils seront filtrées
$point = strpos($data[0],".");
if($point=='')
{
$data[0]=NULL;
}
$point = strpos($data[0],"@");
if($point=='')
{
$data[0]=$data[0];
}
else
{
$data[0]=NULL;
}
if ( $data[1] != NULL && $data[0] != NULL )
{
$numberdownload=$numberdownload+1;
$marequete = "INSERT INTO matable SET
monurl ='$data[0]' ,
monemail ='$data[1]'
";
$resultat=mysql_query ($marequete) or die (mysql_error());
}
}
}
//if ( $resultat ){ echo "<p> insertion with Succesfully </p> <p>
//" ;
//si des adresses ont ete enregistrer
if ($numberdownload>0){
echo " <p>You have downloaded $numberdownload combinaisons </p>";
echo "<p>The list Id is : $rowIdListNext </p>";
}
///si aucune adresse a ete enregistrer
if ($existadresse==0 && $numberdownload==0)
{
echo " <p> Error .. Your Csv file has a problem.</p>";
echo " <p> Please notice that your csv file has a header</p>";
}
//si les adresses existe deja
if ($existadresse>0 )
{
echo " <p>$existadresse combinaisons already exist! </p>";
}
//renvoie à la page qui a valider le formulaire...c'est à dire vers formulaire.php
$departure=$_SERVER['HTTP_REFERER'];//recover the adress which the user come from
echo "<meta HTTP-EQUIV=\"Refresh\" content=\"5;URL=$departure \"> " ;
amira_t
- Messages postés
- 2
- Date d'inscription
- mercredi 15 juillet 2009
- Statut
- Membre
- Dernière intervention
- 17 juillet 2009
bonjour,
j'ai essayer a importer un fichier csv dans easyphp mais il m'envoie un message d'erreur.
voila le message:
MySQL a répondu:Documentation
#1065 - Query est vide
merci de m'avoir repondre le plutot possible.
bonne journee. :)
j'ai essayer a importer un fichier csv dans easyphp mais il m'envoie un message d'erreur.
voila le message:
MySQL a répondu:Documentation
#1065 - Query est vide
merci de m'avoir repondre le plutot possible.
bonne journee. :)