Requête sql et user_profile

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

  • Requête sql et user_profile

    Bonjour,

    J'ai bataillé toute la journée pour faire fonctionner un petit script php qui fait juste des requêtes sur ma bdd.
    Mon premier code fonctionne, il permet d'afficher une info:

    Code PHP:
    function getAge(&$user, &$userid, &$database)

        
    $database->setQuery("SELECT profile_value 
        FROM #__user_profiles 
        WHERE user_id='
    $userid
        AND profile_key='akeebasubs.age'" 
    );
        if (!
    $database->query()) {
            echo 
    $database->stderr();
            return 
    false;
        }
        
    $result $database->loadResult();
        return 
    $result;
    }
    $age getAge($user$userid$database);
    echo 
    "Age : " $age "<br>"
    En revanche lorsque j'essaie de modifier le champ age de la bdd ça ne fonctionne pas, voici le code :

    Code PHP:
    function setAge(&$userid, &$database$new_age)

        
    $database->setQuery("UPDATE #__user_profiles
        SET profile_value='
    $new_age'
        WHERE user_id='
    $userid'
        AND profile_key='akeebasubs.age'" 
    );
        if (!
    $database->query()) {
            echo 
    $database->stderr();
            return 
    false;
        }
        return 
    true

    Pourtant la requête sql fonctionne depuis phpMyAdmin...

    Etant débutant en php, mysql ... quelquechose de gros doit m'échapper !

    Merci

  • #2
    Re : Requête sql et user_profile

    Bonjour,
    Code:
    function setAge(&$userid, &$database, $new_age)
    { 
        $database->setQuery("UPDATE #__user_profiles
        SET profile_value='$new_age'
        WHERE user_id='$userid'
        AND profile_key='akeebasubs.age'" );
        $database->execute();
        if (!$database->query()) {
            echo $database->stderr();
            return false;
        }
        return true
    }
    ?

    Commentaire


    • #3
      Re : Requête sql et user_profile

      Code:
      function setAge(&$userid, $new_age)
      { 
      
      $db = JFactory::getDbo();
      $query = $db->getQuery(true);
       
      $fields = array($db->quoteName('profile_value') . ' = ' . $new_age);
      
      $conditions = array($db->quoteName('user_id') . ' = ' . $userid, $db->quoteName('profile_key') . ' = akeebasubs.age' );
       
      $query->update($db->quoteName('#__user_profiles'))->set($fields)->where($conditions);
       
      $db->setQuery($query);
       
      $result = $db->execute();
      
      }
      Dernière édition par Sneka à 09/02/2015, 04h04

      Commentaire


      • #4
        Re : Requête sql et user_profile

        Bonjour,

        Merci pour vos réponses ! Malheureusement ces codes ne fonctionnent pas chez moi... Lorsque je charge la page rien ne se passe (page blanche). Lorsque je supprime la fonction setAge et ses appels ça fonctionne...

        Code complet :

        Code PHP:
        <?php
        //On récupère l'utilisateur
        $user JFactory::getUser();
        $userid $user->id;
        $database =& JFactory::getDBO(); 

        function 
        setAge(&$userid, &$database$new_age)

            
        $database->setQuery("UPDATE #__user_profiles
            SET profile_value='
        $new_age'
            WHERE user_id='
        $userid'
            AND profile_key='akeebasubs.age'" 
        );
            
        $database->execute();
            if (!
        $database->query()) {
                echo 
        $database->stderr();
                return 
        false;
            }
            return 
        true;
        }

        function 
        getAge(&$userid, &$database)

            
        $database->setQuery("SELECT profile_value 
            FROM #__user_profiles 
            WHERE user_id='
        $userid
            AND profile_key='akeebasubs.age'" 
        );
            if (!
        $database->query()) {
                echo 
        $database->stderr();
                return 
        false;
            }
            
        $result $database->loadResult();
            return 
        $result;
        }

        ////////////////////////////////////////////////////////////////////////

        $age getAge($userid$database);
        echo 
        "Age : " $age "<br>";

        setAge(&$userid$database"20");
        $age getAge($userid$database);
        echo 
        "Age : " $age "<br>";

        setAge(&$userid$database"10");
        $age getAge($userid$database);
        echo 
        "Age : " $age "<br>";
        ?>

        Commentaire


        • #5
          Re : Requête sql et user_profile

          La valeur que j'essaie de modifier est un champ de l'extension "akeeba susbcritions" (akeebasubs) qui a été synchronisé avec le profil utilisateur joomla par un plugin akeeba. Est-il possible que ce champ soit protégé en écriture par l'extension akeeba ?

          Commentaire

          Annonce

          Réduire
          Aucune annonce pour le moment.

          Partenaire de l'association

          Réduire

          Hébergeur Web PlanetHoster
          Travaille ...
          X