IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Affichage par catégorie sur Drupal 6


Sujet :

Requêtes MySQL

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2014
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Affichage par catégorie sur Drupal 6
    Bonjour,

    Je suis sous Drupal 6 et je travaille avec la configuration utilisée lors de la dernière modification du site : WampServer 2.2, avec serveur Apache 2.2.11, PHP 5.2.9-2 et MySQL 5.1.36 (au cas où ceci ait une importance). Je travaille en local avant de mettre les modifications en ligne.

    Voici ma situation : on m'a demandé d'ajouter un champ "catégorie" et de faire en sorte que les catégories s'affichent et que lorsque l'on clique dessus, la liste des ressources de cette catégorie apparaît.

    Voici mon code source : Code source.php (il se met dans un bloc php dans drupal, donc c'est normal qu'il n'y ait pas les balises normales d'un début de page).

    Ceci peut paraître simple, je l'ai moi-même fait de nombreuses fois, soit avec GROUP BY, soit un DISTINCT selon les situations. Voici ce que j'ai testé :
    - La requête actuelle affiche ceci (variable $selectnid):
    Nom : Aperçu résultat.png
Affichages : 86
Taille : 13,3 Ko
    Il affiche la catégorie à chaque fois qu'il y a une ressource dedans. Ce que je veux c'est que la catégorie ne s'affiche qu'une fois avec toutes les ressources de cette catégorie.

    - Alors j'ai essayé d'ajouter un GROUP BY des catégories, et voici le résultat :
    Nom : Aperçu résultat 2.png
Affichages : 92
Taille : 9,0 Ko
    On a bien les catégories affichées une seule fois, mais cela n'affiche pas toutes les ressources. Une seule n'est affichée par catégorie... J'imagine que le problème vient de la requête, mais je ne sais pas comment résoudre le problème.

    - Avec la requête sans GROUP BY, j'ai également essayé de vérifier avec un IF si la valeur de la catégorie n'était pas la même et cela n'a affiché qu'une seule ressource dans la catégorie, et je n'arrivais pas à mettre les autres ressources dans le même bloc depuis le ELSE.

    - Le DISTINCT ne change rien...

    Informations complémentaires : lorsque l'on créé un champ, c'est une table complète qui s'ajoute dans la base de données, dans mon cas : content_type_ressources_choristes avec un seul champ dans la table : content_type_ressources_choristes_value. Quand je regarde dans la table, il y a pas mal de lignes avec NULL et certaines où le nom des catégories se répètent (à priori le même nombre que celui des ressources de la catégorie).

    Pourriez-vous m'aider ?

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2014
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    J'ai continué à faire des essais et j'ai réussi à faire en sorte d'afficher toutes les ressources par catégorie, voici le résultat :

    Nom : Aperçu résultat 3.png
Affichages : 111
Taille : 10,0 Ko

    Voici le nouveau code source : Code source.php
    J'ai ajouté une requête pour ne sélectionner que les catégories et ajouter la condition avec un WHERE de la catégorie dans la seconde requête.

    Seulement maintenant j'aimerais faire en sorte que l'affichage se fasse selon un ordre précis... Pas par ordre alphabétique (ça j'y suis arrivé), pas aléatoire, mais que la personne qui s'occupera d'ajouter des catégories ou autre (sans connaissances de développeur) puisse choisir l'ordre d'affichage.

    J'ai pensé à ajouter un champ Ordre_categorie mais comme ce n'est pas une table à part entière, et que la sélection de la catégorie se fait à la création d'une ressource choriste...

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2014
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Étant donné le fait qu'il faille choisir la catégorie de la ressource à chaque fois qu'il y a un ajout, il n'y a pas une table où je pourrais faire entrer l'ordre de l'affichage des catégories. Et créer un champ facultatif mais qui s'affiche sur chaque node où il a été entré n'est pas une très bonne solution, car j'y ai pensé :

    Si je crée un champ Ordre d'affichage de la catégorie, et que je change sa valeur sur un seul des articles, je suppose que je pourrais ajouter un ORDER BY de ce champ, mais du coup sur ces articles, quand on ira dessus, il y aura affiché cette valeur... Même si ce n'est qu'une seule fois, les utilisateurs ne comprendront pas de quoi il s'agit.

    Quelqu'un aurait une autre solution pour choisir l'ordre d'affichage ?

Discussions similaires

  1. Affichage par catégorie dans une ListView
    Par eento dans le forum Composants graphiques
    Réponses: 7
    Dernier message: 03/08/2012, 13h40
  2. [SP-2007] Filtre par catégories sur Blog perdu
    Par Davyd.B dans le forum SharePoint
    Réponses: 1
    Dernier message: 28/09/2011, 17h37
  3. Réponses: 3
    Dernier message: 24/04/2008, 11h42
  4. [Tableaux] Affichage par catégorie
    Par snyfir dans le forum Langage
    Réponses: 4
    Dernier message: 28/02/2008, 17h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo