|
|
|
| Добрый день. На странице организован нумерованный список с выводом номеров. Номера берутся из базы, и там они имеют такой вид: 1,2,3...10...100. Максимальное число в списке трехзначное. Очень бы хотелось, чтобы при выборке проверялось количество цифр в числе, и если число однозначное, то печаталось бы не 1, а 001, если двузначное то 025 вместо 25, если трехзначное то соответственно печаталось бы как есть. Возможно ли такое сделать? | |
|
|
|
|
|
|
|
для: bones
(22.04.2006 в 18:37)
| | Первое, что пришло в голову. В примере просто берутся числа от 1 до 100 и к ним добавляются нули.
<?
for ($i=1; $i<101; $i++) {
$k=$i;
if (strlen($k)==1) {echo "00".$k."<br>";}
elseif (strlen($k)==2) {echo "0".$k."<br>";}
else {echo $k."<br>";}
}
?>
|
Если Вы дадите структуру таблицы, можно подправить код непосредственно под нее. | |
|
|
|
|
|
|
|
для: aexb
(22.04.2006 в 18:51)
| | Вариант aexb кажется то что надо, проблема как это связать с уже имеющимся кодом. Он выглядит так:
if(SHOW_ID)
$showid = "<td width=\"30\">".$items['items_id']."</td>";
print "<tr">". $showid . $name ."<td width= и т.д.
Если отбросить HTML, создается $showid путем выборки номеров из items_id в таблице, а следующей строкой печатается вместе с $name.
Добавление нулей, как понимаю, надо делать сразу после выборки, чтобы $showid создавался трехзначным числом и именно это значение передавалось на print. | |
|
|
|
|
|
|
|
для: bones
(22.04.2006 в 20:59)
| | Хм, по-моему написать это в одну строку - гораздо читабельней и быстрее, чем писать циклы.
if(SHOW_ID)
$showid = "<td width=\"30\">".sprintf("%03d", $items['items_id'])."</td>";
print "<tr">". $showid . $name ."<td width= и т.д.
|
| |
|
|
|
|
|
|
|
для: Саня
(22.04.2006 в 21:11)
| | Вот это здорово :). Спасибо! | |
|
|
|
|
|
|
|
для: bones
(22.04.2006 в 18:37)
| | Для этого можно воспользоваться функцией sprintf() или printf():
<?php
$num1 = 1;
$num2 = 10;
$num3 = 200;
echo sprintf("%03d", $num1); // выведет 001
echo "<br/>";
echo sprintf("%03d", $num2); // выведет 010
echo "<br/>";
echo sprintf("%03d", $num3); // выведет 200
?>
|
| |
|
|
|