使用php从数据库的下拉列表中填充用户生日

时间:2015-11-06 10:49:10

标签: php mysql

我在网站上有用户系统。当用户注册时,他也选择了他的出生日期。我将此日期以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>                                      

2 个答案:

答案 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;