Requete SQL avec JUMI

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

  • [RÉGLÉ] Requete SQL avec JUMI

    Bonjour ,

    je voudrais avec jumi envoyer une requete sql qui en premier temps récupère les données d'une requetes et après me permettre de faire un update

    je m'explique

    quant la personne est connecté :

    on récupére (sous CB) son ID

    puis avec cette ID on fait un update dans la table

    voici ce que j'ai fait ca marche pas ! bon je débute mais là j'ai je crois tout merdé

    merci bien


    <?php
    $db=&JFactory::getDBO();
    $sql = 'SELECT cb_id FROM #__comprofilerWHERE id='.$MonId.';';
    $db->setQuery($query);
    $results = $db->loadObjectList();
    foreach($results as $result)
    $query="UPDATE #__comprofiler SET cb_minute=cb_minute+15 WHERE id ='.$MonId.'";
    ?>
    Dernière édition par laurentlev à 27/12/2012, 18h41

  • #2
    Re : Requete SQL avec JUMI

    un espace entre #__comprofiler et WHERE

    et

    $db->query($sql);

    et

    ...WHERE id = ' . $result->MonId;

    $db->query($query);

    ce qui fait

    <?php
    $db=&JFactory::getDBO();
    $sql = 'SELECT cb_id FROM #__comprofiler WHERE id='.$MonId.';';
    $db->query($sql);
    $results = $db->loadObjectList();
    foreach($results as $result)
    {
    $query="UPDATE #__comprofiler SET cb_minute=cb_minute+15 WHERE id =' . $result->MonId;
    $db->query($query);
    }
    ?>
    Dernière édition par webcrea à 27/12/2012, 14h46
    Christophe
    http://www.webcrea.fr

    Commentaire


    • #3
      Re : Requete SQL avec JUMI

      merci beaucoup

      Commentaire


      • #4
        Re : Requete SQL avec JUMI

        Bon celà ne fonctionne pas !
        il y a pas quelques choses de pas logique ? comment il fait pour récupérer mon ID ?
        parce que celà doit récupérer le id de l'user connecté et l'envoyé dans le l'update ... je trouve pas merci

        Commentaire


        • #5
          Re : Requete SQL avec JUMI

          On ne nous dit pas tout

          $user = & JFactory::getUser();

          ainsi tu as ton utilisateur et tu peux accéder à son id par $user->id

          sinon je t'ai dit une connerie $db->setQuery($sql); et non $db->query($sql); le loadObjectList fait la requête et renvoie la liste d'objet
          Christophe
          http://www.webcrea.fr

          Commentaire


          • #6
            Re : Requete SQL avec JUMI

            désolé encore mais le
            $user = & JFactory::getUser();

            je le met ou ?

            merci

            Commentaire


            • #7
              Re : Requete SQL avec JUMI

              bein avant pour y affecter ton $MonId

              il n'est plus nécessaire pour le coup de mettre $result->MonId mais $MonId
              j'étais parti du principe que MonId était un champ de la table #__comprofiler, ce qui n'est pas le cas apparemment
              Christophe
              http://www.webcrea.fr

              Commentaire


              • #8
                Re : Requete SQL avec JUMI

                donc au final ca donne ca ? merci

                <?php
                $db=&JFactory::getDBO();
                $user = & JFactory::getUser();
                $sql = 'SELECT id FROM #__comprofiler WHERE id='.$MonId.';';
                $db->setQuery($sql);
                $results = $db->loadObjectList();
                foreach($results as $result)
                $query="UPDATE #__comprofiler SET cb_minute=cb_minute+15 WHERE id ='.$MonId.'";
                ?>

                Commentaire


                • #9
                  Re : Requete SQL avec JUMI

                  Bonjour,

                  Il y a beaucoup de code redondant et totalement inutile là dedans. Un simple:
                  Code PHP:
                  <?php
                  $db 
                  Jfactory::getDBO();
                  $user JFactory::getUser() ;
                  $MonId $user->id ;
                  $q "UPDATE #__comprofiler SET cb_minute=cb_minute+15 WHERE id='$MonId'" ;
                  $db->setQuery$q ) ;
                  $db->query() ;
                  ?>
                  est suffisant.
                  En Joomla! 2.5 et PHP 5, ne pas utiliser un retour par référence & sur des objets, sauf si on aime les avertissements Strict Standards.
                  JFactory::getUser renvoie le user, et donc son id.
                  Il est inutile de se compliquer la vie avec un SELECT et un foreach (qui de plus ne servent absolument à rien dans ce cas, vu que l'ID est identique entre Joomla! et CB et unique).
                  On peut donc faire directement l'UPDATE des valeurs de la table comprofiler.
                  Dernière édition par jisse03 à 27/12/2012, 18h17
                  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


                  • #10
                    Re : Requete SQL avec JUMI

                    quel talent
                    Christophe
                    http://www.webcrea.fr

                    Commentaire


                    • #11
                      Re : Requete SQL avec JUMI

                      super ca marche direct !
                      alors pour info que je sois pas complétement idiot et pas seulement faire du copier coller

                      le fait d'ajouter cette ligne

                      $MonId = $user->id ;

                      récupére automatiquement id dans joomla ???

                      et pourquoi ?
                      $db->setQuery( $q ) ;

                      pas compris cette ligne ?

                      merci bien

                      Commentaire


                      • #12
                        Re : Requete SQL avec JUMI

                        Envoyé par laurentlev Voir le message
                        super ca marche direct !
                        Pour garder le bon adage Linux, Keep it simple, moins on a de code nécessaire pour une action, mieux on se porte

                        $MonId = $user->id ;
                        $user est un objet de classe User. et id est une variable d'instance, en accès public, de cette classe. On récupère donc l'ID avec cette simple syntaxe
                        On a toujours un id si l'utilisateur est connecté, et 0 si c'est un visiteur.

                        $db->setQuery( $q ) ;
                        $q est la chaîne de caractères définissant la requête.
                        setQuery affecte cette requête à la classe JDatabase en charge du traitement des données SQL.
                        Et ensuite, la requête étant bien positionnée, on l'exécute avec un $db->query().
                        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


                        • #13
                          Re : Requete SQL avec JUMI

                          super merci pour tout !! :-)

                          Commentaire


                          • #14
                            Re : Requete SQL avec JUMI

                            zut j'ai une autre question et si je veux faire deux requete ? ou trois de type update , insert etc

                            car j'ai essayé celà

                            <?php
                            $db = Jfactory::getDBO();
                            $user = JFactory::getUser() ;
                            $MonId = $user->id ;
                            $q = "UPDATE #__comprofiler SET cb_minute=cb_minute+15 WHERE id='$MonId'" ;
                            $db->setQuery( $q ) ;
                            $r = "UPDATE #__comprofiler SET cb_nbconsult =cb_nbconsult +1 WHERE id='$MonId'" ;
                            $db->setQuery( $r ) ;
                            $db->query() ;
                            ?>

                            ca ne prend en compte que le deuxième update et pas le premier ducout ?

                            merci bien

                            Commentaire


                            • #15
                              Re : Requete SQL avec JUMI

                              tu peux les réunir dans le même update

                              UPDATE #__comprofiler SET cb_minute=(cb_minute+15), cb_nbconsult =(cb_nbconsult +1) WHERE id='$MonId'

                              Christophe
                              http://www.webcrea.fr

                              Commentaire

                              Annonce

                              Réduire
                              Aucune annonce pour le moment.

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X