Garder le zero au debut d'une variable

WRInaute occasionnel
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:
$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:
	$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 :)
 
WRInaute occasionnel
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
 
WRInaute impliqué
salut,
essaye peut être de caster explicitement :
Code:
$dd .= (string)$a[0]."\n";
voir aussi de debugger en faisant :
Code:
var_dump( $a );
(var_dump affiche le type)
 
WRInaute passionné
bigs32 a dit:
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:
 
WRInaute occasionnel
si ta variable à une longueur fixe (ou une longueur minimum), tu peux "compléter" les zéros qui manquent avec str_pad()
 
Discussions similaires
Haut