Jomsoacial 2.6 Question SQL query pour Module MOD LASTEST MEMBERS

Réduire
Ce sujet est fermé.
X
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] Jomsoacial 2.6 Question SQL query pour Module MOD LASTEST MEMBERS

    Bonjour,

    je suis en train de modifier le module mod_latestmembers pour Jomsocial 2.6.x.

    Il y a une query SQL qui me pose problème et qui me renvoie une erreur:

    La query ci-dessous est celle qui fonctionne, où 2 tables sont utilisées pour récupérer des données: Table jos_users de joomla et table Jos_community_users de Jomsocial, elles sont le même genre de structure (colonne user id, puis colonne info1, colonne info2 ...).

    Code:
    $query	=	'SELECT * '
    			. 'FROM ' . $db->nameQuote( '#__users' ) . ' a, ' . $db->nameQuote( '#__community_users' ) . 'b '
    			. 'WHERE a.id = b.userid AND a.block = 0 ' 
    			. $condition
    			. 'ORDER BY a.' . $db->nameQuote( 'registerDate' ) . ' ' 
    			. 'DESC LIMIT ' . $limit;
    Mais je n'arrive pas à faire intervenir une 3eme table : #__community_fields_values (peut être car elle n'a pas la même structure ? par ligne, en face d'un userid, il y a une info fieldxx, puis valeur du fieldxx, il peut y avoir donc plusieurs lignes avec le même userid, c'est le couple userid/fieldxx qui permet de trouver une valeur).

    Ce qui m'intéresse, est que pour les user_id non blocqués, je récupère les infos liées à la condition $condition (url avatar) et des infos de la table #__community_fields_values qui contient tous les détails d'un profil (sexe, recherche, ville ...).

    Je n'y arrive tout simplement pas .
    Une petite astuce à partir du code exemple ci-dessus ?
    J'ai essayé des Inner join, mais j'ai dû me parfumer quelque chose.
    J'ai répliqué un code que j'avais de community builder avec plusieurs tables appelées, mais là cela ne marche pas. Je pense vraiment que la structure de la table 3 me met des bâtons dans les roues.

    Merci par avance
    MeetnSport.com

  • #2
    Re : Jomsoacial 2.6 Question SQL query pour Module MOD LASTEST MEMBERS

    Bonjour,

    Et bienvenue sur le forum.

    Jomsocial étant un produit commercial, il en faut une licence pour accéder aux structure des tables et découvrir les liens entre les tables, et ce que peuvent renfermer les tables pivot.

    L'utilisation des LEFT, INNER et OUTER JOINS en SQL n'est pas toujours évidente, suivant la structure des diverses tables impliquées, des index existants sur chaque table, etc. Une jointure non optimale peut rendre la requête très lente.

    Le plus sage serait de tester la requête via phpMyAdmin et une fois fonctionnelle, de l'optimiser (le plus souvent, en évitant les jointures sur champs non indexés) et de transformer cette requête en VIEW pour rendre le tout plus performant. Ensuite la VIEW est accessible dans Joomla! comme une simple table.

    Community Builder réalise ce genre de requêtes, mais sa structure de tables est très différente de celle de JomSocial, CB créant un champ dans la table #__comprofiler pour chaque champ créé, les valeurs des champs étant directement dans cette table, les autres tables étant des annexes définissant le typage du champ et n'étant chargées qu'une fois.
    Pas de demande de support par MP.
    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

    Commentaire


    • #3
      Re : Jomsoacial 2.6 Question SQL query pour Module MOD LASTEST MEMBERS

      Bienvenue !

      Joomla! 1.5 n'étant plus maintenu depuis un an déjà, pourquoi se lancer dans des modifications d'une extension qui n'est plus disponible chez l'auteur ?
      "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
      MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

      Commentaire


      • #4
        Re : Jomsoacial 2.6 Question SQL query pour Module MOD LASTEST MEMBERS

        J1.5.26
        JS2.6.2 avec plein de custos
        XIUS
        XIPT
        AEC
        Le tout débeuggé + système de paiement Ogone fragile mais opérationnel, 5 années de custos, d'optimisations pour avoir un site qui fonctionne bien.
        Je préfère appliquer de petites modifs de maintenance qu'opérer une révolution dont je doute de l'issue en termes de compatibilité de toutes ces briques.

        Et je ne parle que de la partie visible de l'iceberg.

        Il y a quand même un point très faible dans le monde des CMS et des extensions payantes, c'est le support catastrophique. Quand tout fonctionne enfin ... la raison dit de ne pas se lancer dans une bataille perdue d'avance, surtout quand c'est un hobby, certe lucratif, mais hobby quand même.

        Pour un nouveau site, oui, en effet, utiliser la dernière version de tout ce petit monde me semble une bonne idée.
        MeetnSport.com

        Commentaire


        • #5
          Re : Jomsoacial 2.6 Question SQL query pour Module MOD LASTEST MEMBERS

          Bonjour jisse03,

          j'ai suivi votre conseil avec phpmyadmin,

          cette query fonctionne très bien avec 3 tables (j'ai remplacé les variables par des valeurs en dur):

          Code:
          SELECT * 
          FROM jos_users a, jos_community_users b, jos_community_fields_values c
          WHERE a.id = b.userid
          AND a.block =0
          AND b.avatar !=  'components/com_community/assets/default.jpg'
          AND c.user_id = b.userid
          AND c.value =  'Homme'
          ORDER BY a.registerDate DESC 
          LIMIT 10

          Cette requête fonctionne bien, mais l'équivalent dans le module joomla plante.

          bizarre. Je vais continuer à investiguer.
          MeetnSport.com

          Commentaire


          • #6
            Re : Jomsoacial 2.6 Question SQL query pour Module MOD LASTEST MEMBERS

            et voilà le message d'erreur après avoir appliqué cette même requête dans le module joomla:
            Je ne comprends pas pourquoi on me parle de Unknown Column ...

            DB function failed with error number 1054
            Unknown column 'Homme' in 'where clause' SQL=SELECT * FROM `jos_users` a, `jos_community_users`b, `jos_community_fields_values`c WHERE a.id = b.userid AND a.block = 0 AND b.`avatar` != 'components/com_community/assets/default.jpg' AND b.`avatar` != 'components/com_community/assets/user_thumb.png' AND b.`avatar` != 'images/profiletype/avatar_1.jpg' AND b.`avatar` != 'images/profiletype/avatar_2.jpg' AND b.`avatar` != 'images/profiletype/avatar_3.jpg' AND b.`avatar` != 'images/profiletype/avatar_4.jpg' AND b.`avatar` != 'images/profiletype/avatar_5.jpg' AND b.`avatar` != 'images/profiletype/avatar_6.jpg' AND b.`avatar` != 'images/profiletype/avatar_7.jpg' AND b.`avatar` != 'images/profiletype/avatar_8.jpg' AND b.`avatar` != 'images/profiletype/avatar_9.jpg' AND b.`avatar` != 'images/profiletype/avatar_10.jpg' AND b.`avatar` != 'images/profiletype/avatar_11.jpg' AND b.`avatar` != '' AND b.userid = c.user_id AND c.value = `Homme` ORDER BY a.`registerDate` DESC LIMIT 10
            Dernière édition par elynx à 07/09/2013, 19h02
            MeetnSport.com

            Commentaire


            • #7
              Re : Jomsoacial 2.6 Question SQL query pour Module MOD LASTEST MEMBERS

              Dans la requête, il y a une erreur...
              Code:
              [COLOR=#333333]AND c.value = `Homme`[/COLOR]

              devrait être
              Code:
              [COLOR=#333333]AND c.value = 'Homme'[/COLOR]

              le backtick ` ne s'utilise que pour les noms de tables ou de colonnes, mais en SQL standard, les chaînes sont entre ' (apostrophe)

              Pas de demande de support par MP.
              S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

              Commentaire


              • #8
                Re : Jomsoacial 2.6 Question SQL query pour Module MOD LASTEST MEMBERS

                Merci Jisse03,
                j'ai essayé cela aussi, et pour être précis, dans le code php, je n'utilise pas la valeur en dur 'homme', mais une variable qui peut prendre la valeur Homme / Femme.

                Je me suis finalement débrouillé avec une autre table de Xipt (ProfileTypes) qui fait l'affaire et qui a une structure semblable aux 2 premières.

                Merci beaucoup pour l'aide, le fait d'avoir testé sur phpmyadmin et voir que cela fonctionnait m'a simplement prouvé qu'il fallait que je cherche une piste et ne pas m'entêter. C'est fait
                MeetnSport.com

                Commentaire


                • #9
                  Re : Jomsoacial 2.6 Question SQL query pour Module MOD LASTEST MEMBERS

                  Il te reste à passer le sujet en Réglé

                  Mais une mise à niveau de Joomla! et JomSocial ne serait pas un luxe, d'autant que tes extensions sont disponibles pour Joomla! 2.5.
                  Pas de demande de support par MP.
                  S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

                  Commentaire


                  • #10
                    Re : Jomsoacial 2.6 Question SQL query pour Module MOD LASTEST MEMBERS

                    je me tâte mais pour le moment les inconvénients et les extensions ne sont pas toutes compatibles ou à jour. Donc 1.5 fera de vieux os encore.
                    MeetnSport.com

                    Commentaire

                    Annonce

                    Réduire
                    Aucune annonce pour le moment.

                    Partenaire de l'association

                    Réduire

                    Hébergeur Web PlanetHoster
                    Travaille ...
                    X