INSERER LES DONNEES FICHIER TXT DANS MYSQL
JOLIKOLO
-
Dr Zoidberg Messages postés 547 Statut Membre -
Dr Zoidberg Messages postés 547 Statut Membre -
Bonjour,
J ai un petit soucis de programmation.
Dans mon systeme de newsletter, j ai un script qui m exporte en fichier txt les emails des membres selon des criteres bien définis.
Maintenant j aurai aimé qu un autre script se charge de lire le fichier txt uploadé sur le serveur et contenant des adresses mails, puis de les insérer dans ma table mysql comportant uniquement un champ "email".
Voici donc le script que j ai devellopéé mais visiblement cela ne fonctionne pas car le script s execute mais rien n est inserer dans la base.
J ai egalement essaye avec
Merci pour votre aide
J ai un petit soucis de programmation.
Dans mon systeme de newsletter, j ai un script qui m exporte en fichier txt les emails des membres selon des criteres bien définis.
Maintenant j aurai aimé qu un autre script se charge de lire le fichier txt uploadé sur le serveur et contenant des adresses mails, puis de les insérer dans ma table mysql comportant uniquement un champ "email".
Voici donc le script que j ai devellopéé mais visiblement cela ne fonctionne pas car le script s execute mais rien n est inserer dans la base.
<?php
include ('dbconnect.php');
while(!fopen('emails.txt' , 'r'))
{
$ligne = rtrim(fgets('emails.txt'));
mysql_query('INSERT INTO tempmail VALUES ($ligne)');
}
// on ferme la connexion à mysql
mysql_close();
?>
J ai egalement essaye avec
<?php
include ('dbconnect.php');
while(!fopen('emails.txt' , 'r'))
{
$ligne = rtrim(fgets('emails.txt'));
mysql_query('INSERT INTO tempmail (code) VALUES ($ligne)');
}
// on ferme la connexion à mysql
mysql_close();
?>
Merci pour votre aide
A voir également:
- INSERER LES DONNEES FICHIER TXT DANS MYSQL
- Fichier bin - Guide
- Fichier epub - Guide
- Insérer une vidéo dans powerpoint - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
3 réponses
Salut,
Je pense que tu n'utilises pas correctement les fonctions fopen et fgets (voir la doc de php).
Essai plutôt (basé sur l'exemple sur la doc php de fgets)
Je pense que tu n'utilises pas correctement les fonctions fopen et fgets (voir la doc de php).
Essai plutôt (basé sur l'exemple sur la doc php de fgets)
<?php
// Connexion db
$handle = @fopen("emails.txt", "r");
if ($handle) {
while (!feof($handle)) {
$ligne= rtrim(fgets($handle, 4096));
mysql_query("INSERT INTO tempmail (code) VALUES ($ligne)");
}
fclose($handle);
}else {
die('impossible d ouvrir le fichier');
}
// Fermeture DB
?>
Bonjour,
Merci pour ton aide Dr Zoidberg, mais j avais fais d une autre facon finalement...et beaucoup plus simple :-)
Par curiosité j essaierai ton code demain pour voir le resultat...
Bonne journée
Merci pour ton aide Dr Zoidberg, mais j avais fais d une autre facon finalement...et beaucoup plus simple :-)
Par curiosité j essaierai ton code demain pour voir le resultat...
Bonne journée
<?php
include ('dbconnect.php');
$req=mysql_query("LOAD DATA LOCAL INFILE 'emails.txt' INTO TABLE tempmail FIELDS TERMINATED BY '\n'")or die(mysql_error());
echo "<font color=yellow><b>Les donnés ont bien été insérées dans la table</b></font>";
// on ferme la connexion à mysql
mysql_close();
?>
Hm, moi j'aurai plutôt pensé à une erreur de syntaxe PHP non ?
Au lieu de :
mysql_query('INSERT INTO tempmail (code) VALUES ($ligne)');
Plutôt :
mysql_query("INSERT INTO tempmail (code) VALUES ('".$ligne."')");
Non ? (Attention à différencier simple/double quote)
Et ne pas oublier les quotes autour d'une chaine de caractère.. (si code est en varchar)
Au lieu de :
mysql_query('INSERT INTO tempmail (code) VALUES ($ligne)');
Plutôt :
mysql_query("INSERT INTO tempmail (code) VALUES ('".$ligne."')");
Non ? (Attention à différencier simple/double quote)
Et ne pas oublier les quotes autour d'une chaine de caractère.. (si code est en varchar)