SELECT sur 2 tables, nb colonnes != [Résolu/Fermé]

Signaler
Messages postés
127
Date d'inscription
vendredi 19 février 2010
Statut
Membre
Dernière intervention
30 juin 2010
-
Darkito
Messages postés
1193
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
26 mai 2010
-
Bonjour,

2 tables t1 et t2
données = d

dans la 1ere j'ai besoin de plusieurs données dont 2 doivent être DISTINCT

SELECT DISTINCT t1.d1 , t1.d2

mais aussi d'autres données de cette table mais qui ne doivent pas être distinct

SELECT t1.d3, t1.d4, t1.d5

mais aussi de faire un select sur la 2eme table avec 3 données

SELECT t2.d1 , t2.d2, t2.d3

En résumé :
SELECT DISTINCT t1.d1 , t1.d2 FROM t1
SELECT t1.d3, t1.d4, t1.d5 FROM t1
SELECT t2.d1 , t2.d2, t2.d3 FROM t1, t2 WHERE t1.d5 = t2.d1 AND t2.d2 = "toto" AND t2.d3 ="tutu"

Est - ce clair ?
Est - ce possible en une seule requête car le résultat de cette requête est écrit dans un fichier texte que j'envoie ensuite par mail !

Merci d'avance

27 réponses

Messages postés
127
Date d'inscription
vendredi 19 février 2010
Statut
Membre
Dernière intervention
30 juin 2010

Un p'tit UP svp !
juste pour me dire s'il manque quelque chose ou si mon code est completement faux !

Merci d'avance
Messages postés
1193
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
26 mai 2010
493
J'ai pas eu le temps de regarder hier :p

Ton problème viens du fait que la requête 2 doit être faite sur chacun des résultats de la requête 1
(les corrections en gras) (il suffit de déplacer la parenthèse fermante du while de la requête 1 en fait)

$today = date("Y-m-d");



$req1 = "SELECT DISTINCT EmailENTITE,ENTITE FROM ua
JOIN notifications ON ua.AdresseIP = notifications.AdresseIP
WHERE notifications.ETAT='1' AND notifications.DateUA = '$today'";

$res1 = mysql_query($req1) or die('Erreur SQL !<br />' . $req1 . '<br />' . mysql_error());

//Récuperation des résultats
while ($rowTitle = mysql_fetch_row($res1)){
$mailentTitle = $rowTitle [0];
$entiteTitle = $rowTitle [1];

echo" <br/>
<br/>MAIL ENTITE : $mailentTitle
<br/>ENTITE : $entiteTitle
<br/>
";


$fp = fopen("$entiteTitle.txt","a");

fwrite($fp, "\nNOM NETBIOS");
fwrite($fp, "\tSOURCE");
fwrite($fp, "\tADRESSE IP");
fwrite($fp, "\tMAIL ENTITE");
fwrite($fp, "\tENTITE");
fwrite($fp, "\tSITE");
fwrite($fp, "\tDATEUA");
fwrite($fp, "\tETAT");


$req2 = "SELECT '$mailent','$entite',ua.NomNetbios,ua.SourceMAJ,ua.AdresseIP,ua.SITE,notifications.DateUA,notifications.ETAT FROM ua
JOIN notifications
ON ua.AdresseIP = notifications.AdresseIP
AND notifications.ETAT='1' AND notifications.DateUA = '$today'
WHERE ENTITE = '$entiteTitle'
AND EmailENTITE = '$mailentTitle '";

$res2 = mysql_query($req2) or die('Erreur SQL !<br />' . $req2 . '<br />' . mysql_error());




//Récuperation des résultats
while ($row = mysql_fetch_row($res2)){
$mailent = $row[0];
$entite = $row[1];
$netbios = $row[2];
$source = $row[3];
$ip = $row[4];
$site = $row[5];
$date = $row[6];
$eta = $row[7];


$hl = "Hors Ligne";
$etat=STR_REPLACE("1","$hl","$eta");

echo" <br/>
<br/>MAIL ENTITE : $mailent
<br/>ENTITE : $entite
<br/>NOM NETBIOS : $netbios
<br/>SOURCE MAJ : $source
<br/>ADRESSE IP : $ip
<br/>SITE : $site
<br/>DATE : $date
<br/>ETAT : $etat
<br/>
";





fwrite($fp, "\n$netbios");
fwrite($fp, "\t$source");
fwrite($fp, "\t$ip");
fwrite($fp, "\t$mailent");
fwrite($fp, "\t$entite");
fwrite($fp, "\t$site");
fwrite($fp, "\t$date");
fwrite($fp, "\t$etat");
}

fclose($fp);

}



J'ai pas testé donc c'est peu-être perfectible.
Messages postés
127
Date d'inscription
vendredi 19 février 2010
Statut
Membre
Dernière intervention
30 juin 2010

Bonjour,

Merci c'est sympa
Mais maintenant je n'ai plus aucun affichage ni aucun fichier de crées j'ai essayé plusieurs modif et rien !
Messages postés
1193
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
26 mai 2010
493
J'ai testé en simulant les appels SQL et ca a l'air de marcher avec le code suivant :

$today = date("Y-m-d");



$req1 = "SELECT DISTINCT EmailENTITE,ENTITE FROM ua
JOIN notifications ON ua.AdresseIP = notifications.AdresseIP
WHERE notifications.ETAT='1' AND notifications.DateUA = '$today'";

$res1 = mysql_query($req1) or die('Erreur SQL !<br />' . $req1 . '<br />' . mysql_error());

//Récuperation des résultats

while ($rowTitle = mysql_fetch_row($res1)){

$mailentTitle = $rowTitle[0];
$entiteTitle = $rowTitle[1];

echo" <br/>
<br/>MAIL ENTITE : $mailentTitle
<br/>ENTITE : $entiteTitle
<br/>
";

$fp = fopen("$entiteTitle.txt","a");

fwrite($fp, "\nNOM NETBIOS");
fwrite($fp, "\tSOURCE");
fwrite($fp, "\tADRESSE IP");
fwrite($fp, "\tMAIL ENTITE");
fwrite($fp, "\tENTITE");
fwrite($fp, "\tSITE");
fwrite($fp, "\tDATEUA");
fwrite($fp, "\tETAT");



$req2 = "SELECT '$mailentTitle','$entiteTitle',ua.NomNetbios,ua.SourceMAJ,ua.AdresseIP,ua.SITE,notifications.DateUA,notifications.ETAT FROM ua
JOIN notifications
ON ua.AdresseIP = notifications.AdresseIP
AND notifications.ETAT='1' AND notifications.DateUA = '$today'
WHERE ENTITE = '$entiteTitle'
AND EmailENTITE = '$mailentTitle'";

$res2 = mysql_query($req2) or die('Erreur SQL !<br />' . $req2 . '<br />' . mysql_error());


//Récuperation des résultats
while ($row = mysql_fetch_row($res2)){

$mailent = $row[0];
$entite = $row[1];
$netbios = $row[2];
$source = $row[3];
$ip = $row[4];
$site = $row[5];
$date = $row[6];
$eta = $row[7];


$hl = "Hors Ligne";
$etat=STR_REPLACE("1","$hl","$eta");

echo" <br/>
<br/>MAIL ENTITE : $mailent
<br/>ENTITE : $entite
<br/>NOM NETBIOS : $netbios
<br/>SOURCE MAJ : $source
<br/>ADRESSE IP : $ip
<br/>SITE : $site
<br/>DATE : $date
<br/>ETAT : $etat
<br/>
";




fwrite($fp, "\n$netbios");
fwrite($fp, "\t$source");
fwrite($fp, "\t$ip");
fwrite($fp, "\t$mailent");
fwrite($fp, "\t$entite");
fwrite($fp, "\t$site");
fwrite($fp, "\t$date");
fwrite($fp, "\t$etat");


}

fclose($fp);


}


liadea
Messages postés
127
Date d'inscription
vendredi 19 février 2010
Statut
Membre
Dernière intervention
30 juin 2010

Bah t'as de la chance lol j'ai toujours rien
Messages postés
1193
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
26 mai 2010
493
Quand exécute la page PHP, tu as une erreur ou juste une page blanche ?

tu peux essayer de quelques "echo" dans la page afin de débugger...
Messages postés
127
Date d'inscription
vendredi 19 février 2010
Statut
Membre
Dernière intervention
30 juin 2010

MILLES EXCUSES
mais j'en ai plein le citron là lol
j'avais une erreur dans ma requête voila pkoi la page elle ne trouvait rien !

Et bien tu sais koi
MMMMMMMMEEEEEEEEEERRRRRRRRRRCCCCCCCCCIIIIIIIIII !!!!!!!!!!!!
BOCOUP
BOCOUP

je le met pas tout de suite à résolu je vais le tester dans ma fonction mail avant LOL

un grand grand merci après 2 semaines de galere MERCI !!
Messages postés
127
Date d'inscription
vendredi 19 février 2010
Statut
Membre
Dernière intervention
30 juin 2010

Encore un énorme MERCI tout fonctionne parfaitement !!

Bonne fin de journée
Darkito
Messages postés
1193
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
26 mai 2010
493
Tant mieux,

Bonne continuation
1 2