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

MVC PHP Discussion :

Enlever la virgule à la fin de la boucle


Sujet :

MVC PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 49
    Par défaut Enlever la virgule à la fin de la boucle
    Bonjour,

    Dans ma boucle j'ai une virgule qui doit se répéter, par contre pas à la fin de boucle. Que faire plz ?

    voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $sql = $this->db->fetchAll("SELECT * FROM article WHERE date_creation LIKE '%$nextday%' and id_article=$result[id] ORDER by date_creation ASC");
    foreach ($sql as $result)
    {		
    		$xml.='             
                       {
                           "Titre": "'."$result[title]".'",
                           "Description": "'."$result[description]".'" 
                      ,   
                       }';
    		
    }

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    si tu veux faire du json utilise json_encode

  3. #3
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    la question est assez mal posée, en me relisant je me demande si je suis pas hs.

    celon ce qu'on comprend on peut faire ceci, en plus sécurisé et performant et sans la virgule "à la fin":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $sql = $this->db->fetchAll("SELECT title,description FROM article WHERE date_creation LIKE '%$nextday%' and id_article=".mysql_real_escape_string($result['id'], $this->$db->$link)." ORDER by date_creation ASC");
    foreach ($sql as $result)
    {		
    		$xml.='             
                       {
                           "Titre": "'.xmlspecialchar($result['title']).'",
                           "Description": "'.xmlspecialchar($result['description']).'" 
                       }';
     
    }
    voir un truc comme ceci, plus audacieux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $sql = $this->db->fetchAll("SELECT title,description FROM article WHERE date_creation LIKE '%$nextday%' and id_article=".mysql_real_escape_string($result['id'], $this->$db->$link)." ORDER by date_creation ASC");
     
    function $modify(&$item, $key, $text1, $text2 )
    {
         $item='{'.
                   $text1.':'.xmlspecialchar($item['title']).','.
                   $text2.':'.xmlspecialchar($item['description']).
                  ',}';// c'est bien parce qu'elle était dans le code cette virgule...
    } 
     
    array_walk($sql, $modify, 'Titre', 'Description');
    $final_string = implode($sql,',');
    bon ça j'ai pas testé mais ça m'a l'air pas mal.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2010
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 80
    Par défaut
    Je suis d'accord avec la réponse de stealth35.

    Néanmoins, si vous tenez à cette boucle dans ce sens, essayez de vous inspirer de ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $x = '';
    $s = false;
      for($i=0; $i < 10; $i++)
        $x .= ((!$s && $s=',')?'':$s).'test';
     
      echo $x;
    Le principe ici est de mettre le séparateur en _début_ de chaine.

    A la première itération, le séparateur est vide et automatiquement renseigné dans la condition de l'opérateur ternaire. A la seconde itératio, le séparateur vaudra ',' et de fait sera concaténé dans la chaine.

  5. #5
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Vous avez jamais entendu parler d'implode ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $pieces = array('a', 'b', 'c');
    echo 'mavar=' . implode(',',$pieces);
    Pour le JSon, utilisez JSon encode. Si vous n'avez pas la version de PHP adéquate, il y a une implémentation sur php.net.

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2010
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 80
    Par défaut
    Citation Envoyé par Benjamin Delespierre Voir le message
    Vous avez jamais entendu parler d'implode ?
    dois-je imaginer que cette remarque m'était adressée ? Si tel est le cas, oui il me semble avoir déjà croisé cette fonction. Je crois même l'avoir déjà utilisée.

    Une relecture de mon post, devrait vous permettre de voir que je mettais une condition à la solution que je propose à l'OP, à savoir : "Néanmoins, si vous tenez à cette boucle dans ce sens, essayez de vous inspirer de ça...", ce qui ne me semble pas laisser d'ambiguité quant à la qualité de la solution.

    Cordialement.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 49
    Par défaut
    merci les gars, toutes vos contributions m'ont aidé
    j'ai pu tester toutes les réponses ci-dessus et cela m'a vachement aidé merci encore une fois et bon week-end

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

Discussions similaires

  1. fonction enlever les zero en fin de nombre decimal
    Par calitom dans le forum Langage
    Réponses: 2
    Dernier message: 16/05/2007, 17h01
  2. Enlevé CR LF en fin de ligne
    Par AODRENN dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 03/05/2007, 22h48
  3. enlever la virgule dans une zone numérique
    Par davidzerbib dans le forum Access
    Réponses: 2
    Dernier message: 06/03/2007, 12h05
  4. Regexp : impossible d'enlever un caractere de fin à une chaine
    Par dukesgf dans le forum Collection et Stream
    Réponses: 8
    Dernier message: 18/08/2006, 16h19
  5. liste substr retirer virgule de fin
    Par jarod71 dans le forum Langage
    Réponses: 1
    Dernier message: 20/06/2006, 11h04

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