Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用php在数据库下拉列表中填充用户生日_Php_Mysql - Fatal编程技术网

用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++;
     }