Jointure: récupérer joueur qui n'est pas dans l'autre table
Posté : 15 oct. 2010, 12:03
Bonjour à tous,
J'ai fait un script qui permet de récuperer les joueurs titulaires de chaque équipe afin d'effectuer un match.
Ce que je souhaite, c'est de vérifier que les joueurs que chaque équipe a mis sur la feuille de match (table phpl_ordres) appartiennent toujours a l'équipe (qu'il n'y ai pas eu de transfert entre temps).
<souligne>Voici les 2 tables en questions :</souligne>
Joueurs-id_joueur
-id
- equipe_id
-caracteristique1
-caracteristique2
ect
phpl_ordres-id
-match_id
-equipe_id
-joueur-id
-poste (le poste du joueur : 1 2 3 4 5)
Donc dans cette table il y a une entrée pour chaque poste (que prendra un joueur) de chaque équipe a chaque match
Mon code actuel :
il faut que le joueur appartienne bien a l'équipe (premiere clause du WHERE)
mais aussi que le joueur ne soit pas déja sur la feuille de match a un autre poste (2eme clause du WHERE); je pensais donc prendre un joueur qui ne joue pas le match actuel !=$row['id'] et c'est cette 2eme clause du where qui ne fonctionne pas car lorsqu'un joueur n'appartient plus a l'équipe, il me le remplace par le premier joueur qui vient..
Donc j'aimerais vos conseils sur cette jointure.
Merci !
J'ai fait un script qui permet de récuperer les joueurs titulaires de chaque équipe afin d'effectuer un match.
Ce que je souhaite, c'est de vérifier que les joueurs que chaque équipe a mis sur la feuille de match (table phpl_ordres) appartiennent toujours a l'équipe (qu'il n'y ai pas eu de transfert entre temps).
<souligne>Voici les 2 tables en questions :</souligne>
Joueurs-id_joueur
-id
- equipe_id
-caracteristique1
-caracteristique2
ect
phpl_ordres-id
-match_id
-equipe_id
-joueur-id
-poste (le poste du joueur : 1 2 3 4 5)
Donc dans cette table il y a une entrée pour chaque poste (que prendra un joueur) de chaque équipe a chaque match
Mon code actuel :
<?php
// Cette premiere requete permet de récuperer les joueurs (des 2 équipes) qui joueront le match
$sql='SELECT phpl_ordres.equipe_id AS id_equipe_ordre, joueur_id, joueurs.equipe_id AS id_equipe, poste, dribble, interception, defense
FROM phpl_ordres
LEFT JOIN joueurs
ON (phpl_ordres.joueur_id = joueurs.id)
WHERE '.$row['id_match'].' = match_id';
$requete2 = mysql_query($sql) or die (mysql_error());
// ON BOUCLE CHAQUE JOUEUR
while($row2 = mysql_fetch_assoc($requete2))
{
// ICI on vérifie que le joueur appartient toujours bien a une des 2 équipes
if($row2['id_equipe'] != $row['id_equipe_dom'] && $row2['id_equipe'] != $row['id_equipe_ext'])
{
echo '<br /><strong> CE JOUEUR : '.$row2['joueur_id'].' nappartient plus à léquipe </strong><br />';
// on le remplace par un joueur qui ne joue pas
$sql3='SELECT joueur_id, joueurs.equipe_id AS id_equipe, poste, dribble, interception, defense
FROM joueurs
LEFT JOIN phpl_ordres
ON (phpl_ordres.joueur_id = joueurs.id)
WHERE joueurs.equipe_id ='.$row2['id_equipe_ordre'].' AND
match_id !='.$row['id_match'];
Voila ma derniere requete sert a mettre un autre joueur a sa place.il faut que le joueur appartienne bien a l'équipe (premiere clause du WHERE)
mais aussi que le joueur ne soit pas déja sur la feuille de match a un autre poste (2eme clause du WHERE); je pensais donc prendre un joueur qui ne joue pas le match actuel !=$row['id'] et c'est cette 2eme clause du where qui ne fonctionne pas car lorsqu'un joueur n'appartient plus a l'équipe, il me le remplace par le premier joueur qui vient..
Donc j'aimerais vos conseils sur cette jointure.
Merci !