Connection à la base de données JOOMLA

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

  • [Problème] Connection à la base de données JOOMLA

    Bonjour,
    C'est un point souvent évoqué, mais je n'ai aucun retour de ma base joomla en utilisant vos codes.
    J'ai crée via phpmyadmin une table test nommée infotab, avec id, nom, prenom,et civil (complété de 3 lignes de données).
    J'ai crée un dossier et fichier sur mon serveur distant : poo201712/interogebdd.php
    Puis grâce à un module 'fenêtre intégré', je vérifie mon code...(pour m'assurer du bon fonctionnement j'ai des echo, et des nombres aléatoires...avec un bon retour.)
    Mon codes d'interrogation de la base est le suivant :
    <? php
    $db = JFactory::getDBO();
    $db->setQuery("SELECT nom FROM #__infotab");
    echo $db->loadResult();
    ?>
    J'ai utilisé loadResult pour avoir un simple retour... et Rien ne s'affiche.

    Ou est mon erreur.

    Merci à vous.

  • #2
    Désolés, pour la présentation... voici la bonne mise en forme.
    Code PHP:

    $db 
    JFactory::getDBO();
    $db->setQuery("SELECT nom FROM #__infotab");
    echo 
    $db->loadResult(); 
    T'CHOUSS

    Commentaire


    • #3
      Bonjour,

      Avez-vous essayé de regarder https://docs.joomla.org/Selecting_da...g_JDatabase/fr ? il y est conseillé d'utiliser une syntaxe équivalente (query chaining).

      D'autre part, je pense que la commande est $db = JFactory::getDbo(); (en respectant bien les majuscules, minuscules).

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

      Commentaire


      • #4
        Bonjour,

        Active le mode débug, tu pourras déjà vérifier que ta requête s'exécute bien.

        Commentaire


        • #5
          Bonjour Pascal,
          Merci pour cette info, je ne connaissais pas cette fonction dans JOOMLA. J'ai donc bien vérifié tous les appels à la bdd, (une quinzaine sur un nouveau site vierge chargé sur OVH il y a 2 jours en version 373 pour faire ces tests...)
          Y-a-t-il peut-être un petit 'curseur' à changer de position pour que JOOMLA autorise les appels à la bdd ?
          Merci à toute proposition de test pour résolution.
          Bien à vs.
          Vous souhaitant un agréable Dimanche.

          Commentaire


          • #6
            Bonjour,

            Du moment que la requête est traiter dans ton programme, elle est exécutée dans Joomla et si le mode debug est affiché, elle apparaît dans cette section.
            Si tu ne la vois pas dans la partie debug, c'est quelle n'est pas exécuté correctement.
            As tu activé également le mode "développement" afin de voir les messages d'erreur ?

            Commentaire


            • #7
              Bonsoir Fabrice,
              Merci pour ton info, mais je ne trouve pas de 'mode développement' dans le back de joomla. (J'ai bien regardé tous les onglets de Syst/Config onglet Systéme et Site...).
              Seul info, sur ce forum, c'est soit en mode production ou mode développement (site en ligne ou pas) ??? en testant hors ligne, le module débug n'est pas cliquable.
              Si tu peux m'indiquer dans joomla où se trouve ce mode.
              D'avance merci.

              Commentaire


              • #8
                Salut,

                C'est dans : Système / Configuration / Serveur / Rapport d'erreurs

                Commentaire


                • #9
                  Essayes plutot ceci. Après, je ne sais pas dans quel fichier tu comptes le mettre?

                  Code PHP:
                  $db JFactory::getDBO();
                  $query $db->getQuery(true);

                  $query->select($db->qn('nom'));
                  $query->from($db->qn('#__infotab'));
                  $db->setQuery($query);        
                  $rows $db->loadObjectList(); 
                  ++
                  Wis

                  Commentaire


                  • #10
                    Bonjour,
                    Merci pour vos infos, pour l'instant, il n'y a pas de messages d'erreurs (sur la page d'accueil). J'ai testé le code de Wismer en y ajoutant un
                    Code PHP:
                    echo $rows
                    afin de vérifier le retour. et toujours pas de réponse de la bdd, ni d'appels (rien dans le debug requêtes de la bdd).

                    Pour répondre à la question de Wismer, je n'ai pas d'objectif précis, j'apprends seulement tout doucement avec les forums, tutos la programmation et joomla.
                    @+

                    Commentaire


                    • #11
                      Mes connaissances en codage sont limitées, mais étant donné que $rows est un tableau qui est récupéré je pense donc qu'un "echo" ne peut pas l'afficher.
                      "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


                      • #12
                        Bonjour,

                        Essai un
                        Code PHP:
                        die(print_r($rows)); 
                        L’avantage, c'est que ça va t'arrêter le traitement du code à cet endroit et tu pourras être sur que ton code s'exécute.

                        Commentaire


                        • #13
                          Autre solution, plus propre:
                          Code PHP:
                          try {
                          $db JFactory::getDBO();
                          $query $db->getQuery(true);

                          $query->select($db->qn('nom'));
                          $query->from($db->qn('#__infotab'));
                          $db->setQuery($query);        
                          $rows $db->loadObjectList();  
                          print_r($rows);
                          } catch (
                          Exception $e) {
                            echo 
                          "Exception" $e->getMessage();  
                          }
                          echo 
                          "c'est fait...."
                          Si vous avez une erreur dans votre commande, elle sera affichée.

                          Pascal
                          Dernière édition par pmleconte à 12/12/2017, 10h21
                          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