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

PHP & Base de données Discussion :

Placer une virgule entre chaque chiffre [SQL-Server]


Sujet :

PHP & Base de données

  1. #1
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut Placer une virgule entre chaque chiffre
    Bonjour,

    Savez-vous comment placer une virgule entre chaque chiffre d'un tableau :
    $tab vient d'un foreach.

    Merci de votre aide.

  2. #2
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonsoir,

    Je pense que tu peux faire çà facilement comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $str = '123';
    $newstr = '';
    foreach($str as $char){
       $newstr .= $char.',';
    }
    $newstr = substr($newstr, -1);
    echo $newstr;
    Je vais voir si il y a un moyen plus classe

    par contre, ce que tu montres, $tab, n'est pas un tableau mais une chaine de caractères.

    edit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    $str = '123';
    $newstr = substr(implode(',', preg_split('//', $str)), 1, -1);
     
    echo $newstr;

  3. #3
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut
    Merci pour ta réponse

    La 1er solution fonctionne mais il reste une virgule à la fin (1,2,3,).
    La 2eme solution ne met aucune virgule (123).

    En fait ton code est bon, c'est moi qui me suis mal expliqué J'ai voulu gagner du temps mais c'est perdu.

    Je m'explique:

    Je récupère les valeurs d'une liste à choix multiple dans la variable $choix que je dois convertir en mettant une virgule entre chaque chiffre.

    Le code test :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <form name="form1" id="form1" method="post" action="<?php $PHP_SELF; ?>">
    	<table>
    		<tr>
    			<td>
    				<select id="selection" name="selection[]" size="3" multiple>
    					<option value="1">site1</option>
    					<option value="2">site2</option>
    					<option value="3">site3</option>
    				</select>
    			</td>
    			<td>
    						<input type="submit" id="valider" name="valider" value="valider">
    				<!--<input type="button" name="valider" value="valider" onclick="select_all()">-->
    			</td>
    		</tr>
    	</table>
    </form>
     
    <?php
    if (isset($_POST['valider']))
    $selection = $_POST['selection'];
    {
    	foreach($selection as $choix)
    			{
    				$str = $choix;
    				$newstr = substr(implode(',', preg_split('//', $str)), 1, -1);
    				echo $newstr;
    				// $x .= $choix.',';
    				// $x = substr($x, -2);
    				//echo $x;
    			}
    }
    ?>

  4. #4
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonjour,

    J'ai testé les deux solutions qui fonctionnent chez moi, tu dois faire une erreur lorsque tu les utilisent.

    Si il reste une virgule à la fin, tu peux la supprimer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $var = substr($var, -1);

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

Discussions similaires

  1. Insérer une pause entre chaque action !
    Par cincap dans le forum Débuter
    Réponses: 10
    Dernier message: 31/08/2013, 08h32
  2. Réponses: 7
    Dernier message: 19/11/2012, 21h36
  3. [SQL-Server] Ajouter une virgule entre les valeurs récupèrées de cases à cocher
    Par arthuro45 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 27/04/2010, 19h48
  4. [CSS] [FAQ] Comment mettre une bordure entre chaque lignes d'un tableau
    Par tzilliox dans le forum Contribuez
    Réponses: 0
    Dernier message: 12/10/2009, 11h37
  5. Faire une division entre deux chiffres?
    Par shun dans le forum Langage SQL
    Réponses: 9
    Dernier message: 09/09/2005, 16h37

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