Séparer les mots par des virgule et finir par un point

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Séparer les mots par des virgule et finir par un point

Re: Séparer les mots par des virgule et finir par un point

par Ryle » 13 juin 2016, 18:35

Tu peux aussi...

Mettre une virgule au bout de ta chaine que si celle-ci n'est pas vide :
$lieux = ("SELECT DISTINCT manufacturer FROM `loisirs` WHERE id_region = '".$region_id."' LIMIT 0,5");
    $req = $bdd->query($lieux);		
    $nom_de_salle = '';
    while($salle_spectacle = $req->fetch(PDO::FETCH_ASSOC)){  
        if ($nom_de_salle != '')
            $nom_de_salle .= ', ';
        $nom_de_salle .=  '<em> '.ucfirst (strtolower($salle_spectacle['manufacturer'])).'</em>';
    }
    echo $nom_de_salle . '.';
Ou se la péter avec un implode :)
$lieux = ("SELECT DISTINCT manufacturer FROM `loisirs` WHERE id_region = '".$region_id."' LIMIT 0,5");
    $req = $bdd->query($lieux);		
    $nom_de_salle = array();
    while ($salle_spectacle = $req->fetch(PDO::FETCH_ASSOC)){  
        $nom_de_salle[] = '<em> '.ucfirst (strtolower($salle_spectacle['manufacturer'])).'</em>';
    }
    if (!empty($nom_de_salle))
       echo implode(', ', $nom_de_salle) . '.';

Re: Séparer les mots par des virgule et finir par un point

par Naroth » 11 juin 2016, 15:07

Bonjour Blinz,

Une solution possible est d'enlever le dernier caractère de ta chaîne puis de rajouter un "."
substr : http://php.net/manual/fr/function.substr.php

Code : Tout sélectionner

// On affiche les salles de spectacle selon la ville renseigné $lieux = ("SELECT DISTINCT manufacturer FROM `loisirs` WHERE id_region = '".$region_id."' LIMIT 0,5"); $req = $bdd->query($lieux); while($salle_spectacle = $req->fetch(PDO::FETCH_ASSOC)){ $nom_de_salle .= '<em> '.ucfirst (strtolower($salle_spectacle['manufacturer'])).'</em>, '; } $nom_de_salle = substr($nom_de_salle ,0,-1); //retourne la chaîne de caractère sans le dernier caractère $nom_de_salle .= "."; echo $nom_de_salle;
Une autre solution est de chercher la position de la dernière occurrence du caractère "," et de le remplacer par "."
strrpos : http://php.net/manual/en/function.strrpos.php

Code : Tout sélectionner

// On affiche les salles de spectacle selon la ville renseigné $lieux = ("SELECT DISTINCT manufacturer FROM `loisirs` WHERE id_region = '".$region_id."' LIMIT 0,5"); $req = $bdd->query($lieux); while($salle_spectacle = $req->fetch(PDO::FETCH_ASSOC)){ $nom_de_salle .= '<em> '.ucfirst (strtolower($salle_spectacle['manufacturer'])).'</em>, '; } $pos = strrpos($nom_de_salle, "," ) //Retourne la position de la dernière virgule de la chaîne $nom_de_salle[$pos] = "."; echo $nom_de_salle;
Encore une autre solution est de se servir de la taille de la chaîne de caractère (On sait que le caractère que tu souhaites enlevé est forcement le dernier.)
strlen : http://php.net/manual/fr/function.strlen.php

Code : Tout sélectionner

// On affiche les salles de spectacle selon la ville renseigné $lieux = ("SELECT DISTINCT manufacturer FROM `loisirs` WHERE id_region = '".$region_id."' LIMIT 0,5"); $req = $bdd->query($lieux); while($salle_spectacle = $req->fetch(PDO::FETCH_ASSOC)){ $nom_de_salle .= '<em> '.ucfirst (strtolower($salle_spectacle['manufacturer'])).'</em>, '; } $size= strlen($nom_de_salle ) //Retourne la taille de la chaîne de caractères $nom_de_salle[$size-1] = "."; echo $nom_de_salle;

Séparer les mots par des virgule et finir par un point

par blinz » 11 juin 2016, 11:32

saltut à tous.
Voila je fait une requete afin de récupérer des noms de salle de spectacle ca marche mais j'aimerais lors de l'echo de cette requete toutes les salles soit séparer par un point virgule et que le dernier soit suivi d'un point afin de finir la phrase.
Comment faire svp, merci à vous
// On affiche les salles de spectacle selon la ville renseigné
        $lieux = ("SELECT DISTINCT manufacturer FROM `loisirs` WHERE id_region = '".$region_id."' LIMIT 0,5");
        $req = $bdd->query($lieux);		
        while($salle_spectacle = $req->fetch(PDO::FETCH_ASSOC)){  
        $nom_de_salle .=  '<em> '.ucfirst (strtolower($salle_spectacle['manufacturer'])).'</em>, ';
        }
 echo $nom_de_salle;