SELECT sur 2 tables, nb colonnes !=

Résolu/Fermé
liadea Messages postés 127 Date d'inscription vendredi 19 février 2010 Statut Membre Dernière intervention 30 juin 2010 - 19 févr. 2010 à 13:31
Darkito Messages postés 1191 Date d'inscription vendredi 7 décembre 2007 Statut Membre Dernière intervention 26 mai 2010 - 24 févr. 2010 à 15:47
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
A voir également:

27 réponses

liadea Messages postés 127 Date d'inscription vendredi 19 février 2010 Statut Membre Dernière intervention 30 juin 2010
24 févr. 2010 à 11:13
Un p'tit UP svp !
juste pour me dire s'il manque quelque chose ou si mon code est completement faux !

Merci d'avance
0
Darkito Messages postés 1191 Date d'inscription vendredi 7 décembre 2007 Statut Membre Dernière intervention 26 mai 2010 545
24 févr. 2010 à 11:30
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.
0
liadea Messages postés 127 Date d'inscription vendredi 19 février 2010 Statut Membre Dernière intervention 30 juin 2010
24 févr. 2010 à 12:02
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 !
0
Darkito Messages postés 1191 Date d'inscription vendredi 7 décembre 2007 Statut Membre Dernière intervention 26 mai 2010 545
24 févr. 2010 à 13:36
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);


}


0
liadea Messages postés 127 Date d'inscription vendredi 19 février 2010 Statut Membre Dernière intervention 30 juin 2010
24 févr. 2010 à 14:36
Bah t'as de la chance lol j'ai toujours rien
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Darkito Messages postés 1191 Date d'inscription vendredi 7 décembre 2007 Statut Membre Dernière intervention 26 mai 2010 545
24 févr. 2010 à 14:40
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...
0
liadea Messages postés 127 Date d'inscription vendredi 19 février 2010 Statut Membre Dernière intervention 30 juin 2010
24 févr. 2010 à 15:03
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 !!
0
liadea Messages postés 127 Date d'inscription vendredi 19 février 2010 Statut Membre Dernière intervention 30 juin 2010
24 févr. 2010 à 15:28
Encore un énorme MERCI tout fonctionne parfaitement !!

Bonne fin de journée
0
Darkito Messages postés 1191 Date d'inscription vendredi 7 décembre 2007 Statut Membre Dernière intervention 26 mai 2010 545
24 févr. 2010 à 15:47
Tant mieux,

Bonne continuation
0