PHP - inserer des mails d'un fichier texte à
tarik
-
tarik -
tarik -
Bonjour,a tous
J’ai un script pour insérer des données provenant d'un fichier texte dans ma base de données.
Mais il me ramène un bug que je ne sais comment résoudre.
Voici mon code :
<? php
include('connect.php');
if (!$fp = fopen("mail.txt","r"))//mail.txt est un fichier text qui contient l'ensemble des enregistrement
{
echo "Echec de l'ouverture du fichier";
exit;
}
else
{
while(!feof($fp))
{
// On récupère une ligne
$Ligne = fgets($fp,255);
// On affiche la ligne
echo $Ligne;
$sql="insert into lettre (email) values ('$Ligne')";
$res=mysql_query($sql) or die( "Echec de selection" );
$tot=mysql_num_rows($res) or die( "Echec de selection2" );
}
echo " $tot mails ont été insérés dans la base";
fclose($fp); // On ferme le fichier
}
?>
Puis le message kil me ramène :
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\xampplite\htdocs\testons_recuperation_mail\inser.php on line 27
Echec de selection2
Si quelqu'un peut m'aider il me sauvera la vie !!
Merci infiniment d'avance
J’ai un script pour insérer des données provenant d'un fichier texte dans ma base de données.
Mais il me ramène un bug que je ne sais comment résoudre.
Voici mon code :
<? php
include('connect.php');
if (!$fp = fopen("mail.txt","r"))//mail.txt est un fichier text qui contient l'ensemble des enregistrement
{
echo "Echec de l'ouverture du fichier";
exit;
}
else
{
while(!feof($fp))
{
// On récupère une ligne
$Ligne = fgets($fp,255);
// On affiche la ligne
echo $Ligne;
$sql="insert into lettre (email) values ('$Ligne')";
$res=mysql_query($sql) or die( "Echec de selection" );
$tot=mysql_num_rows($res) or die( "Echec de selection2" );
}
echo " $tot mails ont été insérés dans la base";
fclose($fp); // On ferme le fichier
}
?>
Puis le message kil me ramène :
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\xampplite\htdocs\testons_recuperation_mail\inser.php on line 27
Echec de selection2
Si quelqu'un peut m'aider il me sauvera la vie !!
Merci infiniment d'avance
Configuration: Windows XP Firefox 3.0.1
A voir également:
- PHP - inserer des mails d'un fichier texte à
- Comment ouvrir un fichier epub ? - Guide
- Fichier bin - Guide
- Insérer un espace insécable dans word - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
4 réponses
C'est normal, tu as une erreur de principe, a chaque boucle d'écriture du mail dans la base tu charges la variable $tot, ce qui écrase a chaque fois avec mysql_affected_rows() qui vaut 1
il faut ajouter à chaque boucle comme ça:
il faut ajouter à chaque boucle comme ça:
<?php
include('connect.php');
if (!$fp = fopen("mail.txt","r"))//mail.txt est un fichier text qui contient l'ensemble des enregistrement
{
echo "Echec de l'ouverture du fichier";
exit;
}
else
{
//init variable $tot
$tot=0;
while(!feof($fp))
{
// On récupère une ligne
$Ligne = fgets($fp,255);
// On affiche la ligne
echo $Ligne;
$sql="insert into lettre (email) values ('$Ligne')";
$res=mysql_query($sql) or die( "Echec de selection" );
$tot = $tot + mysql_affected_row(); //le paramettre est le link, si rien c'est celui par defaut, donc tu n'en mets pas
}
echo " $tot mails ont été insérés dans la base";
fclose($fp); // On ferme le fichier
}
?>
mais j'ai toujours un message d'erreur:
Warning: mysql_affected_rows(): supplied argument is not a valid MySQL-Link resource in C:\xampplite\htdocs\testons_recuperation_mail\inser.php on line 27
Echec de selection2
la ressource retournée par la requête n'est pas explotable
$sql="insert into lettre (email) values ('$Ligne')";
$res=mysql_query($sql) or die( "Echec de selection" );
essayes pour voir:
$sql="insert into lettre (email) values ('$Ligne')"; $res=mysql_query($sql) or die( "Echec de selection" ); echo "Retour requete: ".$res;