Page 1 sur 1
Changement d'unité
Posté : 30 juin 2007, 10:57
par djtec
Bonjour,
Voilà j'ai un champs ou les membres entre un nombre.
Ce nombre est pas défault à rentrer en cm.
Et je voudrais que lorsqu'il s'affiche il change d'unité s'il est plus grand que 100.
Exemple:
1 cm il affiche 1 cm
100 cm il affiche 1 m
1000 cm il affiche 1 km
J'ai réussit a faire l'affichage de l'uinité avec ceci:
if($resultat['taille'] > 1)
{
$rtaille = ''.stripslashes($resultat['taille']).' cm';
}
elseif($resultat['taille'] > 100)
{
$rtaille = ''.stripslashes($resultat['taille']).' m';
}
elseif($resultat['taille'] > 1000)
{
$rtaille = ''.stripslashes($resultat['taille']).' km';
}
Mais je ne trouve pas comment faire pour par exemple changer les 1000 en 1 et si c'est 1250 en 1,25.
Si quelqu'un avait une idée.
Merci d'avance.
Posté : 30 juin 2007, 11:47
par albat
Modération :
Afin d'obtenir plus de réponses, le sujet est déplacé dans le forum "Débuter en PHP". 
Posté : 30 juin 2007, 11:49
par orgerix
Tu divise par 1000 ou par 100, tout simplement
Posté : 30 juin 2007, 11:51
par albat
$taille = $resultat['taille'];
if ($taille > 100000)
{ echo $taille/100000." km";
}
else
{ if ($taille > 100)
{ echo $taille/100." m";
}
else
{ echo $taille." cm";
}
}
Au passage, 1000 cm ne font pas 1 km !

Posté : 30 juin 2007, 11:53
par albat
Ou, en utilisant l'opérateur ternaire :
$taille = $resultat['taille'];
echo ($taille>100000 ? $taille/100000." km" : ($taille>100 ? $taille/100." m" : $taille." cm"));
Classe, non ?

Posté : 30 juin 2007, 15:26
par djtec
Albat aucune des deux solutions fonctionne sa me met
Code : Tout sélectionner
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING
Posté : 30 juin 2007, 16:01
par Ripat
Ou, en utilisant l'opérateur ternaire :
$taille = $resultat['taille'];
echo ($taille>100000 ? $taille/100000." km" : ($taille>100 ? $taille/100." m" : $taille." cm"));
Classe, non ?

Très clâââsse en effet.
Moins lisible que le bon vieux if mais je suppose que tu t'entraînes pour le
Obfuscated Code contest
Allez, je m'y mets aussi
$taille = 1000;
$aaah_lbat = <<<ICI
bY9NCsIwEEb3PcVHEapQWn+WDQF37uzCC8Qk2sHYQpO6kV7Wk5jUFoo6i4
GZ780j0bJqkLBqy/fmLFwKRQ6MPhOMgDQvX9ZqlhNPIUWtSPlIdJBNLZuut
TieL52VwmmF8lD6vfK0V0as2vGTIGM0mpauVAsTkh1PsoUb9lkyh7zxoVtH
I1REdMFyJMGxWYdaRQCe0OHlU5iPURbjdo+LQPShaWP1B/8xDRr8VwXPqMGk
wkw3O5v+EUN+X/TFGw==
ICI;
eval(gzinflate(base64_decode($aaah_lbat)));

Posté : 30 juin 2007, 16:02
par albat

Vérifie l'existence de
$resultat['taille']...
EDIT : Ripat, taquin !

Alors qu'il n'y a rien de plus
obfuscated que les regexp que tu adores !

Posté : 30 juin 2007, 16:09
par Ripat
Albat aucune des deux solutions fonctionne sa me met
Code : Tout sélectionner
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING
Manquerait pas des parenthèses des fois?
if ($taille > 100000)
{ echo ($taille/100000)." km";
}
else
{ if ($taille > 100)
{ echo ($taille/100)." m";
}
else
{ echo $taille." cm";
}
}
Posté : 30 juin 2007, 20:01
par djtec
C'était ça Ripat c'était bien les paranthèse.
Maintenant cela fonctionne.
Merci à vous deux.
Posté : 30 juin 2007, 20:48
par albat
Au temps pour moi, j'avais oublié de parenthéser...
Voici la version corrigée :
echo ($taille>100000 ? ($taille/100000)." km" : ($taille>100 ? ($taille/100)." m" : $taille." cm"));
Posté : 30 juin 2007, 21:05
par djtec
Tout le monde fait des erreurs Albat
Moi j'utilise l'autre car je la trouve plus facile a modifier et plus facile a comprendre