SQL, PHP & INNER JOIN

Fermé
grosbouff - 17 oct. 2007 à 11:52
 spidag - 17 oct. 2007 à 12:18
Bonjour,
hello, je voudrais faire une requête un peu spéciale :

-j'ai deux tables : posts & traducs.
La table contient les champs |post_id|language_id|translation_group|
Elle me sert à stocker tous les ids des posts avec leur langue (1,2 ou 3) et le groupe d'articles dont il fait partie, si ils ont été traduits.

Maintenant, je voudrais faire une requête de sorte que, à partir d'un ID donné (le $post_id de ma fonction ci-dessous); ma requête sélectionne la ligne correspondant à l'article traduit de l'ID donné.

Donc si mon post #5 est une traduction anglaise de mon post #1; je voudrais qu'en utilisant gengoGetAPost (1), il me retourne la ligne correspondant à post_id 5 dans la table posts.

Il faudrait donc, à l'intérieur de la requête,
-récupérer le translation_group de l'ID donné
-le comparer à un autre ligne
---qui a le même translation_group
---dont le language_id est 2 (dans le cas de l'anglais)
- isoler la valeur du champs post_id de cette table et aller extraire de la table posts la ligne correspondante.

J'ai commencé à plancher sur le truc, mais c'est dur ! Ceci ne marche pas encore, je sais pas ou placer translation_group...

function gengoGetAPost($post_id) {
	$language_ids = 2; //2 = langue anglaise

	$query = "SELECT p.* FROM posts AS p INNER JOIN traducs AS p2l ON p.ID = p2l.post_id WHERE p2l.language_id IN ($language_ids) AND p2l.post_id='".$post_id."' LIMIT 1";

	return ($result = $wpdb->get_row($query)) ? $result : NULL;
}


Merci pour votre aide !
A voir également:

1 réponse

Bonjour, je vois que tu essaie de tirer une ligne du resultat de la requete.
Ce resultat est inexistant ...
0