Une requête qui n'est pas tout à fait correcte - SQL/NoSQL - Programmation
Marsh Posté le 27-02-2009 à 16:45:31
De ce que je comprends, ton post "3" est attaché aux catégories 3 et 6 en même temps, c'est bien ça ?
Si oui, déjà, est-ce normal ?
Ensuite, pour que la requête ne retourne des post que pour la categorie 3 par exemple, voici ce que je tenterais :
Code :
|
Marsh Posté le 27-02-2009 à 16:46:19
(à la base, il s'agit de sélectionner les lignes pour lesquelles on ne trouve pas de relation de catégorie différente de cette dans laquelle on est, si c'est bien ça que tu veux)
Marsh Posté le 02-03-2009 à 11:01:48
en fait la catégorie 3 est la catégorie parent des catégories 5 et 6.
Ce que j'aimerais, c'est que quand on clique sur un élément de la catégorie 5, ou 6, on ait la possibilité de naviguer entre les différents de la même catégorie (5 ou 6) uniquement.
Je vais tester ton code.
Marsh Posté le 02-03-2009 à 12:21:00
on m'a proposé cette solution sur un autre forum qui a l'air de bien fonctionner.
C'est surtout une histoire de inner join et de where mal placé a priori
Code :
|
Maintenant il faut que j'arrive à mettre en place le code qui génére cette requête
Marsh Posté le 27-02-2009 à 15:06:03
Bonjour,
J'espère pouvoir trouver une solution à ce problème qui m'empoisonne pas mal l'existence ces jours derniers. Je suis pas vraiment ce qu'on peut appeler un codeur, même si j'ai un DUT SRC, ca fait bien longtemps que j'ai arrété de faire du dev web pur et dur. Je me débrouille avec ce que je sais faire, mais parfois il m'arrive (comme là), de n'avoir aucune idée sur ce que je devrais faire pour obtenir ce que je veux. En vrai, j'ai pas du créer une requête SQL depuis facilement 4 ans.
Donc voilà, sous wordpress, on a une fonction qui s'appelle previous_post_link (pareil avec next), qui en théorie permet d'exclure un certain nombre de catégories, qui fait que la navigation ne s'opère qu'au sein d'une seule catégorie, ce qui est par ailleurs exactement ce dont j'ai besoin.
Or voilà, il semblerait que ca ne marche pas. Disons que si j'ai deux catégories, chien et chat, et que je veux naviguer uniquement dans chat, ben le filtre "vire-moi-les-chiens" ne fonctionne pas. Car le post suivant ou précédent apparait quand meme comme être un chien. Enfoiré!
J'ai cherché sur les forums wordpress, aucune réponse consistante n'a pu venir me sauver, donc j'ai décidé d'y aller à bras-le-corps, et d'aller moi-même farfouiller dans les requêtes sql.
Donc voici la requête effectuée par wp pour savoir quel est le post suivant à afficher (pour en créer un lien, enfin je laisse wordpress faire son travail, le problème étant surtout qu'il me retourne des posts de mauvaise catégorie):
où NOT IN (5) est censé opérer le filtre.
Maintenant je l'ai retournée dans tous les sens, en remplacant par !=, en mettant IN, ou = en changeant la catégorie (5 ou 6), en l'enlevant, et à chaque fois il me retourne le même post.
Donc, mes capacités d'analyse m'ont permis d'en conclure que cette condition ne sert absolument à rien dans la requête. Maintenant j'aimerais savoir s'il y a un moyen d'arriver à faire marcher ce filtre, dont j'ai désespérément besoin, pour lequel j'ai essayé plusieurs méthodes et sur lequel je viens de passer plusieurs heures (au moins depuis hier apm), et si oui, est ce que vous pourriez m'aider à l'atteindre?
Merci beaucoup
pour la structure de la db, on une dizaine de table, mais les trois utilisées ici sont correctes il me semble:
Post, contient tous les posts, relationship est la relation entre les post et les catégories:
et term_taxonomy ressemble à cela:
Merci pour votre aide!