format de champ

Eléphanteau du PHP | 10 Messages

01 juin 2006, 09:38

Bonjour,

Dans ma table Mysql j'ai un champ ou je saisi des numéros. Je souhaiterai que quand je saisi "1", le champ soit formaté comme ceci "00001".
Faut-il le faire avec Mysql ou avec Php et comment?

Merci

Eléphant du PHP | 95 Messages

01 juin 2006, 09:48

dans les propiétes de ta base (sur phpmyadmin, surement, nn?) , tu peux modifier le type de données du champ, il suffit que tu mettes par exemple smallint(4) , unsigned full zero, auto increment, pui dans tes requetes

Code : Tout sélectionner

INSERT INTO [table] VALUES (default, "xxx");

Eléphanteau du PHP | 37 Messages

01 juin 2006, 09:49

si tu saisy tes champ par php tu fais juste une concaténation
$var=(champ);
$long = str_len($var);
if(long == 1)
{
$format ='0000';
$var = $format.$var;
}
else if(long == 2)
{
$format ='000';
$var = $format.$var;
}
else if(long == 3)
{
$format ='00';
$var = $format.$var;
}
else if(long == 4)
{
$format ='0';
$var = $format.$var;
}
else if(long == 5)
{
}
voila avec ça tu a un format sur 5 chiffres grace a php
tu n'a plus qu'a incéré $var dans ton tableau mysql
(si tu veut faisr des integer dans mysql il faudra changer le type de la variable car mon code ne marche que avec un string)

Invité
Invité n'ayant pas de compte PHPfrance

01 juin 2006, 12:11

Merci

ça marche impec

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

01 juin 2006, 12:30

En php il y a plus simple, tu peux utiliser la fonction str_pad() qui te permet de compléter une chaine avec un caractère jusqu'à une taille donnée :
echo str_pad("1", 4, "0");
// affiche "0001"
voir la doc pour plus de détail (pad à droite etc.) :)

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

01 juin 2006, 13:27

En php il y a plus simple, tu peux utiliser la fonction str_pad()
et la même en mysql LPAD()

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphanteau du PHP | 10 Messages

02 juin 2006, 12:16

C'est vrai que str_pad est très pratique et plus simple

Merci