Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/05/2011, 18h46   #1
Invité de passage
 
Homme Tony Landry
Administrateur systèmes et réseaux
Inscription : mai 2011
Messages : 4
Détails du profil
Informations personnelles :
Nom : Homme Tony Landry
Localisation : Canada

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

Informations forums :
Inscription : mai 2011
Messages : 4
Points : 0
Points : 0
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 :
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
landrytony est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 19h08   #2
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

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

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 449
Points : 3 449
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
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 20h08   #3
Invité de passage
 
Homme Tony Landry
Administrateur systèmes et réseaux
Inscription : mai 2011
Messages : 4
Détails du profil
Informations personnelles :
Nom : Homme Tony Landry
Localisation : Canada

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

Informations forums :
Inscription : mai 2011
Messages : 4
Points : 0
Points : 0
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.
landrytony est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h31.


 
 
 
 
Partenaires

Hébergement Web