requete croisée ??

requete croisée ?? - PHP - Programmation

Marsh Posté le 01-12-2004 à 10:41:10    

Salut tout le monde
 
voilà, j'ai les tables suivantes :  
 
team
----
id
nom
 
matchs
------
id
id_team1
id_team2
score_team1
score_team2
 
Je veux afficher les matchs avec les noms respectifs de chaque team.
 
voici mon code :  
 
$sql4 = "SELECT * FROM matchs";
$req4 = mysql_query($sql4) or die('Erreur SQL !<br>'.$sql4.'<br>'.mysql_error());
while($data4 = mysql_fetch_assoc($req4)){
 $sql5 = 'SELECT * FROM team WHERE id='.$data4['id_team1'].' limit 1';
 $req5 = mysql_query($sql5) or die('Erreur SQL !<br>'.$sql5.'<br>'.mysql_error());
 $data5 = mysql_fetch_assoc($req5);
 $sql6 = 'SELECT * FROM team WHERE id='.$data4['id_team2'].' limit 1';
 $req6 = mysql_query($sql6) or die('Erreur SQL !<br>'.$sql6.'<br>'.mysql_error());
 $data6 = mysql_fetch_assoc($req6);
 echo $data5['nom'].' VS '.$data6['nom'].'<br>'."\n";
}
 
Ce code fonctionne mais n'est pas optmiser du tout  [:-(p]  
 
Je voudrais donc savoir comment avoir le meme résulta mais avec une requete croisée.
 
Merci d'avance


---------------
Kinder
Reply

Marsh Posté le 01-12-2004 à 10:41:10   

Reply

Marsh Posté le 01-12-2004 à 10:48:13    

SELECT T1.nom, T2.nom
FROM matchs M, team T1, team T2
WHERE M.id_team1 = T1.id AND M.id_team2 = T2.id


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 01-12-2004 à 11:16:13    

Merci mais comment je fais maintenant pour afficher T1.nom et T2.nom ?
 

Code :
  1. $sql = 'SELECT id_team1, id_team2, T1.nom, T2.nom FROM matchs M, team T1, team T2 WHERE M.id_team1 = T1.id AND M.id_team2 = T2.id';
  2. $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  3. while($data = mysql_fetch_assoc($req)){
  4. echo $data['nom'].' VS '.$data['nom'].'<br>'."\n";
  5. }


 
Si je mets T1.nom il me met une erreur et si je fais comme dans mon code ben j'ai, forcément, le meme nom


Message édité par thekinder le 01-12-2004 à 11:16:59

---------------
Kinder
Reply

Marsh Posté le 01-12-2004 à 11:19:53    

echo $data['T1.nom']/echo $data['T2.nom'] devrait marcher (pas sûr) mais le mieux serait de mettre des alias à tes colonnes (SELECT T1.nom nom_team_1, T2.nom nom_team_2).
 
Enfin bon, tout ça tu devrais déjà le savoir si t'as lu une doc correcte sur le MySQL...


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 01-12-2004 à 11:28:29    

"select T1.nom AS nom1" si je peux me permettre
et puis c'est pas la bonne cat'

Reply

Marsh Posté le 01-12-2004 à 11:35:19    

Merci à vous 2
 
En effet $data['T1.nom'] je l'avais testé mais ca ne fonctionnait pas.
J'ai donc mis des Alias (que j'avais completement zapés, et c'est bon ca marche.
 
Merci encore


---------------
Kinder
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed