Partage
  • Partager sur Facebook
  • Partager sur Twitter

requete SQL

Supprimer une partie d'un champ

Sujet résolu
    24 juin 2006 à 16:10:07

    Bonjour,

    J'ai un champ destinataire = /Marcel/Jacques/Martin /

    Y a t'il une requete pour supprimer une partie d'un champ c'est à dire si une variable correspond à une parti d'un champ.

    Le problème c'est que je souhaite supprimer le pseudo correspondant.
    Exemple: Si un des destinataire ne veus plus voir le message je souhaite supprimer son nom dans le champ
    Par exemple Jacques ne veut plus ce message, je souhaite que le champ destinataire deviennent /Marcel/Martin /

    Je sais pas trop comment procédé.

    J'ai fais ceci:
    mysql_query("UPDATE mp SET destinataire LIKE '%/".$pseudo."/%'  WHERE id_message=" . $_POST['id_message']);


    Mais sa marche pas c'est le contraire qui se passe le champ destinataire = /jacques/

    Si quelqu'un à une idée ^^
    • Partager sur Facebook
    • Partager sur Twitter
      24 juin 2006 à 16:15:50

      Ba je sais pas trop en sql, mais sinon, tu fais un explode, tu cherches le numéro de tableau ou il y a ce pseudo, et ensuite implode, tu rentres ca dans la BDD.
      ca devrait marcher...
      • Partager sur Facebook
      • Partager sur Twitter
        24 juin 2006 à 16:35:20

        je fais un explode du champ
        $destinataire = $array_chaine = explode('/', $champ_destinaire);
        OK
        ce qui me donne
        Array
        (
        [0] => Marcel
        [1] => Jacques
        [2] => Martin
        )

        je cherche le numéro du tableau correspondant
        ici c'est 1

        foreach($destinataire as $cle => $element)
        {
         if($element== $pseudo)
        {
           $position = array_search($pseudo, $destinataire);
        //Il faudrait supprimer la position de l'array
        //Puis implode
        }
        }


        Comment supprimer la position dans l'array?
        o_O


        • Partager sur Facebook
        • Partager sur Twitter
          24 juin 2006 à 16:43:28

          avec unset() :)

          Mais utilise soit foreach, soit array_search() ;)

          $destinataires = explode('/', $champ_destinaire);

          foreach ($destinataires as $cle=>$element) {
              if ($element == $pseudo) {
                  unset($destinataires[$cle]);
                  break 1; // pour ne pas continuer inutilement la boucle
              }
          }

          $new_destinataires = implode('/', $destinataires);

          ou bien
          $destinataires = explode('/', $champ_destinaire);

          $offset = array_search($pseudo, $destinataires);
          if ($offset !== false) { // si l'entrée existe
              unset($destinataires[$offset]);
          }

          $new_destinataires = implode('/', $destinataires);

          :)
          • Partager sur Facebook
          • Partager sur Twitter
            24 juin 2006 à 17:10:24

            Merci
            La deuxieme solutions fonctionne bien

            Encore merci, grace à toi j'ai avancé de grand pas.. ;)

            • Partager sur Facebook
            • Partager sur Twitter

            requete SQL

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown