2012-02-21 91 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>