8797 sujets

Développement web côté serveur, CMS

Bonjour,

J'ai beau chercher, je ne trouve pas d'exemple avec les doubles comparateurs. Je m'explique: J'ai un chiffre ($chiff) qui se promène entre 1000 et 999 000. Je voudrais, dans le cas où il ne dépasse pas 9999 l'écrire avec deux '0' devant (009999), s'il se situe entre 10000 et 99999 lui adjoindre un seul '0' devant (099999) et rien à ajouter dès 100000.

Je voudrais écrire cela comme ça :

<?PHP

	$complemt="";
	$NouvNum="";
	$num=0;

	if ($num > 999) and ($num < 10000) {	
		$complemt="00";
}	elseif ($num > 9999) and ($num < 100000) {	
		$complemt="0";
}	elseif ($num > 99999)  {	
		$complemt="";
}

$NouvNum=$complemt.$num;

echo"<TABLE><TR><TD>$NouvNum</TD></TR></TABLE>"

?>

J'ai essayé différentes façons de l'écrire mais Php me répond soit qu'il y a un parse error, soit que la ligne x est fausse, bref je donne ma langue au chat. Quelqu'un pourrait-il m'aider ?

Merci d'avance.
Bonsoir,

si j'ai bien compris ce que tu veux c'est donner 2 conditions à un if.
Dans ce cas la syntaxe à utiliser est:
if(condition1 and condition2) {
...
}
ou
if(condition1 && condition2) {
...
}


Pour plus de détail consulter php.net
Modifié par Necromantik (11 Oct 2007 - 20:19)
Comme l'a dit necro, il faut utiliser && au lieu de "and."


Mais y'a beaucoup plus simple, c'est d'utiliser une fonction intégrée à PHP qui permet de faire ce que tu veux, str_pad :
$nouvNum = str_pad($num, 6, '0', STR_PAD_LEFT);

Modifié par FlorentG (11 Oct 2007 - 20:37)
Bien vu Florent !

Au chapitre solutions alternatives on peut ajouter les chaines formatées (mais leur utilisation peu être malaisée dans un premier temps). Ici ça donne
printf('<table><tr><td>%06d</td></tr></table>', $num);