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 :

Sélectionnés tous ceux qui ne sont pas dans la table


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2011
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Sélectionnés tous ceux qui ne sont pas dans la table
    Bonjour,


    J’aimerais sélectionner toutes les adresses courriel qui ne sont pas dans la table.
    Pouvez-vous me dire ce qui ne fonctionne pas dans mon code ?
    Le but est de récupérer les adresses courriel des parents avec les Id des garderies qui n’ont pas déjà été avisés (qui ne sont pas dans la table yellow_Alert_sended).

    Quand l’avis courriel est envoyé, l’envoie est logé dans yellow_alert_sended et on s’y réfère pour ne pas envoyer un autre avis en double lors de la prochaine exécution.

    Le problème est qu’aussitôt qu’une ligne est trouvée dans la table yellow_alert.sended, le script exit immédiatement sans continuer pour trouver les autres qui ne sont pas dedans.

    Voici

    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
     
     
    //get the info yellow_alert (parents)
    $qparaa = "select yellow_alert.email_parents from yellow_alert where AlertID";
    $rparaa = mysql_query($qparaa) or die(mysql_error());
    $aparaa = mysql_fetch_array($rparaa);
     
    //get the info yellow_Agents_garderies
    $qgarderies = "select yellow_agents_garderies.AgentID_garderies from yellow_agents_garderies where AgentID_garderies";
    $rgarderies = mysql_query($qgarderies) or die(mysql_error());
    $agarderies = mysql_fetch_array($rgarderies);
     
    // verifier si le email a deja été envoyer selon la table de log yellow_alert_sended
    $qnotsend = "select * from yellow_alert_sended where yellow_alert_sended.fusion != '$aparaa$agarderies' ";
    $rnotsend = mysql_query($qnotsend) or die(mysql_error());
    if(mysql_num_rows($rnotsend) > '0')
    {
    echo "exit car le email a déjà été envoyer";
    exit();
    }
    // si non, on continue et on envoie les avis courriels a tous ceux qui ne sont pas dans la table yellow_alert_fusion….
    //blabla…
    // on log la table yellow_alert_sended.. 
    //… exit..
     
     
    J’ai essayé aussi le code suivant avec un NOT IN :
     
     
    // vérifier les correspondances entre les annonces des garderies et les recherches(alert) des parents enregistrer.
    // avec le NOT IN j’essaie d’exclure ceux qui sont déjà dans la table yellow_alert_sended.
    $qexpa = "select * from yellow_alert, yellow_agents_garderies where 
    yellow_alert.statut_Alert = 'active' && yellow_agents_garderies.statut_annonceID = 'active' && 
    yellow_alert.CategoryList = yellow_agents_garderies.CategoryID && yellow_alert.Provinces = yellow_agents_garderies.Provinces && 
    yellow_alert.state = yellow_agents_garderies.state &&
    '$asended' NOT IN ((select yellow_alert.email_parents from yellow_alert where AlertID)(select yellow_agents_garderies.AgentID_garderies from yellow_agents_garderies where AgentID_garderies))";
    $rexpa = mysql_query($qexpa) or die(mysql_error());
    if(mysql_num_rows($rexpa) > '0')
     
    {
    while($aexp = mysql_fetch_array($rexpa))
    { 
    // on envoie les avis courriels au parents selon les correspondances entre les parents et les garderies sauf tous ceux qui sont dans la table yellow_alert_fusion
    // blabla..
    //….
    }
    }
    {
    echo "exit car le email a deja ete envoyer car il est déjà logé dans la table yellow_alert_sended";
    exit();
    }
    merci d'avance pour votre aide

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 098
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 098
    Points : 8 207
    Points
    8 207
    Billets dans le blog
    17
    Par défaut
    Salut !
    Donne plutôt la structure de tes tables, un jeu de données de test et le résultat escompté
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2011
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par Séb. Voir le message
    Salut !
    Donne plutôt la structure de tes tables, un jeu de données de test et le résultat escompté
    pour la structure de mes tables:

    table: yellow_alert_sended:
    colonne :
    fusion: contiens l'adresse courriel du parent suivit de l'ID de la garderie. exemple:
    parents@domain.com1039
    parent2@domain2.com1037

    dans la table Alert:
    cette table contiens les recherche des parentes ce qu'ils recherche:
    colonne:
    AlerdID: unique chiffre
    statut_alert : active ou désactiver
    AgentID: chiffre id du unique lors de l'enregistrement
    categorylist: un chiffre préci
    Province: Quebec
    state: nom de la ville
    email_parents: le courriel du parents

    dans la tables des garderies:
    yellow_agents_garderies
    contiens tous les infos des garderies à faire coincidé avec les critère de recherche des parents selon la table Yellow_Alert. l'information des collone sont les même. de plus il y a un ID unique pour chaque garderie qui correspond avec le ID qui est à la fin de l'adresse courriel du parent sous la colonne fusion de la table yellow_sended. exemple Id 1039.


    mon but est de récupérer tout les coincidations entre les alert des parents et les alerte des garderies sauf ceux déja présent sous la table yellow_sended.

    mon bloques de code de vérification avant l'envoie récupère toute les coincidation, mais l'exclusion de la table yellow_sended ne fonctionne pas.
    si la table yellow_sended est vide.. tout fonctionne.
    Si la table yellow_sended contiens seulement un entrer logé, le script arrete et ne continue pas ca recherche à savoir si d'autre critère pourrais coincidé et être récupérer. Il exit autssitôt qu,il trouve un log déja enregistrer dedans.

    j'espaire que cela est un peu plus claire...

    cela fait des semaines que je tourne le code de toute les manière et ça reviens toujours avec le problème que si il trouve une ligne déja logé dans la table yellow_sended, alors il exit comme si le tout avais déja été entrgistrer mais il n'a pas tout vérifier .. il en n'a vérifier seulement un.

    y a pas moyen de lui faire une loop pour tout vérifier ?

    merci d'avance
    Tony.

Discussions similaires

  1. chercher les éléments d'une table B qui ne sont pas dans la table A
    Par Cupidon dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 11/01/2008, 13h40
  2. obtenir des entrees qui ne sont pas dans une table
    Par firejocker dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 26/12/2007, 23h07
  3. Réponses: 1
    Dernier message: 21/12/2006, 11h17
  4. Réponses: 10
    Dernier message: 15/12/2006, 07h34
  5. Réponses: 4
    Dernier message: 02/06/2006, 12h03

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