我在网站上有用户系统。当用户注册时,他也选择了他的出生日期。我将此日期以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>
是否有可能这个或我必须将每个值存储在数据库的不同列中?
更新
result = $pdo->prepare("SELECT * FROM users WHERE id = ? LIMIT 1");
$result -> bindParam(1, $id, PDO::PARAM_INT);
$result -> execute();
foreach ( $result as $row )
{
$birthDay = $row['user_birthday'];
$explodeBirthDay = explode('-',$birthDay);
$birthdayYear = $explodeBirthDay['0'];
$birthdayMonth = $explodeBirthDay['1'];
$birthdayDay = $explodeBirthDay['2'];
echo '
<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" id="year" class="form-control">
<option value="--">Year</option>';
for($i=date('Y'); $i>1899; $i--) {
$selected = '';
if ($birthdayYear == $i) $selected = ' selected="selected"';
print('<option value="'.$i.'"'.$selected.'>'.$i.'</option>'."\n");
}
echo'
</select>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<select name="month" id="month" onchange="" class="form-control" size="1">
<option value="--">Month</option>
<option if($birthdayMonth == "01") { ?> selected="selected" <?php } ?> value="01">January</option>
<option 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" id="day" 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>
答案 0 :(得分:1)
尝试更改此内容(考虑private static class ProductsFilter extends Filter {
private final SalesProductsAdapter adapter;
private final List<SalesProductsItems> originalList;
private final List<SalesProductsItems> filteredList;
private ProductsFilter(SalesProductsAdapter adapter, List<SalesProductsItems> originalList) {
super();
this.adapter = adapter;
this.originalList = new LinkedList<>(originalList);
this.filteredList = new ArrayList<>();
}
@Override
protected FilterResults performFiltering(CharSequence constraint) {
filteredList.clear();
final FilterResults results = new FilterResults();
if (constraint == null || constraint.length() == 0)
filteredList.addAll(originalList);
else {
final String filterPattern = constraint.toString().toLowerCase().trim();
for (final SalesProductsItems it : originalList) {
if (it.getProduct().toLowerCase().contains(filterPattern)) {
filteredList.add(it);
}
}
}
results.values = filteredList;
results.count = filteredList.size();
return results;
}
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
adapter.mItems = originalList;
if(results.count > 0) {
filteredIt.clear();
filteredIt.addAll((ArrayList<SalesProductsItems>) results.values);
adapter.notifyDataSetChanged();
} else {
filteredIt.clear();
filteredIt.addAll(adapter.mItems);
adapter.notifyDataSetChanged();
}
}
}
具有数据库中的值。)
$date
答案 1 :(得分:1)
使用此代码,
$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++;
}
&GT;