Appel de base via PHP en SQL

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

  • [Problème] Appel de base via PHP en SQL

    Bonjour la communauté,

    RESUME DU PROBLEME :
    Une requête SQL en PHP ne me renvoi comme résultat en front end qu'un saut de ligne. cf code ci-dessous.

    DETAIL DU PROBLEME
    J'ai réalisé un formulaire d'inscription sur un site Joomla! 2.5. Il permet de renseigner des informations utilisateurs sur la base classique de Joomla mais également deux autres tables complémentaires que j'ai créées.

    Je souhaite désormais permettre la consultation par la personne connectée (à terme la modification) des informations le concernant. Pour ce faire j'utilise du PHP et une requête SQL et comme vous pourrez vous en douter, je ne connais ni l'un ni l'autre (j'en profite pour m'auto-former), mais ce n'est pas simple pour moi.

    Voici le code que j'ai écrit dans mon article à l'aide du composant "sourcerer":

    {source}
    <?php
    $user =& JFactory::getUser();
    $username = $user->username;
    $id = $user->id;
    $mysqli = new mysqli("monhote", "mabase", "motpasse", "table");
    $etablissement=$mysqli->query("SELECT etablissement FROM table WHERE users_id='$id'");
    mysqli_free_result($etablissement);
    ?>
    {/source}

    Votre identifiant

    {source}
    <?php echo $username; ?>
    {/source}

    Votre établissement

    {source}
    <?php echo $etablissement; ?>
    {/source}


    J'ai testé plusieurs formule à la place de $etablissement=$mysqli->query et mysqli_free_result($etablissement), sans succès.

    Help !!

    Merci et bonne fin de journée

  • #2
    Re : Appel de base via PHP en SQL

    Bonjour,

    Utiliser du MySQLi dans un contexte Joomla! (même si ce dernier utilise en dessous également cette interface) n'est en général pas une bonne idée.

    De plus ton code est coupé en rondelles, donc tu perds tes contextes de script PHP entre chaque élément, ce qui explique les lignes vides...
    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 : Appel de base via PHP en SQL

      Bonjour,

      Merci pour cette réponse, malheureusement, pas mieux aujourd'hui... Voici le code modifié avec tes remarques :

      {source}<?php
      $user =& JFactory::getUser();
      $username = $user->username;
      $id = $user->id;
      $etablissement=mysql_db_query(mysql_connect('monho te', 'mabase', 'monpass', 'matable'), 'SELECT etablissement FROM matable WHERE users_id=210');
      mysql_free_result($etablissement);
      ?>
      {/source}

      Votre identifiant

      {source}
      <?php echo $username; ?>
      {/source}

      Votre établissement

      {source}
      <?php echo $etablissement; ?>
      {/source}


      J'ai essayé de refaire le saucisson complet et supprimé le Mysqli au profit de Mysql, le résultat est le même. J'ai encore essayé plusieurs combinaison mais aucune ne fonctionne.

      Par ailleurs j'ai testé la requete directement dans le PHPMyAdmin et elle me ressort bien le champ que je cherche... J'en déduit (peut être à tort) que le problème vient vraiment de mon code php...

      Une autre idée ?

      Commentaire


      • #4
        Re : Appel de base via PHP en SQL

        Code PHP:
        {source}
        <?php
        $dbo 
        JFactory::getDBO() ;
        $user JFactory::getUser();
        $username $user->username;
        $id $user->id;
        $query 'SELECT etablissement FROM matable WHERE users_id=210';
        $dbo->setQuery$query ) ;
        $etablissement $dbo->loadResult();

        echo 
        "Votre identifiant : $username <br />" ;
        echo 
        "Votre établissement : $etablissement <br />" ;
        ?>
        {/source}
        aurait bien plus de chances de fonctionner.
        En utilisant la classe JDatabase, tu respectes le contexte Joomla!

        Il faut savoir également que chaque groupe {source}...{/source} est un contexte à part entière et que tu n'as pas de transfert de données entre 2 contextes séparés, même si ces contextes sont dans le même article, le plugin analysant chaque groupe comme une entité complète.
        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


        • #5
          Re : Appel de base via PHP en SQL

          Parfait, ça fonctionne parfaitement. Merci bcp.

          J'avoue ne pas franchement comprendre le langage... Et pour aller plus loin, est-il possible à l'utilisateur de modifier ses propres informations dans la base de données (avec un input par exemple dans lequel serait indiqué la valeur actuelle et qu'il pourrait modifier, la bdd se modifiant lorsqu'il valide le formulaire) ?

          Est-ce beaucoup plus compliqué? (Auquel cas je laisserais tomber pour le moment en trouvant une solution alternative comme contacter les administrateurs pour modifier les informations personnelles).

          Merci encore jisse03.

          Commentaire


          • #6
            Re : Appel de base via PHP en SQL

            A peu près tout est faisable, à condition de bien maîtriser les APIs Joomla! et PHP/SQL.
            Mais s'il s'agit de permettre à un membre de modifier ses informations personnelles (voire des profils complexes), il existe des composants faits pour: Community Builder, Easy Social, JomSocial, ODude, etc...
            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

            Annonce

            Réduire
            Aucune annonce pour le moment.

            Partenaire de l'association

            Réduire

            Hébergeur Web PlanetHoster
            Travaille ...
            X