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 :

Ajouter caractere dans un Foreach


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Par défaut Ajouter caractere dans un Foreach
    Salut à tous,
    j'ai un petit bout de code que exporte un bdd dans un fichier csv.
    Jusqu’à la pas de blem.
    par contre j'aurai besoin d'ajouter un ";" a la fain de chaque email dans le fichier exporter.

    Comment je peux inclure cela dans ma boucle Foreach

    voila un bout de 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    $requete = "SELECT   mail,nom,adresse,cp,ville,tph  FROM user WHERE lvl=1 ORDER BY nom ASC";
    $sql = mysql_query($requete);
    if(mysql_num_rows($sql) > 0)
    {
        $i = 0;
     
        while($Row = mysql_fetch_assoc($sql))
        {
            $i++;
     
            if($i == 1)
            {
    			$outputCsv = "Mail;Nom;Adresse;Code_Postal;Ville;Telephone";
    			$outputCsv .= "\n";
            }
     
            foreach($Row as $clef => $valeur)
     
     
                $outputCsv .= trim(utf8_decode($valeur=str_replace(array(''',"\n","<br />"),array('\''," "," "),$valeur))).';';
     
            // Suppression du ; qui traine à la fin
            $outputCsv = rtrim($outputCsv, ';');
     
            // Saut de ligne
            $outputCsv .= "\n";
     
        }
    Merci d'avance de votre aide

  2. #2
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2013
    Messages : 3
    Par défaut
    Bonjour,

    En ajoutant un bloc "if" ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach($Row as $clef => $valeur) {
         $outputCsv .= trim(utf8_decode($valeur=str_replace(array(''',"\n","<br />"),array('\''," "," "),$valeur))).';';
    	 if('mail' == $clef) $outputCsv .= ';';
    }
    Cdt

  3. #3
    Membre éclairé Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Par défaut
    oui,
    pas bête le if
    par contre cela ne fonction pas.
    cela n'ajoute pas le ";" apres le mail dans le csv

  4. #4
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 332
    Par défaut
    ajouter avant la boucle (que si valeur)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $Row['mail']= empty($Row['mail']) ? '' : $Row['mail'].';';
    foreach($Row as $clef => $valeur) ...

  5. #5
    Membre éclairé Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Par défaut
    Citation Envoyé par papajoker Voir le message
    ajouter avant la boucle (que si valeur)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $Row['mail']= empty($Row['mail']) ? '' : $Row['mail'].';';
    foreach($Row as $clef => $valeur) ...
    C'est bon ça.....
    sauf qui faut que j'échappe ce ";" car lors de l'export ca merde.il le prends pour un délimiteur
    comment on échappe un ";"
    j'ai essayé '\;' ça le fait pas

  6. #6
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 332
    Par défaut
    non pas d'échap
    mais tu peux utiliser la tabulation "\t" entre tes champs (a la place du ; ) pour ton csv ?

  7. #7
    Membre éclairé Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Par défaut
    je ne connais pas le \t
    cela s'utilise comment ? ???

    dans mon code par exemple

    j'ai essayé ca mais cela ne fonctionne pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                $outputCsv .= trim(utf8_decode($valeur=str_replace(array(''',"\n","<br />"),array('\''," "," "),$valeur)))."\t";
     
            // Suppression du ; qui traine à la fin
            $outputCsv = rtrim($outputCsv, "\t");

  8. #8
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 332
    Par défaut
    "\t" est le caractère tabulation
    je te propose de changer ton séparateur ; par une tabulation

    marche pas quoi ? ca devrais générer un csv valide
    ps: penser a modifier aussi l'entete

Discussions similaires

  1. Réponses: 4
    Dernier message: 21/10/2007, 21h55
  2. Ajout d'une chaine de caracteres dans la clause where
    Par mambe74 dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 19/07/2007, 17h43
  3. shell ajout chaine de caractere dans un fichier
    Par cubepiege dans le forum Linux
    Réponses: 5
    Dernier message: 09/07/2007, 11h22
  4. VB.net Ajout de caractere dans une textbox
    Par TIREUR dans le forum Windows Forms
    Réponses: 1
    Dernier message: 14/06/2006, 21h16
  5. [Unix KSH] Ajout caractère fin de ligne dans fichier
    Par -COil- dans le forum Autres langages
    Réponses: 1
    Dernier message: 04/05/2006, 17h06

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