Problème de syntaxe LIKE

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

  • Problème de syntaxe LIKE

    Problème de syntaxe LIKE


    Bonjour,
    Je souhaite supprimer un enregistrement mais j'ai un problème de code.
    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    // delete all custom keys for user 1001.
    $conditions = array(
    $db->quoteName('form_id') . ' = 1',
    $db->quoteName('params') . ' LIKE ' . $db->quote($identifiantacherhcer.'%')
    );
    $query->delete($db->quoteName('table1'));
    $query->where($conditions);
    $db->setQuery($query);
    $db->execute();

    La deuxième condition ne fonctionne pas.
    En fait, je voudrai supprimer les enregistrements dont :
    form_id=1 (cela fonctionne)
    et
    les enregistrements pour lesquels params contient la valeur de la variable $identifiantacherhcer

    Cette deuxième condition ne fonctionne pas.
    Quelqu'un peut-il m'aider ?
    Merci

  • #2
    Bonsoir

    As-tu vérifié que ta variable $identifiantacherhcer ne soit pas vide ? Et as-tu vérifié que cette variable existe parce que tu as une faute d'orthographe dans ton nom (inversion c et h à la fin).

    Un echo $identifiantacherhcer te permettrait d'en voir le contenu.

    Tente aussi un echo du query final pour en lire l'instruction SQL (de type DELETE FROM ...). Un vieux exemple, probablement à mettre à jour pour J3: https://joomla.stackexchange.com/a/13867
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
    Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

    Commentaire


    • #3
      Le nom de la variable est correct :
      Voici la valeur de $identifiantacherhcer :
      {"username":"Lorys"

      L'affichage de la requet
      DELETE FROM `table1` WHERE `form_id` = 1 AND `params` LIKE '{"username":"Lorys"%'

      ne fonctionne pas alors que {"username":"Lorys"
      est une chaine bien présente dans params ?

      Une idée ?

      Commentaire


      • #4
        Bonjour,

        Faut-il que les deux critères soient respectés ?
        Ensuite, "username":"Lorys" est-il en tout début de la chaîne 'params' ou au milieu de celle-ci ?
        "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


        • #5
          bonjour,
          je testerais plutot ceci:

          '%"username":"Lorys"%'

          ou ceci

          "username:"'%"Lorys"%'

          regardes ici: https://sql.sh/cours/where/like
          tu as des exemples de syntaxe

          Et dernier point:
          peux tu montrer un enregistrement de la base de donnée?
          Je me demande si ce qui doit être recherché n'est pas : like %lorys% .Je n ais jamais vu d'enregistrement regroupant le nom et la valeur du champ.

          Commentaire


          • #6
            Ma variable $identifiantacherhcer ne chargait le contenu d'un fichier.
            problème résolu
            Merci beaucoup pour votre aide

            Commentaire


            • #7
              Si le problème est réglé merci de le signaler en suivant les conseils de l'encadré intitulé "C'est [Réglé] et on n'en parle plus ?" en bas de page.
              Lorsque l'on se cogne la tête contre un pot et que cela sonne creux, ça n'est pas forcément le pot qui est vide.
              Confucius

              Commentaire


              • #8
                Bonjour

                Envoyé par ratatofsky Voir le message
                Ma variable $identifiantacherhcer ne chargait le contenu d'un fichier.
                problème résolu
                Merci beaucoup pour votre aide
                Pas compris du coup... Tu disais que ta variable contenait une chaîne de caractères qui était

                [cite]{"username":"Lorys"[/cite]

                Ton SQL semblait le montrer également. Je ne comprends pas pourquoi tu parles du coup d'un fichier.

                (super que ce soit résolu)

                Christophe (cavo789)
                Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
                Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

                Commentaire

                Annonce

                Réduire
                Aucune annonce pour le moment.

                Partenaire de l'association

                Réduire

                Hébergeur Web PlanetHoster
                Travaille ...
                X