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 :

Création mail suivant table [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 43
    Points : 23
    Points
    23
    Par défaut Création mail suivant table
    bonjour à tous,
    Je suis complétement en panne, je cherche à créer des mails (plusieurs à la fois suivant une table remplie auparavant.
    Voici la table:
    Nom : sql.png
Affichages : 138
Taille : 46,4 Ko
    donc dans le prinicpe , pour la base d'abbaretz envoyer un mail avec liste de pièces (ici 2 lignes) , puis pour cherre (ici 6lignes ) et ainsi de suite, et ne pas envoyer de mail à chaque ligne, sinon, bien sur une meme base pourrait recevoir 5 mails avec une seule ligne de pièce.
    La je galère je ne trouve pas comment extraire ces données et les transmettre par mail.
    Merci d'avance pour votre aide.

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // on recolte les données 
    while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
        $data[$row['Base']] .= $row['Désignations'] . ' : ' . $row['Qté'] . '<br/>';
    }
     
    // on envoie les mails 
    foreach ($data as $base=>$contenu) {
       echo 'envoyer un mail à ' . $base . ' pour <br/>' . $contenu;
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 43
    Points : 23
    Points
    23
    Par défaut
    Merci à toi,
    Vu le Mp et j'y ferai attention à l'avenir.
    Donc en passant par ton code, j'obtiens bien ce que je veux.
    Maintenant, je cherche comment faire pour créer un bouton pour chaque base ayant des pièces et que le clic sur chaque bouton envoi le mail préparé suivant le résultat de la requête.
    En codant comme je pouvais, j'ai presque réussi en mailto mais le mailto reste au format texte donc les </br> de la requête apparaissent.
    Merci d'avance pour vos idées.

  4. #4
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 43
    Points : 23
    Points
    23
    Par défaut
    Donc j'ai modofié ma façon de faire.
    Mais je bloque.
    Suivant la méthode à Sabotage, je procède comme suit :
    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
        <div id="contenu"> 
    <?php
    require('shared.php');
    $requete="SELECT choixbase, articles, designations, qte, casiers, qui, pourqui FROM envoi".$_SESSION['base']."";
    $sth=$bdd->query($requete);
     
    // on recolte les données 
    while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
        $data[$row['choixbase']] .= '<tr><td>'. $row['articles'] . '</td><td>' .$row['designations'] . ' </td><td> ' . $row['qte'] . '</td><td>' . $row['casiers'] . ' </td><td> ' . $row['qui'] . ' </td><td> ' . $row['pourqui']. '</td><td></tr><br>'; //'&#10 ';
    }
    // on envoie les mails 
    foreach ($data as $base=>$contenu) {
      //echo 'envoyer un mail à <input type="text" name = "qte" id="'. $base . '" value="'. $base . '"/> pour <br/><input type="text" name = "qte" id="'. $base . '2" value="'. $contenu . '"/><br/><br/>';
        echo '<form action="envoimail.php" method="post" id="'. $base . '2" ><fieldset><legend> Evoyer le mail à '. $base . '</legend>';    
        echo '<input type="submit" name="OK" id="submit" value="'. $base . '"/>';
        echo '<table id="'. $base . '2"><th>Articles</th><th>Désignations</th><th>Qté</th><th>Casiers</th><th>Qui</th><th>Attribution</th>';
        echo  $contenu ;
        echo '</table>';
        echo '<textarea id="'. $base . '3" cols="85" style="height:auto"></textarea><br/>';
        echo '</fieldset></form>';
     
    }
    ?>
     
    </div>
    Je crée un formulaire pour chaque base.
    Maintenant je bloque pour que sur l'appui du bouton de chaque base cela m'envoie le formulaire
    Merci d'avance

  5. #5
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    C'est la même chose pour une seul base
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $sth=$bdd->prepare("SELECT choixbase, articles, designations, qte, casiers, qui, pourqui FROM envoi".$_SESSION['base'] . " WHERE choixbase = :choixbase");
    $sth->execute($_POST['submit']);
    $data = '';
    while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
        $data .= '<tr><td>'. $row['articles'] . '</td><td>' .$row['designations'] . ' </td><td> ' . $row['qte'] . '</td><td>' . $row['casiers'] . ' </td><td> ' . $row['qui'] . ' </td><td> ' . $row['pourqui']. '</td><td></tr><br>';
    }
    // on envoie le mail
    .....
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 43
    Points : 23
    Points
    23
    Par défaut
    Je ne comprend pas trop ton code car il ne s'applique qu'à une base, si je l'analyse correctement.
    Mais en partant de ton code comme je l'ai modifié, mes formulaires apparaissent de la sorte.
    Nom : form.png
