Import txt to MySQL
Résolu
Sinistrus
Messages postés
1010
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 40050 Statut Modérateur -
jordane45 Messages postés 40050 Statut Modérateur -
Bonjour à tous et meilleurs voeux !
Voilà, j'ai un bout de code qui ne fonctionne pas :\
J'essaie d'importer via un input file une liste d'adresse email dans ma table, mais je n'ai qu'une ligne vide qui s'insère.
Pouvez-vous m'aider svp ?
Voici mon fichier mes_mail.txt :
Voici ma table :
Voici mon code PHP
Voilà, j'ai un bout de code qui ne fonctionne pas :\
J'essaie d'importer via un input file une liste d'adresse email dans ma table, mais je n'ai qu'une ligne vide qui s'insère.
Pouvez-vous m'aider svp ?
Voici mon fichier mes_mail.txt :
test1@test.com
test2@test.com
test3@test.com
Voici ma table :
CREATE TABLE IF NOT EXISTS `tb_newsletter_adresses` ( `NumId` int(11) NOT NULL AUTO_INCREMENT, `Newsletter` varchar(255) NOT NULL, PRIMARY KEY (`NumId`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;
Voici mon code PHP
$myFile = $_FILES['FileMail']['name'];
if(!($myFile))
{print("Impossible d'ouvrir le fichier $file_name ");}
for ($index=0; $index < count($myFile); $index++)
{
$token_table[1]=strTok(";");
$Newsletter = addslashes(trim($token_table[1]));
echo stripslashes($Newsletter)."<br/>";
$result = mysql_query("INSERT INTO tb_newsletter_adresses (Newsletter) VALUES ('$Newsletter')");
if ($result == 1)
{echo stripslashes($Newsletter)."inséré <br/>";}
else
{echo "error inserting stripslashes($Newsletter) <br/>";}
}
echo "***** CONTENU DE LA TABLE *****<br/>";
$result = mysql_query("select * from tb_newsletter_adresses ");
while($row = mysql_fetch_array($result))
{echo stripslashes($row['Newsletter'])."<br/>";}
A voir également:
- Import txt to MySQL
- Qwerty to azerty - Guide
- Mysql community server - Télécharger - Bases de données
- Video to video - Télécharger - Conversion & Codecs
- Reboot to bootloader - Guide
- Majuscule to minuscule - Guide
3 réponses
Bonjour,
Le souci.. c'est que là .. tu ne lis pas le contenu du fichier....
Il te faut utiliser les instructions :
Le souci.. c'est que là .. tu ne lis pas le contenu du fichier....
Il te faut utiliser les instructions :
$myFile = isset( $_FILES['FileMail']['name'])?$_FILES['FileMail']['name']:NULL;
if(!($myFile)){
print("Impossible d'ouvrir le fichier $file_name ");
}else{
//ouverture du fichier
$fp = fopen ($myFile, "r");
// Boucle sur les lignes du fichier
if ($fp){
/*Tant que l'on est pas à la fin du fichier*/
while (!feof($$fp)) {
/*On lit la ligne courante*/
$buffer = fgets($fp);
/*Traitement */
echo $buffer; // par exemple affichage
// c'est ici que tu peux mettre l'INSERT en BDD
}
/*On ferme le fichier*/
fclose($fp);
}
?>
}
Merci Jordane,
Je rencontre un problème cependant :
Warning: fopen(mes_email.txt): failed to open stream: No such file or directory in /home/sivop/www/version_3/admin/gestions/newsletter/index.php on line 89
Je rencontre un problème cependant :
Warning: fopen(mes_email.txt): failed to open stream: No such file or directory in /home/sivop/www/version_3/admin/gestions/newsletter/index.php on line 89
$fp = fopen ($myFile, "r");
$myFile = isset( $_FILES['FileMail']['name'])?$_FILES['FileMail']['name']:NULL;
if(!($myFile)){
print("Impossible d'ouvrir le fichier $FileMail ");
}else{
$fp = fopen ($myFile, "r");
if ($fp){
while (!feof($$fp)) {
$buffer = fgets($fp);
echo $buffer;
$query = "INSERT INTO tb_newsletter_adresses VALUES('$Newsletter')";
$result= MYSQL_QUERY($query);
}
fclose($fp);
}
}
Tu as fait l'upload du fichier sur ton serveur avant d'essayer de le lire ?
testes ceci :
testes ceci :
<?php
if(isset($_FILES['userfile']['name'])){
// emplacement où sera stocké le fichier sur le serveur :
// le dossier doit disposer des droits suffisant pour que le script puisse y coller un fichier
$uploaddir = './';
$myFile= $uploaddir . basename($_FILES['userfile']['name']);
// déplacement du fichier sur le serveur
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $myFile)) {
// upload ok
$fp = fopen ($myFile, "r");
if ($fp){
while (!feof($fp)) {
$Newsletter = fgets($fp);
echo $Newsletter;
$query = "INSERT INTO tb_newsletter_adresses VALUES('$Newsletter')";
$result= MYSQL_QUERY($query) or die("<pre>Erreur".$query ."</pre>");
} // fin du While
//fermeture du fichier
fclose($fp);
} // Fin du if($fp)
} else {
// upload KO
echo "<pre> Erreur. Le fichier n'a pas été téléchargé ! </pre>";
}
}
?>
Merci beaucoup jordane,
J'ai récupéré un bout de ton code et ça fonctionne maintenant :
Merci beaucoup !
J'ai récupéré un bout de ton code et ça fonctionne maintenant :
<?php if(isset($_POST['EnvoisMail'])){
//######################################
$myFile = isset( $_FILES['FileMail']['tmp_name'])?$_FILES['FileMail']['tmp_name']:NULL;
if(!($myFile)) {print("Impossible d'ouvrir le fichier ".$myFile);}
//################################################### ERREUR DE BOUCLE
$fp = fopen($myFile, 'r') or die ("Unable to open the file");
if($fp){
while (!feof($fp)) {
$Newsletter = fgets($fp);
//###################################################
$result = mysql_query("INSERT INTO tb_newsletter_adresses (Newsletter) VALUES ('".$Newsletter."')");
//################################################### AFFICHE LES ELEMENTS AJOUTES
}
fclose($fp);
}
if ($result == 1)
{echo "<tr><td height='40' align='left' valign='middle'><div class='Message_Info'>La liste des abonnés a été ajoutée avec succès.</div></td></tr>";}
else
{echo "<tr><td height='40' align='left' valign='middle'><div class='Error_Info'>Une erreur est survenue lors de l'ajout de ".$Newsletter."</div></td></tr>";}
// FIN DE BOUCLE
//###################################################
}
?>
Merci beaucoup !
Désolé, j'avais carrément oublié !
Dis jordane, tu peux jeter un oeil sur mon nouveau sujet stp ?
https://forums.commentcamarche.net/forum/affich-31342342-envois-mail-en-html-petit-beug
Dis jordane, tu peux jeter un oeil sur mon nouveau sujet stp ?
https://forums.commentcamarche.net/forum/affich-31342342-envois-mail-en-html-petit-beug