La Communauté Webmaster  forum rss


  Forum-webmaster
  Technique - programmation
  PHP / MySQL
(Modérateurs: Shain, Jey, erwinol, Lilian, lauryv, ToToMaStEr)
  Problème conversion champ en longueur fixe
« Précédent Suivant »
Pages: [1] Descendre
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
  Auteur  Sujet: Problème conversion champ en longueur fixe  (Lu 1105 fois)
Problème conversion champ en longueur fixe
« sur: le 09-03-2012 a 16:39:31 »
roseline
Membre récent
*

Hors-Ligne

Messages: 2





Voir le Profil
Répondre avec citation

Bonjour,

Cela fait quelques jours que je cherche des infos, mais là je sèche :-(
J'espère que quelqu'un aura une solution ;-)

Mon problème est le suivant:
Je dois exporter des données dans un fichier txt = j'y arrive.
Mais je dois "manipuler" un champ comme suit
- dans la table, j'ai un champ qui comprend une valeur, p.ex. 100.00 ou 20.50
- dans le fichier txt, il doit apparaître 1) sans le point 2) sur une longueur fixe de 9 caractères; ce qui devrait me donner
000010000
ou
000002050

Je pense que je dois utiliser des string et des array, mais je n'y arrive pas :-(

Voici ci-dessous mon code qui me génère bien le fichier txt mais avec 20.50 au lieu de 000002050...

Merci d'avance pour votre aide!

<?php
$UserID = $_GET['UserID'];
?>
<?php
include "config.inc.php";

// la variable qui va contenir les données CSV
$outputCsv = '';

///////////////////////// VALEURS Society ET SiteCode A CHANGER ////////////////////////////////////
$requete = "SELECT CheckID, CheckValor, StatutID, CustomerNumber, Society, SiteCode, SiteCountry FROM base WHERE StatutID = 'U' AND Society = '1' AND SiteCode = '000' AND SiteCountry = 'CH'";
$sql = mysql_query($requete);
if(mysql_num_rows($sql) > 0)
{
    $i = 0;

    while($Row = mysql_fetch_assoc($sql))
    {
        $i++;

        // On parcours $Row et on ajout chaque valeur à cette ligne
        foreach($Row as $clef => $valeur)
            $outputCsv .= trim($valeur).'';

        // Suppression du ; qui traine à la fin
        $outputCsv = rtrim($outputCsv, '');

        // Saut de ligne
        $outputCsv .= "\n";

    }

   }
      else
           exit('');

/// DONNEES
$Date= date("Y-m-j H:i:s");

/// Ecriture du fichier
header("Content-disposition: attachment; filename=\"ACH0001".date("YmdHis").".txt\"");
header("Content-Type: application/force-download");
header("Content-Transfer-Encoding: application/vnd.ms-excel\n");
header("Pragma: no-cache");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public");
header("Expires: 0");

echo $outputCsv;
exit();
?>

Rapporter au modérateur  

Re:Problème conversion champ en longueur fixe
« Répondre #1 sur: le 13-03-2012 a 16:13:47 »
roseline
Membre récent
*

Hors-Ligne

Messages: 2





Voir le Profil
Répondre avec citation

J'ai trouvé la solution grâce à un autre forum ;-)

Pour info, il faut utiliser: sprintf
Exemple:
$num = 23.50;
echo sprintf('%09u',$num*100); // affiche 000002350

Rapporter au modérateur  
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
Pages: [1] Monter
« Précédent Suivant »
Sauter à: 

Votre statut : Invité
Vous devez être membre pour participer.
 
 
Let’s Encrypt : le certificat SSL gratuit
Tester votre site internet sur différents navigateurs
[WordPress] Des problèmes avec l’administration ?
Rappel : Mettez à jour vos CMS et vos sites E-commerce
Le .fr fête ses 25 années d’existence !
Mesurer votre audience en temps réel avec BubbleStat
Porter réclamation contre Google Panda ?
Zlio n’est plus …
 
 
 
 
 

Copyright (c) Devclic 2002 - 2026 - Tous droits réservés

creation site internet strasbourg