Encore un souci de requête !

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

  • [RÉGLÉ] Encore un souci de requête !

    Bonjour,

    J'ai cette requête qui s'exécute sans erreur, mais qui ne change pas la valeur du champ "published" de la table, et je ne comprends pas pourquoi :
    Code:
            try {
                $db = Factory::getDbo();
                $query = $db->getQuery(true)
                ->update($db->quoteName('#__contact_details'))
                ->set($db->quoteName('published') . ' = ' . $published)
                ->where($db->quoteName('user_id') . ' = ' . $idUser);
                $db->setQuery($query)->execute;
                Factory::getApplication()->enqueueMessage(Text::_('Contact modiflé' ));
            } catch(Exception $e) {
                Factory::getApplication()->enqueueMessage(Text::_('Contact non modifié' ));
            }
    Factory::getApplication()->enqueueMessage(Text::_('COM_FRONTENDUSERMANAGER_USER_UPDATED') . " - " .$published ." - " . $idUser);
    ​
    La valeur de $published est correcte (elle est de 0 ou 1), mais pas changée dans la ligne, l'id de l'utilisateur aussi, le message "Contact modifié" le confirme. Ici, l'ordre est donné de désactiver, d'où le "0" :
    Cliquez sur l'image pour l'afficher en taille normale  Nom : image.png  Affichages : 31  Taille : 4,6 Ko  ID : 2059394
    Le champ published reste à 1.
    ET lorsque je donne l'ordre de publication, la valeur de $published est bien passée à 1
    Cliquez sur l'image pour l'afficher en taille normale  Nom : image.png  Affichages : 16  Taille : 4,4 Ko  ID : 2059395

    Qui pourrait m'expliquer quelle erreur j'ai faite ?
    Merci d'avance !​
    Dernière édition par RobertG à 23/01/2024, 17h55
    "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

  • #2
    Je ne comprends toujours pas !
    Faute de pouvoir afficher la requête avec un echo, un print_r ou un dump_var, j'ai ajouté $query au message
    Cliquez sur l'image pour l'afficher en taille normale  Nom : image.png  Affichages : 1  Taille : 11,1 Ko  ID : 2059406
    La requête est correcte, elle fonctionne dans phpMyAdmin, ne provoque pas d'erreur dans le code puisqu'on a ce message, mais le champ reste désespérément à sa valeur d'origine : 1 !

    PS : j'ai changé la requête. Récupération de l'id de la ligne de "#__contact_details" correspondant à "user_id", puis application de la requête de modification du champ "published" sur la ligne en question, et toujours pas d'effet alors qu'il n'y a pas d'erreur.
    Cliquez sur l'image pour l'afficher en taille normale

Nom : image.png 
Affichages : 30 
Taille : 21,0 Ko 
ID : 2059409
    Dernière édition par RobertG à 23/01/2024, 10h39
    "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


    • #3
      Pas mieux !
      Je vérifie après avoir exécuté la requête de changement du statut, et le champ lu dans la ligne concernée apparaît toujours à 1, la requête bien que ne renvoyant pas d'erreur est donc inefficace
      ​ ​Cliquez sur l'image pour l'afficher en taille normale

Nom : image.png 
Affichages : 32 
Taille : 22,8 Ko 
ID : 2059418
      ET bien sûr dans la gestion des contacts comme dans la base, la fiche reste activée !!!
      Dernière édition par RobertG à 23/01/2024, 12h25
      "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


      • #4
        Trouvé ! Je savais qu'il devait y avoir une erreur bête !
        D'abord comme on le voit plus haut, j'utilisais execute sans les parenthèses. Ensuite, lors de tests et en comparant avec des fichiers standard, j'avais supprimé cette instruction pour ne conserver que setQuery comme vu dans certains fichiers du core.
        Je suis revenu à "execute();" et enfin, ça fonctionne !
        "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

        Annonce

        Réduire
        Aucune annonce pour le moment.

        Partenaire de l'association

        Réduire

        Hébergeur Web PlanetHoster
        Travaille ...
        X