bonjour,
Voila j'ai une chaine de caractere qui ne changera jamais de forme por-001-002
et je voudrais pouvoir en retirer le chiffre 001 avai vous une idée car je debute en php merci d'avance
Publicité
Posté le 20-02-2006 à 10:30:07
skeye
Posté le 20-02-2006 à 10:32:27
explode() / substr()
Message édité par skeye le 20-02-2006 à 10:33:16
---------------
Can't buy what I want because it's free -
j'ai bien essayé de mettre echo explode('-',substr($quartier_client,4,3)); mais le probleme est qu'il me ressort array au lieu de 001 ????
savais vous pouquoi?
Message édité par ma_mat44 le 20-02-2006 à 11:23:35
ma_mat44
Posté le 20-02-2006 à 11:26:10
voila mon code:
$queryic=mysql_query("select * from clients where id_client=$id_c" );
$aff_ic=mysql_fetch_array($queryic);
$quartier_client=$aff_ic[q_client];
echo explode('-',substr($quartier_client,4,3));
skeye
Posté le 20-02-2006 à 11:28:22
lis la doc des fonctions qu'on t'a données au lieu de recopier bêtement la réponse de MS-DOS_1991, qui est fausse.
---------------
Can't buy what I want because it's free -
ma_mat44
Posté le 20-02-2006 à 11:37:59
oui oui j'ai vu que ca retournai un tableau j'ai trouvé l'erreur
mais maintenant le probleme est qu'il me ressort bien 001 mais quand je veu l'incrementer il me marque 2 et non 002 et la je voi pas lui dire de me resortir les troi chiffre
oui oui j'ai vu que ca retournai un tableau j'ai trouvé l'erreur
mais maintenant le probleme est qu'il me ressort bien 001 mais quand je veu l'incrementer il me marque 2 et non 002 et la je voi pas lui dire de me resortir les troi chiffre
Euh, ca me parait tout à fait normal. Tu as d'un coté une chaine de caractere '001'. De l'autre tu veux l'incrementer. Déjà PHP est sympa lorsque tu lui fais un +1, il caste automatiquement le '001' en numerique. Mais tu ne verras jamais un nombre représenté en 002 de maniere numerique.
A toi de reformater ce nombre. Et là, la doc PHP est faite pour ca.
un part du principe que ton nombre ne depasse pas trois chiffre et qu'il doit toujours faire 3 caracteres. Tu pars d'une chaine de '000' où tu retire autant de caractere qu'il y en a dans ton nombre. Puis tu ajoutes ton nombre.
1 devient 00[0] . 1 => 001
99 devient 0[00] . 99 =>099
Sprintf retourne une "chaine formaté".
Le % indique qu'on va remplacer les caractéres suivant (% compris) par le contenu de la prochaine variable.
"%d" indiquerait qu'on va remplacer ces deux caractéres par le contenu de la prochaine variable en la considérant comme un nombre entié.
"%03d" indique qu'on va remplacer ces 4 caractéres par un nombre entié en rajoutant sufisament de caractére "0" devant pour obtenir une chaine d'au moins 3 caractéres.
C'est me semble t'il plus propre que le coup du "substr" et c'est surtout conçu pour ce genre de cas. Par contre, je suis incapable de dire lequel serait le plus rapide.
h4rold
Posté le 23-02-2006 à 12:47:57
moi je plussoie omega2 il faut utiliser sprintf
Vive le C