Connexion à une BDD depuis jumi

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

  • [RÉGLÉ] Connexion à une BDD depuis jumi

    Bonjour,

    J'ai installé récemment Jumi 2.0.6, après plusieurs essais laborieux j'ai finalement réussit à comprendre son fonctionnement, plus ou moins .

    J'ai un client qui souhaite voir le nombre de clic sur chaque article. Bien sur c'est déjà possible dans le backend, depuis la gestion des articles, seulement ce n'est pas dans la logique de mon client. Il préfèrerais avoir un lien "Clic par article" quelque chose dans le genre.
    Je cherche donc à intégrer dans un article, la liste des des articles et leurs nombre de clics associés par l'intermédiaire de jumi.

    Voilà mon code:

    Code PHP:
    <?php

    defined
    ("_JEXEC") or die("Restricted access");

    $database mysql_connect('localhost','root','');
    mysql_select_db('joomlatest2'$database);
    //global $database;

    $query "SELECT title, hits FROM `jos_content` ORDER BY hits DESC");
    $database->setQuery($query);

    $rows $database->loadObjectList();

    if (! 
    $rows) {
      die(
    'erreur';
    } else {
      foreach ( 
    $rows as $row ) {
        
    $nom $row[0];
        
        
    $hits $row[1];
        
        echo 
    '<strong>' $nom '</strong> : ' $hits '<br />';
      }



    ?>
    Seulement rien ne s'affiche. Ma connexion à la base de données doit être mauvaise. J'ai essayé avec global $database; ou avec le code tel qu'il est actuellement, mais rien n'y fait. J'ai aussi essayé d'autres choses plus farfelus qui n'ont bien sur pas fonctionné

    J'ai vu plusieurs post sur ce sujet mais je n'ai pas réussit à résoudre mon problème. Je me demande si pour global $database; il ne faut pas inclure un fichier de joomla de connexion à la base... mais si tel est le cas je ne sais lequel c'est

    Si quelqu'un peut m'aider, je l'en remercie d'avance !
    Dernière édition par kawai à 25/10/2010, 15h09

  • #2
    Un peu d'avancement dans mon débogage

    Bonjour !

    Alors je remets mon code avec les écho de niveau :

    Code PHP:
    <?php
        
    echo 'niveau0 <br />';
        
    defined("_JEXEC") or die("Restricted access");

        
    //$database = mysql_connect('localhost','root','');
        //mysql_select_db('joomlatest2', $database);
        
    global $database;

        echo 
    'niveau1';
        
    $query "SELECT title, hits FROM `jos_content` ORDER BY hits DESC";
        
    $database->setQuery($query);

        
    $rows $database->loadObjectList();

        if (! 
    $rows
        {
          die(
    'erreur';
        } 
        else 
        {
            echo 
    'niveau2';
          foreach ( 
    $rows as $row 
          {
            echo 
    'niveau3';
            
    $nom $row[0];
            
            
    $hits $row[1];
            
            echo 
    '<strong>' $nom '</strong> : ' $hits '<br />';
          }
        } 


    ?>

    Bon en cherchant ligne par ligne, j'ai repéré une fermeture de parenthèse toute seule qui n'avait rien à faire là !

    Donc mon code s'exécute bien jusqu'à la ligne :
    Code PHP:
    $database->setQuery($query); 
    A partir de celle là, j'obtiens une page blanche avec écrit "niveau1 niveau2" en mettant en commentaire les lignes suivantes.

    Si j'ajoute au code, la ligne qui suit, tout se pète la figure et je n'ai qu'une page blanche sans rien

    Je ne vois pas bien ce qui cloche avec le ligne $row..., a mon avis ça vient de plus haut toujours, mais d'où? Ça je n'arrive pas bien à la déterminer ><'

    Si quelqu'un a une piste... Je l'en remercie d'avance !
    Dernière édition par kawai à 25/10/2010, 10h00

    Commentaire


    • #3
      Bonjour,
      essaye avec $row->title et $row->hits au lieu des $row[...]
      Schtroumpfe toi le Schtroumpf t'aidera.
      Je ne schtroumpfe pas aux demandes de schtroumpf par MP.

      Commentaire


      • #4
        Bonjour,

        Merci pour ta réponse Grand Schtroumpf.
        Donc je viens d'essayer avec :
        Code PHP:
        $nom $row->title;
                
                
        $hits $row->hits
        Mais j'obtiens juste du blanc, enfin l'organisation du site est toujours là, mais l'intérieur de l'article ne contient rien. Les échos ne sont pas exécutés.

        Peut être que j'ai mal intégré mon code. Jusque là j'ai créé une nouvelle application Jumi, j'ai placé mon code dans Custom Script. Et pour l'intégrer dans l'article j'ai utilisé {jumi[*4]}.
        J'avais essayé en créant un fichier et le placer dans le dossier files de jumi, en indiquant le chemin d'accès au fichier dans pathname, mais l'intégration dans l'article ne fonctionnait pas =s

        Commentaire


        • #5
          Re,
          tien il manque une parenthèse dans die('erreur';

          tu dis que tu vois niveau1 niveau2 , mais soit tu devrais tonber sur le "die" (rows est vide) soit tu devrais avoir au moins une litanie de niveau3 ...
          Tu peux remettre le code complet dans son état actuel et nous dire ce que tu vois quand il s'exécute ?
          Schtroumpfe toi le Schtroumpf t'aidera.
          Je ne schtroumpfe pas aux demandes de schtroumpf par MP.

          Commentaire


          • #6
            Re-bonjour,

            Donc voilà mon code actuel:
            Code PHP:
            <?php
            echo 'niveau0 <br />';
            defined("_JEXEC") or die("Restricted access");

            //$database = mysql_connect('localhost','root','');
            //mysql_select_db('joomlatest2', $database);
            global $database;

            echo 
            'niveau1';
            $query "SELECT title, hits FROM `jos_content` ORDER BY hits DESC";
            $database->setQuery($query);

            $rows $database->loadObjectList();

            if (! 
            $rows
            {
              die(
            'erreur');

            else 
            {
              echo 
            'niveau2';
              foreach ( 
            $rows as $row 
              {
                echo 
            'niveau3';
                
            $nom $row->title;
                
            $hits $row->hits;
                
                echo 
            '<strong>' $nom '</strong> : ' $hits '<br />';
              }



            ?>
            Alors en déboguant ligne après ligne, je mets tous en commentaire, à partir de la ligne $database->setQuery($query); Tout est niquel, enfin j'obtiens les écho 0 et 1.
            Lorsque je mets en commentaire à partir de la ligne $rows = $database->loadObjectList(); , là j'ai une page totalement blanche, avec les écho 0 et 1.
            Et lorsque je mets en commentaire seulement le foreach ou que je n'en mets pas, j'obtiens le même résultat: une page blanche avec seulement les écho 0 et 1.

            Commentaire


            • #7
              Re,
              Je ne comprends pas tout...
              Avec ce code tel qu'il est là, forcément tu as soit un die avec 'erreur' qui s'affiche, soit un 'niveau2' et un tas de niveau3...

              essaye de remplacer global $database; par
              Code PHP:
              $database =& JFactory::getDBO(); 
              Schtroumpfe toi le Schtroumpf t'aidera.
              Je ne schtroumpfe pas aux demandes de schtroumpf par MP.

              Commentaire


              • #8
                O.O ca marche niquel !

                Qu'elle est donc cette connexion à la bdd magique? A quoi correspond JFactory?

                Enfin merci beaucoup Grand Schtroumpf ! Ca va bien m'aider pour avancer ça ! Je passe le sujet en résolu.

                Commentaire


                • #9
                  Re,
                  le global $database est aléatoire ; suivant où te te trouves $database va être trouvée ou pas au niveau au dessus. Par contre le JFactory::getDBO(); va regarder si un connecteur est déjà ouvert vers la base de données et le récupérer, et sinon en ouvrir un. D'où la nécessité du =& pour ramener un pointeur vers un objet existant qui perdurera au delà de ton bout de code.
                  Schtroumpfe toi le Schtroumpf t'aidera.
                  Je ne schtroumpfe pas aux demandes de schtroumpf par MP.

                  Commentaire


                  • #10
                    D'accord je comprend mieux. Merci beaucoup !

                    Commentaire

                    Annonce

                    Réduire
                    1 sur 2 < >

                    C'est [Réglé] et on n'en parle plus ?

                    A quoi ça sert ?
                    La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

                    Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

                    Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
                    Comment ajouter la mention [Réglé] à votre discussion ?
                    1 - Aller sur votre discussion et éditer votre premier message :


                    2 - Cliquer sur la liste déroulante Préfixe.

                    3 - Choisir le préfixe [Réglé].


                    4 - Et voilà… votre discussion est désormais identifiée comme réglée.

                    2 sur 2 < >

                    Assistance au forum - Outil de publication d'infos de votre site

                    Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

                    Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

                    Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

                    UTILISER À VOS PROPRES RISQUES :
                    L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

                    Problèmes connus :
                    FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

                    Installation :

                    1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

                    Archive zip : https://github.com/AFUJ/FPA/zipball/master

                    2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

                    3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

                    4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

                    5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

                    6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
                    et remplacer www. votresite .com par votre nom de domaine


                    Exemples:
                    Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
                    Télécharger le script fpa-fr.php dans: /public_html/
                    Pour executer le script: http://www..com/fpa-fr.php

                    Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
                    Télécharger le script fpa-fr.php dans: /public_html/cms/
                    Pour executer le script: http://www..com/cms/fpa-fr.php

                    En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

                    Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
                    Voir plus
                    Voir moins
                    Travaille ...
                    X