IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Mysql insère plusieurs lignes [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 12
    Par défaut Mysql insère plusieurs lignes
    Bonjour,

    J'ai un soucis avec un script d'envoi de newsletter, j'ai ajouté en plus de l'envoi de l'email un code pour insérer le contenu dans mysql.

    J'ai la possibilité d'envoyer la newsletter soit aux membres, soit au non membres ou à tout le monde.

    Le soucis, c'est que lorsque dans le formulaire, je sélectionne le champs ayant la valeur 0 alors mysql m'insère 3 lignes identiques, si la valeur est 1, j'ai 2 lignes et si la valeur est 2 alors là je n'ai bien qu'une seule ligne ???

    Pour ce qui est de l'envoi du message, tout est bon.

    Voici mon script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     //Récupération du groupe d'envoi
    if($_POST['groupe']==0){
            $groupe= "envoi='0'";
    }
    elseif($_POST['groupe']==1){
    		 $groupe= "groupe='1'";
    }
    elseif ($_POST['groupe']==2){
    		$groupe= "groupe='2'";
    }
     
     
    //Récupération des emails selon le groupe d'envoi
    	$sql = "SELECT * FROM NEWSLETTER_email WHERE $groupe";
    	$result = mysql_db_query($config_base , $sql);
     
    	while($resultat = mysql_fetch_array($result))
    	{
     
     
    //Insertion du message dans la base de données
    if($_POST) { 
    $group = $_POST['groupe'];
    $description = $_POST['description'];
    $contenu = $_POST['message'];
    $objet = $_POST['objet'];
     
    	mysql_query("INSERT INTO NEWSLETTER_messages (date, sujet, message, description, groupe) VALUES( '".date("y-m-d")."', '$objet', '$contenu', '$description', '$group')") or die(mysql_error());
    }
     
    //Variables    
     
     
        $entete = file_get_contents ('../plugins/newsletter/header.txt');
    	$foot = file_get_contents ('../plugins/newsletter/footer.txt');
    	$objet = $_POST['objet'];
        $contenu = $_POST['message'];
    	$desabon = "<center> <font size='2'>Si vous ne souhaitez plus recevoir notre newsletter, veuillez cliquer <a href=$url_site/plugins/newsletter/desabonnement.php?email=$resultat[email]>sur ce lien</a> pour vous désabonner.</font> </center>";
     
            $message = "$entete <br> </br>$contenu<br><br><br>$foot<br> </br>$desabon";
     
     	$headers = "From: $nom_site <$email_site>\n";
    	$headers .= "X-Sender: <$email_site>\n";
    	$headers .= "X-Mailer: PHP\n"; 
    	$headers .= "Return-Path: <$email_site>\n";  
     
    	$headers .= "Content-Type: text/html; charset=iso-8859-1\n"; 
     
    //Envoi du message
    	mail("$resultat[email]", $objet, "$message", $headers);
     
     
            }
    Merci par avance

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu as testé ta requête SELECT ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 12
    Par défaut
    Le problème venait en fait de l'emplacement du code d'insertion dans la base, je n'avais pas fait attention mais il m'insérait autant de ligne que d'email envoyé, c'est à dire que si j'avais 100 adresses mail, bah il me mettait 100 lignes.

    J'ai donc mis cette partie de code en début de la page après les include et tout fonctionne.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [procédure stockée] Requête renvoyant plusieurs lignes avec MySQL
    Par ourseblanche dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 16/01/2010, 17h13
  2. [MySQL] Mise à jours de plusieurs lignes avec mysql
    Par hakou08 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 10/04/2009, 20h10
  3. [MySQL] MYSQL :JOIN, et résultats sur plusieurs lignes
    Par lenono dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 30/03/2009, 10h12
  4. Réponses: 3
    Dernier message: 24/10/2008, 19h31
  5. insertion automatique de plusieurs lignes dans mysql
    Par dejiein dans le forum Requêtes
    Réponses: 2
    Dernier message: 02/06/2006, 10h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo