par
Ryle » 08 mars 2006, 12:48
1èrement, quand tu donnes un nom à table dans une requête, il faut utiliser AS...
Ce n'est pas utile pour le nom des tables, l'alias se fait très bien sans. C'est nécessaire en revanche pour le nom des champs.
La syntaxe de ta requête est bonne, tu dois d'ailleurs pouvoir la tester avec phpMyAdmin pour la vérifier. En revanche, pour qu'elle te ramene des résultat, cela implique qu'il doit forcément y avoir un id_type dans la table type associé à ta fonction. S'il n'y en a pas, c'est qu'aucune fonction ne répond à ta condition et donc pas de résultat.
Si tu veux ramener des lignes, même lorsqu'il n'y a pas de correspondance dans type, il faut utiliser une jointure externe :
$query1= "SELECT f.id_fonction, f.fonction, f.id_type, t.id_type, t.type ";
$query1.= "FROM fonction f LEFT OUTER JOIN type t ON f.id_type = t.id_type ";
(Nota : f.id_type et t.id_type te retourneront le même résultat vu ta condition, ce n'est donc pas utile de ramener les deux

)
[quote="heddicmi"]1èrement, quand tu donnes un nom à table dans une requête, il faut utiliser AS...[/quote]
Ce n'est pas utile pour le nom des tables, l'alias se fait très bien sans. C'est nécessaire en revanche pour le nom des champs. :)
La syntaxe de ta requête est bonne, tu dois d'ailleurs pouvoir la tester avec phpMyAdmin pour la vérifier. En revanche, pour qu'elle te ramene des résultat, cela implique qu'il doit forcément y avoir un id_type dans la table type associé à ta fonction. S'il n'y en a pas, c'est qu'aucune fonction ne répond à ta condition et donc pas de résultat.
Si tu veux ramener des lignes, même lorsqu'il n'y a pas de correspondance dans type, il faut utiliser une jointure externe :
[php]$query1= "SELECT f.id_fonction, f.fonction, f.id_type, t.id_type, t.type ";
$query1.= "FROM fonction f LEFT OUTER JOIN type t ON f.id_type = t.id_type "; [/php]
(Nota : f.id_type et t.id_type te retourneront le même résultat vu ta condition, ce n'est donc pas utile de ramener les deux :))