用php在数据库下拉列表中填充用户生日
我在网站上有一个用户系统。当用户注册时,他也选择他的出生日期。我正在以这种格式将此日期存储在表中用php在数据库下拉列表中填充用户生日,php,mysql,Php,Mysql,我在网站上有一个用户系统。当用户注册时,他也选择他的出生日期。我正在以这种格式将此日期存储在表中1900-01-01 现在我想创建一个页面,用户可以在其中编辑他们的帐户,还可以更改出生日期 问题:当数据库中的表存储为一个时,如何填充3个下拉列表“年”、“月”、“日” 这就是用户打开编辑页面时的查询: SELECT * FROM users WHERE id = ? LIMIT 1 还有下拉列表 <select name="year" id="year" class="form-contr
1900-01-01
现在我想创建一个页面,用户可以在其中编辑他们的帐户,还可以更改出生日期
问题:当数据库中的表存储为一个时,如何填充3个下拉列表“年”、“月”、“日”
这就是用户打开编辑页面时的查询:
SELECT * FROM users WHERE id = ? LIMIT 1
还有下拉列表
<select name="year" id="year" class="form-control">
<option value="--">Year</option>
<?php for($i=date('Y'); $i>1899; $i--) {
$birthdayYear = '';
$selected = '';
if ($birthdayYear == $i) $selected = ' selected="selected"';
print('<option value="'.$i.'"'.$selected.'>'.$i.'</option>'."\n");
} ?>
</select>
<select name="month" id="month" onchange="" class="form-control" size="1">
<option value="--">Month</option>
<option value="01">January</option>
<option value="12">...</option>
<option value="12">December</option>
</select>
<select name="day" id="day" onchange="" class="form-control" size="1">
<option value="--">Day</option>
<option value="01">01</option>
<option value="...">...</option>
<option value="31">31</option>
</select>
年
尝试更改此选项,(考虑到$date
具有数据库中的值。)
if(date(“Y”,strotime($date))=$i)$selected='selected=“selected””;
打印(“.$i.”“\n”);
使用此代码
$result = $pdo->prepare("SELECT * FROM users WHERE id = ? LIMIT 1");
$result -> bindParam(1, $id, PDO::PARAM_INT);
$result -> execute();
$fff = '1';
foreach ( $result as $row )
{
$birthDay = $row['user_birthday'];
$explodeBirthDay = explode('-',$birthDay);
$birthdayYear = $explodeBirthDay['0'];
$birthdayMonth = $explodeBirthDay['1'];
$birthdayDay = $explodeBirthDay['2'];
?>
<div class="form-group">
<label class="col-md-4 control-label" for="birthday"></label>
<div class="col-md-2">
<div class="form-group">
<select name="year<?php echo $fff; ?>" id="year<?php echo $fff; ?>" class="form-control">
<option value="--">Year</option>
<?php
for($i=date('Y'); $i>1899; $i--) {
$selected = '';
if ($birthdayYear == $i) $selected = ' selected="selected"';
print('<option value="'.$i.'"'.$selected.'>'.$i.'</option>'."\n");
}
?>
</select>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<select name="month<?php echo $fff; ?>" id="month<?php echo $fff; ?>" onchange="" class="form-control" size="1">
<option value="--">Month</option>
<option <?php if($birthdayMonth == "01") { ?> selected="selected" <?php } ?> value="01">January</option>
<option <?php if($birthdayMonth == "12") { ?> selected="selected" <?php } ?>value="12">December</option>
</select>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<select name="day<?php echo $fff; ?>" id="day<?php echo $fff; ?>" onchange="" class="form-control" size="1">
<option value="--">Day</option>
<option <?php if($birthdayDay == "01") { ?> selected="selected" <?php } ?> value="01">01</option>
<!-- remaining days -->
<option <?php if($birthdayDay == "31") { ?>selected="selected" <?php } ?> value="31">31</option>
</select>
</div>
</div>
</div>
<?php
$fff++;
}
$result=$pdo->prepare(“从id=?限制1的用户中选择*);
$result->bindParam(1,$id,PDO::PARAM_INT);
$result->execute();
$fff='1';
foreach($结果为$行)
{
$birthDay=$row['user_birthDay'];
$ExplodeDarth=爆炸('-',$Birth);
$birthdayear=$birthdayear['0'];
$birthdayMonth=$birthday['1'];
$birthdayDay=$birthday['2'];
?>
你可以用连字符标出日期,你会得到3个不同的部分。所以,explode(“-”,$date)
应该可以很好地工作。谢谢,但我在将其实现到当前代码中时遇到了一些问题,因为这些代码在循环和echo
语句中。如果您能帮助我更新代码,我将更新我的问题。您正在合并html,phpI将在几分钟内尝试。谢谢。您能告诉我为什么这是$fff
?
if (date("Y",strtotime($date)) == $i) $selected = ' selected="selected"';
print('<option value="'.$i.'"'.$selected.'>'.$i.'</option>'."\n");
$result = $pdo->prepare("SELECT * FROM users WHERE id = ? LIMIT 1");
$result -> bindParam(1, $id, PDO::PARAM_INT);
$result -> execute();
$fff = '1';
foreach ( $result as $row )
{
$birthDay = $row['user_birthday'];
$explodeBirthDay = explode('-',$birthDay);
$birthdayYear = $explodeBirthDay['0'];
$birthdayMonth = $explodeBirthDay['1'];
$birthdayDay = $explodeBirthDay['2'];
?>
<div class="form-group">
<label class="col-md-4 control-label" for="birthday"></label>
<div class="col-md-2">
<div class="form-group">
<select name="year<?php echo $fff; ?>" id="year<?php echo $fff; ?>" class="form-control">
<option value="--">Year</option>
<?php
for($i=date('Y'); $i>1899; $i--) {
$selected = '';
if ($birthdayYear == $i) $selected = ' selected="selected"';
print('<option value="'.$i.'"'.$selected.'>'.$i.'</option>'."\n");
}
?>
</select>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<select name="month<?php echo $fff; ?>" id="month<?php echo $fff; ?>" onchange="" class="form-control" size="1">
<option value="--">Month</option>
<option <?php if($birthdayMonth == "01") { ?> selected="selected" <?php } ?> value="01">January</option>
<option <?php if($birthdayMonth == "12") { ?> selected="selected" <?php } ?>value="12">December</option>
</select>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<select name="day<?php echo $fff; ?>" id="day<?php echo $fff; ?>" onchange="" class="form-control" size="1">
<option value="--">Day</option>
<option <?php if($birthdayDay == "01") { ?> selected="selected" <?php } ?> value="01">01</option>
<!-- remaining days -->
<option <?php if($birthdayDay == "31") { ?>selected="selected" <?php } ?> value="31">31</option>
</select>
</div>
</div>
</div>
<?php
$fff++;
}