Page 1 sur 1

format de champ

Posté : 01 juin 2006, 09:38
par momo94
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

Posté : 01 juin 2006, 09:48
par Ben-J
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");

Posté : 01 juin 2006, 09:49
par scorpking
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)

Posté : 01 juin 2006, 12:11
par Invité
Merci

ça marche impec

Posté : 01 juin 2006, 12:30
par Ryle
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.) :)

Posté : 01 juin 2006, 13:27
par Truc
En php il y a plus simple, tu peux utiliser la fonction str_pad()
et la même en mysql LPAD()

Posté : 02 juin 2006, 12:16
par momo94
C'est vrai que str_pad est très pratique et plus simple

Merci