Affichages : 125
Taille : 30,7 Ko
    Donc en appyant sur le bouton de la base j'aimerai que le mail s'envoie.Et la je bloque.
    Voici le code source des formulaires précédant Les différentes ID à récupérer sont nommés avec la base concerné concaténer avec un chiffre.

    Merci d'avance pour résoudre mon problème ou trouver une autre solution.
    Images attachées Images attachées  

  7. #7
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Mon code est adapté à ton formulaire.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 43
    Points : 23
    Points
    23
    Par défaut
    Donc j'ai mal compris ton code.
    Alors comment l'integre tu as l'existant :
    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
    <div id="contenu"> 
    <?php
    require('shared.php');
    $requete="SELECT choixbase, articles, designations, qte, casiers, qui, pourqui FROM envoi".$_SESSION['base']."";
    $sth=$bdd->query($requete);
     
    // on recolte les données 
    while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
        $data[$row['choixbase']] .= '<tr><td>'. $row['articles'] . '</td><td>' .$row['designations'] . ' </td><td> ' . $row['qte'] . '</td><td>' . $row['casiers'] . ' </td><td> ' . $row['qui'] . ' </td><td> ' . $row['pourqui']. '</td><td></tr><br>'; //'&#10 ';
    }
    // on envoie les mails 
    foreach ($data as $base=>$contenu) {
      //echo 'envoyer un mail à <input type="text" name = "qte" id="'. $base . '" value="'. $base . '"/> pour <br/><input type="text" name = "qte" id="'. $base . '2" value="'. $contenu . '"/><br/><br/>';
        echo '<form action="envoimail.php" method="post" id="'. $base . '2" ><fieldset><legend> Evoyer le mail à '. $base . '</legend>';    
        echo '<input type="submit" name="OK" id="submit" value="'. $base . '"/>';
        echo '<table id="'. $base . '2"><th>Articles</th><th>Désignations</th><th>Qté</th><th>Casiers</th><th>Qui</th><th>Attribution</th>';
        echo  $contenu ;
        echo '</table>';
        echo '<textarea id="'. $base . '3" cols="85" style="height:auto"></textarea><br/>';
        echo '</fieldset></form>';
     
    }
    ?>
     
    </div>
    Merci

  9. #9
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Le deuxieme code c'est pour l'envoi du mail, après avoir choisi un envoi.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 43
    Points : 23
    Points
    23
    Par défaut
    Salut,
    Je dois être trop c.. car je ne comprends pas.
    Je resume :
    mon code qui génere mes formulaires :
    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
    <?php
    session_start();
    if (!array_key_exists('id', $_SESSION)) {
        header('Location: connexion.php');
    } else {
        require('shared.php');
     
        $stmt = $bdd->prepare('SELECT * FROM utilisateurs WHERE id = :id');
        $stmt->bindParam('id', $_SESSION['id'], PDO::PARAM_INT);
        $stmt->execute();
        $user = $stmt->fetch();
        }
        if ($bdd) {
    $bdd = NULL;
    }
    //balise pour fermer php
    //doctype si besoin
    include('tete.php');
    //reouvrir php
    require('shared.php');
    $requete="SELECT choixbase, articles, designations, qte, casiers, qui, pourqui FROM envoi".$_SESSION['base']."";
    $sth=$bdd->query($requete);
     
    // on recolte les données 
    while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
        $data[$row['choixbase']] .= '<tr><td>'. $row['articles'] . '</td><td>' .$row['designations'] . ' </td><td> ' . $row['qte'] . '</td><td>' . $row['casiers'] . ' </td><td> ' . $row['qui'] . ' </td><td> ' . $row['pourqui']. '</td></tr>'; //'&#10 ';
    }
    foreach ($data as $base=>$contenu) {
        echo '<form action="envoimail.php" method="post" id="'. $base . '2" ><fieldset><legend> Evoyer le mail à '. $base . '</legend>';    
        echo '<table class="mail" id="'. $base . '2"><th>Articles</th><th>Désignations</th><th>Qté</th><th>Casiers</th><th>Qui</th><th>Attribution</th>';
        echo  $contenu ;
        echo '</table>';
        echo '<textarea id="'. $base . '3" cols="85" style="height:auto">Texte à ajouter si besoin</textarea><br/>';
        echo '<input type="submit" name="OK" id="submit" value="'. $base . '"/>';
        echo '</fieldset></form>';
     
    }
     
     
    include('pied.php'); 
     ?>
    ce qui donne :
    Nom : form.png
Affichages : 103
Taille : 30,7 Ko
    Nom : form2.png
Affichages : 92
Taille : 38,8 Ko

    et là tu me dis que ton code se met à la suite (ou dans envoimail.php ) ou exactement car quand je vais cliquer sur le bouton de la base cherre par exemple rien dans ton code me renvoie à cela.

  11. #11
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Le code qui envoit le mail va dans ..... suspens .... envoimail.php
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  12. #12
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 43
    Points : 23
    Points
    23
    Par défaut
    Ok ca marche nickel avec une petite modif:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $sth=$bdd->prepare("SELECT choixbase, articles, designations, qte, casiers, qui, pourqui FROM envoi".$_SESSION['base'] . " WHERE choixbase = :choixbase");
    $sth->execute(array(':choixbase=>$_POST['submit']));
    $data = '';
    while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
        $data .= '<tr><td>'. $row['articles'] . '</td><td>' .$row['designations'] . ' </td><td> ' . $row['qte'] . '</td><td>' . $row['casiers'] . ' </td><td> ' . $row['qui'] . ' </td><td> ' . $row['pourqui']. '</td><td></tr><br>';
    }
    // on envoie le mail
    .....
    Merci beaucoup

  13. #13
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 43
    Points : 23
    Points
    23
    Par défaut
    J'ai ajouter un textbox (id = enplus) à mes formulaires comme suit :
    Nom : form3.png
Affichages : 97
Taille : 16,5 Ko

    par contre je ne sais comment l'intégrer au code précédent pour l'avoir dans mes mails.
    Merci d'avance

  14. #14
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Un minimum d'effort de réflexion personnelle est requis.

  15. #15
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 43
    Points : 23
    Points
    23
    Par défaut
    Salut
    Effectivement, donc ce qui ne marchait pas c'était le fait d'avoir créer un textbox plutot qu'un input type=text.
    Merci à tous

  16. #16
    Invité
    Invité(e)
    Par défaut
    Ca peut être un <textarea>.

    Mais comme tu ne montres pas ton code...

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

Discussions similaires

  1. Clé étrangère problème lors de la création de la table.
    Par snoopy69 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 18/08/2005, 08h15
  2. Création d'une table avec foreign key
    Par lepierre dans le forum Langage SQL
    Réponses: 5
    Dernier message: 17/09/2004, 14h20
  3. création automatique de table avec createdb??
    Par champion dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 13/09/2004, 09h01
  4. INTERBASE Création d'une table
    Par Corben dans le forum InterBase
    Réponses: 2
    Dernier message: 19/06/2004, 20h55
  5. Problème THEORIQUE de création de ma table...
    Par Mr.KisS dans le forum Requêtes
    Réponses: 15
    Dernier message: 06/04/2004, 09h29

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