8792 sujets

Développement web côté serveur, CMS

bonjour a tous
je voudrait pouvoir conserver 000021 dans ma base de donnée comme id mais impossible car il supprime les zero ( se qui est logique )
connaissez-vous une solution ?

merci a tous
Modifié par b2energie (02 Mar 2007 - 17:14)
Salut,

Peux-tu nous expliquer dans quel cadre tu as ce besoin ? Je pense que ton problème se situe plus au niveau du traitement de tes données. Smiley smile
dans le cadre d'un petit site de e-commerce, a la création d'un client je souhaiterais dans la base client un id composé de 6 chiffre se qui permetré ensuite de le communiqué au client et au service de traitement des commandes.

un numero entre 000000 et 999999 qui commence a 000001 serait bien car comme dit plus haut c'est un numero qui sera a etre communiqué au client est donc des numero comme : 4 ou 3363 ne sont pas adapté

merci
Qu'est-ce qui t'empêche dans ce cas d'utiliser un entier tout à fait banal dans ta base de données, et de communiquer au client le même entier, mais avec les zéros ajoutés en préfixe ?

Il est - il me semble - assez facile d'ajouter le nombre de zéros nécessaires au début de ton id quand tu le récupères de ta base de données, et d'enlever tous les zéros au début quand le client te le donne.
j'ai pensé a cette solution mais la volonté de simplifiez au maximun m'amene a chercher une solution a se probleme
Administrateur
Bonjour,

regarde du côté de ZEROFILL je crois. Ou sinon leading zero/zeros mysql sur ton moteur de recherche favori Smiley cligne
Sinon, tu peux ajouter/enlever les zéros en php. A mon avis cette solution est plus robuste car les tris en SQL sont facilités lorsque tu manipules des entiers normaux.

Pour les ajouter, regarde du côté de la fonction strpad.

Pour les enlever, il suffit d'utiliser une petite expression régulière :
$id = preg_replace("#^0+#", "", $strId);

ET autrement en tant que client je ne vois pas quel problème ça poserait dêtre le client n° 123 plutôt que le client n°000123. Je crois même que j'aurais tendance à oublier ces zéros en donnant mon numéro.
Salut

Je te conseille d'enregistrer l'entier en base de données (ex : 123) et d'ajouter les zéros en php.

Si un jour tu passes à un code client avec un chiffre de plus, ca sera plus facile à modifier. TU auras juste à changer la valeur de ton strpad.
Modifié par Zeke (01 Mar 2007 - 15:43)
merci a tous

j'ai finalement opté pour la solution de l'ajout des zeros en utilisant se code


$numclient = $id;
$taillenuclient = 8 ; //taille du numero client
(string) $numclient;
$numclient = str_pad($numclient,$taillenuclient, "0", STR_PAD_LEFT);


tchou
Modifié par b2energie (02 Mar 2007 - 00:47)
b2energie a écrit :

(string) $numclient;
A mon avis, cette ligne ne fait absolument rien. Smiley smile

Je pense que tu voulais écrire :
$numclient = (string) $numclient;

<edit>Pourras-tu faire marquer tes sujets comme résolus si c'est le cas ? Smiley smile </edit>
Modifié par Julien Royer (02 Mar 2007 - 01:12)