IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Manipuler les chaînes de caractère. [PHP 5.6]


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Femme Profil pro
    Montpellier
    Inscrit en
    Janvier 2016
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Montpellier

    Informations forums :
    Inscription : Janvier 2016
    Messages : 15
    Points : 20
    Points
    20
    Par défaut Manipuler les chaînes de caractère.
    Bien le bonjour


    Suite à un petit soucis je viens poster mon petit problème sur le forum .
    Voici une petite partie de mon code.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    function C_get_Products_BDD($Products)	
    {
     
      $Products_Nb = count($Products);
      $resultat = "(";
     
     
      foreach ($Products as $Product_Item)
            {
              $resultat = $resultat . ", " . $Product_Item;
            }
            $resultat = $resultat . $Product_Item = ")";
     
     
    }
    Lorsque j' affiche se que contient ma Variable $resultat celle çi m' affiche "(, 3, 2, 1)".
    J' aimerais donc trouver un moyen de pouvoir retirer le second caractére qui correspond à ",".
    J' ai testé plusieurs moyen
    (strlen et trim), mais aucun succés donc je me retroune auprés de vous .

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function C_get_Products_BDD($Products)	
    {
        return '(' . implode(',', $Products) . ')'; 
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Femme Profil pro
    Montpellier
    Inscrit en
    Janvier 2016
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Montpellier

    Informations forums :
    Inscription : Janvier 2016
    Messages : 15
    Points : 20
    Points
    20
    Par défaut
    Merci pour ta réponse rapide, je n'ai pas réellement compris le fonctionnement de execution de cette fontion dans mon code(même avec la doc ) mais en tout cas ça a résolu mon problème il semblerait.
    Si jamais ta une petite explication je suis preneur.

    Bon aprés de nombreux test ça ne fonctionne pas dommage pour moi j' ai du louper un truc. je vais tenter d' expliquer un peu tout.


    ma variable $Products renvois les données array(3) { [0]=> string(1) "3" [1]=> string(1) "2" [2]=> string(1) "1" } de base.

    Ma premiére fonction me sert à récuperer mes elements de ma variable $Products, et de les envoyer dans mon $resultat via une rêquete SQL qui se trouve dans ma class Model pour récuperer des elements precis de ma BDD

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    	function C_get_Products_BDD($Products)
    { 
          $Products_Nb = count($Products);
          $resultat = "(";
          foreach ($Products as $Product_Item)
            {
               $resultat = $resultat . ", " . $Product_Item;
            }
            $resultat = $resultat . $Product_Item = ")";
            $Model = New Products_Model;
    	$Products_ID = $Model->M_get_Products_BDD($resultat);
            }
    Voiçi ma seconde Function

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
      function M_get_Products_BDD($resultat)
          {
            try
            {
            $req =  BDD::getConnect()->prepare("SELECT * FROM `_products` WHERE `ProductID` IN " .$resultat);
     
            $req->execute();
            $Product_ID = $res->fetchAll();
            return $Product_ID;
            }
            catch (Exception $e)
              {
                die($e->getMessage());
              }
          }
    le soucie lorsque j' envois ma $Resultats je 'n arrive pas à envoyer une chaine de caractére correct elle représente actuuellement = "(, 3, 2, 1)".

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu nous remets le même code qu'au début et tout nous dis que ça ne fonctionne toujours pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function C_get_Products_BDD($Products)
    { 
            $resultat = '(' . implode(',', $Products) . ')'
            $Model = New Products_Model;
    	$Products_ID = $Model->M_get_Products_BDD($resultat);
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre à l'essai
    Femme Profil pro
    Montpellier
    Inscrit en
    Janvier 2016
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Montpellier

    Informations forums :
    Inscription : Janvier 2016
    Messages : 15
    Points : 20
    Points
    20
    Par défaut
    Je t' avourais que j' ai passé plus de 10 heures à tenter de réaliser une partie de mon programme hier, et j' etais totalement épuisé et trés enervé :'(, et par miracle se matin devant mon petit thé et mon journal j' ai eu la révélation de comprendre mon erreur, utilisation de celle çi dans mon code et de ta fonction php, et la par miracle effectivement j' ai les bonnes informations qui sont envoyé dans ma requête sql et je devrais pouvoir faire fonctionner tout ça à present je te remercie grandement pour ton aide et ton eclaircisement

  6. #6
    Membre à l'essai
    Femme Profil pro
    Montpellier
    Inscrit en
    Janvier 2016
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Montpellier

    Informations forums :
    Inscription : Janvier 2016
    Messages : 15
    Points : 20
    Points
    20
    Par défaut
    Petite Info .

    J' avais un problème avec ta function implode(), celle çi me renvoyait une chaîne de caractère, et ma requête SQL planter du coup, vue qu'elle s'attendait à recevoir un entier aprés le IN et non pas une chaîne de caractére.

    Pour remédier à ce problème j' ai dans un premier temps utilisé la function SUBSTR() pour avoir la bonne chaîne de caractère et retirer la ,.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $resultat = substr($resultat,0,1) .substr($resultat,2);
    et j' ai ensuite fait un Foreach de mon résultat pour récupérer les $key.

    En tout cas merci pour ton aide, je connaissais pas cette function implode() et elle me servira pour plus tard.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1/ Le code qui t'a été fourni fait en une ligne ce que le tien fait en10.
    Et fourni la chaine de caractères nécessaire a ta requête.

    2/ IN n'attend pas un entier ! Où as-tu pêché ça ?
    La syntaxe SQL est : IN (xx,yy,zz)

    3/ la seule erreur est qu'il manque un ";" a la ligne 3 du code de sabotage !

  8. #8
    Membre à l'essai
    Femme Profil pro
    Montpellier
    Inscrit en
    Janvier 2016
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Montpellier

    Informations forums :
    Inscription : Janvier 2016
    Messages : 15
    Points : 20
    Points
    20
    Par défaut
    Oui effectivement le code fourni ne tient que sur une ligne au lieu d'une dizaine comme je l' avais ecrit la première fois, je suis resté bloqué sur le faite que il m'a été impossible de faire reconnaitre cette chaine de caractère dans ma requête SQL aprés le IN. On m'a conseillé de le faire passer en Entier si je voulais que ça marche.

  9. #9
    Invité
    Invité(e)
    Par défaut
    C'est exactement la MEME chaine de caractères que celle fournie par TON code.

    On revoit ça demain, OK ?

    "La nuit porte conseil"

  10. #10
    Membre à l'essai
    Femme Profil pro
    Montpellier
    Inscrit en
    Janvier 2016
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Montpellier

    Informations forums :
    Inscription : Janvier 2016
    Messages : 15
    Points : 20
    Points
    20
    Par défaut
    Je pense qu' on sait mal compris .
    Je suis d' accord avec toi lorsque tu dis que c'est exactement la même chaine de caractères que celle fournie par mon code, mais celle fournie dans mon code à aussi le même probléme lorsque je la mettais aprés un IN dans ma Requete SQL.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. MFC + Manipuler les chaînes de caractères
    Par mqsi dans le forum MFC
    Réponses: 2
    Dernier message: 15/11/2006, 17h24
  2. Manipulation de chaînes de caractères
    Par sbeprod dans le forum Access
    Réponses: 15
    Dernier message: 28/07/2006, 15h33
  3. Réponses: 3
    Dernier message: 07/12/2005, 11h09
  4. Etat - Manipulation de chaînes de caractères
    Par migaleb dans le forum Access
    Réponses: 3
    Dernier message: 07/12/2005, 10h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo