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 :

Requete un peu special?


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2011
    Messages : 48
    Points : 22
    Points
    22
    Par défaut Requete un peu special?
    Bonjour
    j'ai un petit soucis avec mon code:
    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
    // Gestion des envois par email
    if ($envoiParMail && function_exists('mail')) {
            $emails = '';
            // Récupération des emails pour l'envoi
            $sql = 'SELECT DISTINCT(email) as mail FROM '.$cat1.' WHERE (reception_mail=1) AND (email<>"'.mysql_real_escape_string($email).'")';
            $sql.= ' AND (id='.mysql_real_escape_string($id_reponse).' OR id_reponse='.mysql_real_escape_string($id_reponse).')';
     
            $res = mysql_query($sql) or die(showError('3', mysql_error()));
            if (mysql_num_rows($res)>0) {
                    // Contenu du mail
     
                    $sujet = 'Vous avez une réponse en attente. ';
                    $corps = 'Bonjour,'."\n\n";
                    $corps.= $nom;
                    $corps.= ' a apporté une réponse à  votre sujet "';
                    $corps.= $titre;
                    $corps.= '". Vous pouvez consulter le message en cliquant sur l\'adresse ci-dessous: '."\n\n";
                    $corps.= 'http://www.nom_de_domaine.fr/forum/'.$cat1.'/read_mess.php?id='. $id_reponse;
                    $corps.= "\n\n\n";
                    // Envoi des emails
                    while($r = mysql_fetch_array($res)) {
                            mail($r['mail'], $sujet, $corps,'From: '.$cat1.' '.$nomsite.' <'.$webmail.'>'."\n");
                    }
            }
    }
    mysql_close();

    Je voudrai rajouter dans la requête quelque chose du genre "Si id_reponse=0=1er enregistrement alors pas d'envois d'email"
    mais je ne trouve nul part comment faire

  2. #2
    Membre actif Avatar de Legenyes
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2005
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 174
    Points : 207
    Points
    207
    Par défaut
    Salut,

    je ne comprend pas trop ce que tu souhaite faire,
    mais peut etre avec un GROUP BY sur l'email et un HAVING pour ne reprendre que ceux ou il y a qu'une ligne

    c'est bien ca ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2011
    Messages : 48
    Points : 22
    Points
    22
    Par défaut
    je créé un forum.
    parmi toutes les tables, j'ai id, et id_reponse qui récupère la valeur id du créateur du sujet.
    date_insertion (date de l'insertion du sujet ou de la réponse) et date_reponse (qui récupère la date du dernier post)
    ex: création d'un sujet: id=3 id_reponse=0 (toujours 0 lors de la création d'un message) date_insertion=01/01/2011 12h00 date_reponse=01/01/2011 12h00
    ensuite, apres 2 réponses, il apparait ceci:
    id=3 id_reponse=0 (toujours 0 lors de la création d'un message) date_insertion=01/01/2011 12h00 date_reponse=01/01/2011 12h02
    1ere réponse a ce sujet, id=4 et id_reponse=3 date_insertion=01/01/2011 12h01 date_reponse=01/01/2011 12h01
    2eme réponse à ce sujet, id=5 et id_reponse=3 date_insertion=01/01/2011 12h02 date_reponse=01/01/2011 12h02
    etc...

    Lorsque l'on créé le sujet, avant de le valider, il est possible de cocher la case "recevoir un email lors d'une réponse".

    C'est la qu'il y a problème. En l'état actuel des choses, lorsque le créateur du sujet coche recevoir l'email et qu'il valide, il reçoit immédiatement un email lui indiquant une réponse à son sujet (ce qui est une erreur il va de soit).

    J'ai rajouté par la suite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (mysql_num_rows($res)>0 && $id_reponse>0)
    Alors la il ne reçoit plus l'email lors du post de son sujet, mais il ne reçoit pas non plus d'email lors de réponses de tierce personne.... (génant ça)

    J'ai aussi essayé de rajouter dans la requête date_insertion!=date_reponse mais je crois que l'email est envoyé avant que la requête soit lancée...
    Donc je galère :-)

Discussions similaires

  1. requet un peu special ! comment faire?
    Par saim.mohamed dans le forum Langage SQL
    Réponses: 2
    Dernier message: 18/12/2007, 22h26
  2. Une requete un peu particulière ...
    Par ZiMammouth dans le forum Langage SQL
    Réponses: 6
    Dernier message: 24/02/2007, 17h27
  3. [SQL - ORACLE] Requete un peu compliquée (pour moi)
    Par Worldofdada dans le forum Langage SQL
    Réponses: 15
    Dernier message: 03/11/2005, 08h25
  4. [FLASH MX2004] LoadVars un peu special
    Par guy2004 dans le forum Flash
    Réponses: 14
    Dernier message: 14/03/2005, 22h17
  5. Requete un peu complexe avec la fonction IN
    Par Taichin dans le forum Oracle
    Réponses: 27
    Dernier message: 10/11/2004, 08h59

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