Compraison d'affichage de 2 résultat

Ben314 Messages postés 2312 Date d'inscription   Statut Membre Dernière intervention   -  
Ben314 Messages postés 2312 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour

Voila j'affiche dans une page web 2 liste dans 2 tableau, liste récupérer depuis BD.
Les 2 liste affiche les résultat d'une même table, mais la première filtre les résultat via quelque jointure et l'autre les affiche tous...

Je cherche a faire en sorte que dans la liste 2 si il ya des "id" qui sont déjà présent dans la liste 1 l'affichage soit modifier

voici le code de mes 2 liste :

<?php

//requête SQL:
$sql2 = "SELECT *
FROM INSTRUMENT join est_pratiquer ON INSTRUMENT.id_instrument=est_pratiquer.id_instrument
join MEMBRES ON est_pratiquer.id_membre=MEMBRES.id_membre

WHERE MEMBRES.id_membre=".$idmembre."
ORDER BY nom_inst" ;

//exécution de la requête:
$requete2 = mysql_query( $sql2, $cnx ) ;

//affichage des données:
while( $result2 = mysql_fetch_object( $requete2 ) )
{
echo("
<tr>
<td width=\80%\">".$result2->nom_inst."</td>
<td width=\"20%\" align=\"right\"><a href=\"#\" onClick=\"confirme('".$result2->id_instrument."','".$idmembre."')\">SUPPRIMER</a></td>
</tr>
") ;
}
?>


<?php
//requête SQL:
$sql1 = "SELECT *
FROM INSTRUMENT
ORDER BY nom_inst" ;

//exécution de la requête:
$requete1 = mysql_query( $sql1, $cnx ) ;

//affichage des données:
while( $result1 = mysql_fetch_object( $requete1 ) )
{
echo("
<tr>
<td width=\"80%\">".$result1->nom_inst."</td>
<td width=\"20%\" align=\"right\"><a href=\"insert_2.php?idinstrument=".$result1->id_instrument."&idmembre=".$idmembre."\">AJOUTER</a></td>
</tr>
") ;
}
?>


Au final je voudrait que dans ma liste 2 le lien d'insertion ne soit pas affiché si "id_instruement" existe dans la liste 1...
Et c'est la que je bloque, j'ai bien tenté de créé un tableau avec les résultat de la liste 1 puis de faire un foreach dans le 2éme pour comparer mais je suis pas au niveau...

Merci d'avance
A voir également:

1 réponse

Fallentree Messages postés 2309 Date d'inscription   Statut Membre Dernière intervention   209
 
j'aurais dit une jointure https://sql.sh/cours/jointures
trois cas de jointure 1-n n-1 et n-n (presentation ACCESS)
pour ton cas LEFT JOIN (sans l'intersection de B) https://sql.sh/cours/jointures


$sql1 = "SELECT * 
FROM INSTRUMENT 
ORDER BY nom_inst
LEFT JOIN B ON INSTRUMENT.id_instrument=est_pratiquer.id_instrument 
WHERE est_pratiquer.id_instrument IS NULL
" ;
0
Ben314 Messages postés 2312 Date d'inscription   Statut Membre Dernière intervention   1 497
 
euh tu n'a pas du comprendre ce que je voulais faire...
les requêtes fonctionne !! pis la vous parlait de la première liste ???
c'est au niveau de l'affichage de la seconde que je veut filtrer... (des TD,)
0
Fallentree Messages postés 2309 Date d'inscription   Statut Membre Dernière intervention   209
 
<?php 

//requête SQL: 
$sql2 = "SELECT * 
FROM INSTRUMENT join est_pratiquer ON INSTRUMENT.id_instrument=est_pratiquer.id_instrument 
join MEMBRES ON est_pratiquer.id_membre=MEMBRES.id_membre 

WHERE MEMBRES.id_membre=".$idmembre."	
ORDER BY nom_inst" ; 

//exécution de la requête: 
$requete2 = mysql_query( $sql2, $cnx ) ; 

//affichage des données: 
while( $result2 = mysql_fetch_object( $requete2 ) ) 
{ 
echo(" 
<tr> 
<td width=\80%">".$result2->nom_inst."</td> 
<td width="20%" align="right"><a href="#" onClick="confirme('".$result2->id_instrument."','".$idmembre."')">SUPPRIMER</a></td> 
</tr> 
") ; 
} 
?> 


celle là ?
0
Fallentree Messages postés 2309 Date d'inscription   Statut Membre Dernière intervention   209
 
Et au fait si les requetes fonctionnent mais que tu veux enlever des valeurs ...
"MODIFIES LA, TA REQUETE"
0
Ben314 Messages postés 2312 Date d'inscription   Statut Membre Dernière intervention   1 497
 
non l'autre....
ouais tu a compris, enfin presque :) , je veut que la requête sql2 prenne en compte les résultat de la sql1, pour faire sauter les doublon dans sql1...

Mais la je voit pas trop en modifiant la requête....

j'avais plus penser à stocker les résultat (id) de la requête sql2 dans un "array", pour les ressortir sur la requête sql1 et faire un foreach de mon array et un if, si id existe n'affiche pas le résultat, sinon affiche le...
Mais j'ai un méchant problème avec les tableau (array) ^^

Merci beaucoup de votre aide
0
Fallentree Messages postés 2309 Date d'inscription   Statut Membre Dernière intervention   209
 
https://sql.sh/cours/distinct
pour enlever les doublons d'une requête, il y a
SELECT DISTINCT ma_colonne
FROM nom_du_tableau
sinon tu peux faire une requête du genre
SELECT A.*,C.* From A, (SELECT * FROM B WHERE ID=52) as C WHERE A.id=C.id
je vais essayer de te trouver un exemple
0