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 :

Selections de destinataires [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 25
    Par défaut Selections de destinataires
    Bonjour,

    Voilà je suis en train de mettre en place un outil pour l'envoi d'une newsletter et je bloque sur la selection des destinataires.
    L'utilisateur choisit en fait la ou les catégories de visiteurs auxquels il veut envoyer la newsletter grace à des checkbox. Cette partie la fonctionne c'est plutôt l'enregistrement qui ne fonctionne pas.

    Donc pour ma requête je lui dis de selectionner le visiteur dans la table visiteur selon le critère de la categorie et s'il est abonné à la newsletter ensuite j'enregistre le numéro de de visiteur dans une table en l'associant au numéro de la newsletter.

    voici mon code :
    Sur la page de selection :
    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
    echo '<h5>Selection des destinataires</h5>';
    		$sql_type_destinataire="SELECT * FROM TYPE_VISITEUR";
    		$req_type_destinataire= mysql_query($sql_type_destinataire) or die ('Erreur SQL ! <br>'.$sql_type_destinataire.'<br>'.mysql_error ());
    		$i3=1;
    		echo '<form action="newsletter_4.php" method="post" class="form label-inline uniform">';
    		echo '<input name="tout" type="checkbox" onClick="this.value=check(this.form);"/>Tout cocher / décocher<br>';
    		while ($data_type_destinataire = mysql_fetch_assoc($req_type_destinataire))
    		{
    			echo '<input type="checkbox" name="select_destinataire'.$i3.'" value="'.$data_type_destinataire['NUM_TYPE'].'"/>'.$data_type_destinataire['DES_TYPE'].'<br>';
    $i3++;
    		}
    		echo '<input type="hidden" name="newsletter" value="'.$id_newsletter.'">';
    		echo '<input type="hidden" name="i3" value="'.$i3.'">';
    		echo '<input type="submit" value="-> Etape 4">';
     
           echo '</form>';
    Sur la page d'enregistrement :
    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
    $id_newsletter=$_POST['newsletter'];
    		$nb=$_POST['i3'];
     
    		$i=1;
     
     
    		  while ($i <= $nb)
    		{
    			if (isset($_POST['select_destinataire'.($i)])) 
    			{
    				$num_categorie=$_POST['select_destinataire'.($i)];
    				$sql_destinataire="SELECT NUM_VISITEUR FROM VISITEUR WHERE NUM_TYPE='$num_categorie' AND ABONNE_NEWS=1";
    				$req_destinataire= mysql_query($sql_destinataire.$i) or die ('Erreur SQL ! <br>'.$sql_destinataire.'<br>'.mysql_error ());
    				while ($data_destinataire = mysql_fetch_assoc($req_destinataire))
    				{
    					$num_destinataire=$data_destinataire['NUM_VISITEUR'];
    					$sql_enregistre_desti="INSERT INTO ENVOYE_A (NUM_NEWS, NUM_VISITEUR) VALUES ('$id_newsletter', '$num_destinataire')";
    					mysql_query($sql_enregistre_desti) or die('Erreur SQL !'.$sql_enregistre_desti.'<br>'.mysql_error());
    				}
     
    			}
    			$i++;
    		}

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    A première vue, ça a l'air bien. Tu as une message d'erreur ? ou c'est juste l'insertion qui ne se fait pas ?

    Au passage, personnellement j'aurais utilisé un tableau de checkboxes plutôt que des noms incrémentés.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    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
    Sans avoir plus d'informations sur l'erreur rencontrée, c'est difficile de te répondre mais tu pourrais faire l'insertion en une seule requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO ENVOYE_A (NUM_NEWS, NUM_VISITEUR) SELECT '$id_newsletter', NUM_VISITEUR  FROM VISITEUR WHERE NUM_TYPE='$num_categorie' AND ABONNE_NEWS=1
    Tu peux également déclarer ton champs en tableau et laisser tomber le i3 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<input type="checkbox" name="select_destinataire[]"
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre averti
    Inscrit en
    Février 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 25
    Par défaut
    Alors à force de relire encore et encore mon code je me suis apperçu que j'avais laisser trainer un .$i qui résulte d'un essai antérieur lors de l'execution de la requête de sélection des visteurs.... forcément en corrigeant ça fonctionne

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

Discussions similaires

  1. Multi-selection dans une ComboBox ?
    Par Moloko dans le forum MFC
    Réponses: 5
    Dernier message: 07/07/2021, 17h26
  2. Tranférer des données par email avec selection des destinataires
    Par jmsintes dans le forum Développement
    Réponses: 4
    Dernier message: 05/07/2010, 15h50
  3. [VB6] [Crystal] Selection enregistrement
    Par littlecow dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 11/01/2005, 13h08
  4. TEdit : selection du texte et autre fonction
    Par Odulo dans le forum Composants VCL
    Réponses: 5
    Dernier message: 01/08/2002, 14h27
  5. faire un selection dans une image aves les APIs
    Par merahyazid dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/04/2002, 10h44

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