2012-02-21 56 views
0

最近我请how to populate years和我认为我有我需要的所有答案。事情是,我有一个新的问题与天。这个问题似乎是更多的MySQL比PHP。在我的表用户,生日场,我把“日期”作为这种格式的格式:0000-00-00。现在,当我使用当前的选择框“日”,它插入2而不是02,然后妥协整个格式,当我加入$ year。$ month。$日给我和输出像1988-11-。我该如何解决这个问题?这是几天的代码(年份相似,并且位于上面的链接中)。由于选择框:如何填充天php

<? 
$bday = $r['birthday']; 
$part = explode("-", $bday); 
$year = $part[0]; 
$month = $part[1]; 
$day = $part[2]; ?> 
<select name="day"> 
    <? for($i = 1; $i <= 31; $i++){?> 
    <option value="<? echo $i. '"'; if ($day == $i) {echo 'selected="selected"';}?>"><?echo $i;?></option> <? }?> 
</select> 
+0

哦,我现在不能改变mysql的类型,因为它已经有了真实的用户信息 – chenci 2012-02-21 05:11:11

回答

1

您可以尝试

$bday = $r['birthday']; 
$part = explode("-", $bday); 
$year = $part[0]; 
$month = $part[1]; 
$day = $part[2]; ?> 
<select name="day"> 
    <? for($i = 1; $i <= 31; $i++){?> 
    <option value="<? echo str_pad($i, 2, "0", STR_PAD_LEFT) . '"'; if ($day == $i) {echo 'selected="selected"';}?>"><?echo str_pad($i, 2, "0", STR_PAD_LEFT);?></option> <? }?> 
</select> 
+0

伟大的工作,哈哈从来不知道str_pad的,想我需要阅读更多的PHP人。谢谢 – chenci 2012-02-21 05:27:29

+0

你可以从这里进一步学习。 http://php.net/manual/en/function.str-pad.php。祝你好运的朋友。 – 2012-02-21 05:37:37

0
<select name="day"> 
    <? for($i = 1; $i <= 31; $i++){?> 
    <option value="<? echo ($i < 10 ? '0' . $i : $i). '"'; if ($day == $i) {echo 'selected="selected"';}?>"><?echo $i;?></option> <? }?> 
</select>