Garder le zero au debut d'une variable

bigs32
WRInaute impliqué
WRInaute impliqué
 
Messages: 517
Inscription: 8 Mai 2006

Garder le zero au debut d'une variable

Message le Ven Oct 26, 2007 10:45

Salut à tous,

Donc.. problème auquel je bloque.. :(

Je recupere un champ d'une base de données pour l'écrire sur un fichier texte.

Code: Tout sélectionner
$r = mysql_query('SELECT `products_model` FROM `products`');

   while($a = mysql_fetch_row($r)){
      $dd .= $a[0]."\n";
   }


et ensuite ecriture sur fichier texte :

Code: Tout sélectionner
   $fa = fopen($f1, 'w+');
   fputs($fa, $dd);
   fclose($fa);


Toutes les variables sont correctes, le fichier est bien crée..
Le champ que je recupere et en format VARCHAR(25), donc c'est ma variable $a[0] qui contient ce champ.
Mais que ce soit a l'affichage, ou a l'ecriture du fichier, le zero refuse d'apparaitre.. pourtant le champ n'est pas en INT.

Je ne sais plus ou donner la tete.. si vous avez une solution, je suis preneur.

Merci d'avance :)

Archaos-JdR
WRInaute discret
WRInaute discret
 
Messages: 69
Inscription: 20 Sep 2006

Message le Ven Oct 26, 2007 11:54

L'affichage de $a[0] dans le while donne quoi ?

bigs32
WRInaute impliqué
WRInaute impliqué
 
Messages: 517
Inscription: 8 Mai 2006

Message le Ven Oct 26, 2007 11:57

Dans la base de données on a en VARCHAR : 015785 (pour exemple)

Et a l'affichage de $a[0], j'ai "15785" en gros le zero est supprimé.

J'ai bien essayé les fonctions intval(), ou settype().. mais aucun resultat :(

Merci


julienr
WRInaute impliqué
WRInaute impliqué
 
Messages: 911
Inscription: 5 Aoû 2003

Message le Ven Oct 26, 2007 12:26

salut,
essaye peut être de caster explicitement :
Code: Tout sélectionner
$dd .= (string)$a[0]."\n";

voir aussi de debugger en faisant :
Code: Tout sélectionner
var_dump( $a );

(var_dump affiche le type)


Pandore
WRInaute passionné
WRInaute passionné
 
Messages: 1441
Inscription: 14 Oct 2005

Message le Ven Oct 26, 2007 17:55

bigs32 a écrit:Dans la base de données on a en VARCHAR : 015785 (pour exemple)

Il te sert à quoi le zéro dans ce cas préçis ???

Si ce n'est pas pour faire des calculs, tu pourrais essayer de déclarer ta variable en "text" plutôt qu'en "varchar". Le zéro devant devrait en principe apparaitre à l'affichage. :wink:

Didier_S
WRInaute impliqué
WRInaute impliqué
 
Messages: 567
Inscription: 24 Aoû 2004

Message le Sam Oct 27, 2007 23:07

si ta variable à une longueur fixe (ou une longueur minimum), tu peux "compléter" les zéros qui manquent avec str_pad()


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités