Requete SQL avec champs de type SQL qui ne fonctionne pas

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] Requete SQL avec champs de type SQL qui ne fonctionne pas

    Bonjour,
    j'ai le JCE PRO et je n'arrive pas a faire afficher le résultat d'un champs de type SQL dans un article

    par exemple la requete figurant ci dessous fonctionne bien si je l'éxecute avec phyMyAdmin directement sur ma BD mais ne fonctionne pas quand je l'integre dans un article via le bouton d'inclusion de champs qui apparait sous la fenetre de saisie de l'article ( qui poste donc un code {field N°} )

    J'ai intégré le package AutoMSG qui gère la liste des abonnés aux AutoMessage envoyé par e-mail aux users lors de la publication d'un nouvel article et le oui ou non de souscription existe désormais dans la table des profils utilisateurs

    SELECT u.name,u.username, p.profile_value
    FROM #__users u
    LEFT JOIN #__user_profiles p ON u.id = p.user_id
    WHERE p.profile_key = 'profile_automsg.automsg'
    ORDER BY profile_value ASC, name ASC ;

    Par contre d'autres requêtes integrées dans d'autres champs fonctionnent bien et s'affichent bien dans un article
    exemple

    select id as value, count(*) as text
    from #__users
    where lastvisitDate is NULL

    Que manque t'il a ma requête pour qu'elle fonctionne : je fais appel à vos suggestions : MERCI​
    ou peut être la version 5.2.3 de joomla ne gère plus les champs sql ?

  • #2
    Bonjour,

    Le champ SQL ne permet que 2 colonnes en sortie : value et text.

    Il est utilisé pour créer une listbox.

    Pour votre demande, je pense qu'il faut faire 2 champs : un pour les "oui" et un pour les "non" :

    un champ SQL Oui :
    SELECT u.name as text,u.username as value
    FROM #__users u
    LEFT JOIN #__user_profiles p ON u.id = p.user_id
    WHERE p.profile_key = "profile_automsg.automsg"
    AND p.profile_value like "%Oui%"
    ORDER BY name ASC ;​

    et un champ SQL Non : ​
    SELECT u.name as text,u.username as value
    FROM #__users u
    LEFT JOIN #__user_profiles p ON u.id = p.user_id
    WHERE p.profile_key = "profile_automsg.automsg"
    AND p.profile_value like "%Non%"
    ORDER BY name ASC ;​

    Pascal
    Dernière édition par pmleconte à 26/01/2025, 10h23
    If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

    Commentaire


    • #3
      Bonjour Pascal

      Ok cela ne me gène pas de faire 2 requêtes

      mais il y a quelquechose que je ne dois pas bien saisir dans la definition du champs sql via les onglets de joomla car cela ne m'affiche que le premier nom de user trouvé et pas la liste des users que me rend la requete

      par exemple si la requete "non" me donne 3 users je ne vois que le premier

      dans l'onglet general sous la requete il y a un champs multiple j'ai essaye de mettre a oui plutot que "parametre du plugin" mais pas d'effet !
      dans l'onglet parametres le champs mise en page ne permet dans la liste deroulante de ne saisir que "valeur par defaut" et pour tout ce qui concerne les classes les champs ne sont pas remplis

      comment puis je faire pour avoir une liste ? merci pour votre aide

      Commentaire


      • #4
        Bonjour Chantal,

        Le résultat de la requête est une listBox.

        Concernant le paramètre Multiple, il permet de sélectionner plusieurs valeurs dans la listBox et ce n'est pas ce que vous souhaitez.

        Pascal
        If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

        Commentaire


        • #5
          Re bonjour Pascal

          Effectivement j'avais vu que cela me permettait de choisir un nom dans la listbox qui alors s'affichait dans mon article

          mais cette listbox n'est visible que lorsque l'on est en mode modification d'article qui d'ailleurs via l'onglet sql affiche toutes les listbox de tous les champs définis dans joomla que l'on soit dans le backend ou le frontend

          Donc maintenant ce que je souhaiterais c'est voir cette listbox directement sur la page de mon article

          Cela fonctionnait avec d'anciennes versions de joomla ou JCE ? car j'avais créé en 2021 un article qui m'affichait bien le nombre de comptes et la liste des users qui ne s'étaient jamais connecté au site et maintenant si j'essaie d'integrer ces memes fields dans un nouvel article je n'ai plus les listes

          donc j'aimerais trouver le pourquoi
          Bonne journée

          Commentaire


          • #6
            Bonjour Chantal,

            Le champ personnalisé SQL en mode Admin affiche une listbox.

            Lorsqu'il est affiché sur le site, il affiche dans l'article la valeur sélectionnée dans l'admin, il n'affiche pas toutes les valeurs possibles : voir https://docs-next.joomla.org/docs/fi...lds-sql-field/

            Je n'ai pas trouvé de champ personnalisé permettant d'afficher une listbox.

            Par contre, si vous connaissez le plugin UP de Loïc, vous pouvez utiliser l'action sql comme suit :

            Code:
            {up sql=#__users AS u | select=u.name,u.username,p.profile_value| leftjoin=#__user_profiles p ON u.id = p.user_id | where=p.profile_key = 'profile_automsg.automsg' | order=profile_value ASC, name ASC | template=##name## ##username## ##profile_value##}
            Voir https://up.lomart.fr/demo/action-sql

            Pascal
            If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

            Commentaire

            Annonce

            Réduire
            Aucune annonce pour le moment.

            Partenaire de l'association

            Réduire

            Hébergeur Web PlanetHoster
            Travaille ...
            X