SELECT sur 2 tables, nb colonnes !=

Résolu
liadea Messages postés 127 Date d'inscription   Statut Membre Dernière intervention   -  
Darkito Messages postés 1191 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   545
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   545
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   545
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
Encore un énorme MERCI tout fonctionne parfaitement !!

Bonne fin de journée
0
Darkito Messages postés 1191 Date d'inscription   Statut Membre Dernière intervention   545
 
Tant mieux,

Bonne continuation
0