utdfederation Posted January 19, 2012 Share Posted January 19, 2012 hello fellas, need some help please if possible. i have created a date of birth section in my form where the user selects his/her date of birth from the dropdown menu. they would first select the day then month then year of their birthday. how would i setup the database to get this to work? i currently have: day VARCHAR( 2 ) NOT NULL , month VARCHAR( 4 ) NOT NULL , year VARCHAR( 4 ) NOT NULL , is this correct? many thanks Link to comment https://forums.phpfreaks.com/topic/255331-date-of-birth-drop-down-selection/ Share on other sites More sharing options...
utdfederation Posted January 19, 2012 Author Share Posted January 19, 2012 Link to comment https://forums.phpfreaks.com/topic/255331-date-of-birth-drop-down-selection/#findComment-1309116 Share on other sites More sharing options...
utdfederation Posted January 19, 2012 Author Share Posted January 19, 2012 this is the code, im sure i have it wrong. <tr><td>"._DOB.": </td><td><select name ='day' value='$day'> <option value=''></option> <option value='1'>1</option> <option value='2'>2</option> <option value='3'>3</option> <option value='4'>4</option> <option value='5'>5</option> <option value='6'>6</option> <option value='7'>7</option> <option value='8'>8</option> <option value='9'>9</option> <option value='10'>10</option> <option value='11'>11</option> <option value='12'>12</option> <option value='13'>13</option> <option value='14'>14</option> <option value='15'>15</option> <option value='16'>16</option> <option value='17'>17</option> <option value='18'>18</option> <option value='19'>19</option> <option value='20'>20</option> <option value='21'>21</option> <option value='22'>22</option> <option value='23'>23</option> <option value='24'>24</option> <option value='25'>25</option> <option value='26'>26</option> <option value='27'>27</option> <option value='28'>28</option> <option value='29'>29</option> <option value='30'>30</option> <option value='31'>31</option> </select> : <select name ='month' value='$month'> <option value=''></option> <option value='Jan'>Jan</option> <option value='Feb'>Feb</option> <option value='Mar'>Mar</option> <option value='Apr'>Apr</option> <option value='May'>May</option> <option value='June'>June</option> <option value='July'>July</option> <option value='Aug'>Aug</option> <option value='Sept'>Sept</option> <option value='Oct'>Oct</option> <option value='Nov'>Nov</option> <option value='Dec'>Dec</option> </select> : <select name ='year' value='$year'> <option value=''></option> <option value='1930'>1930</option> <option value='1931'>1931</option> <option value='1932'>1932</option> <option value='1933'>1933</option> <option value='1934'>1934</option> <option value='1935'>1935</option> <option value='1936'>1936</option> <option value='1937'>1937</option> <option value='1938'>1938</option> <option value='1939'>1939</option> <option value='1940'>1940</option> <option value='1941'>1941</option> <option value='1942'>1942</option> <option value='1943'>1943</option> <option value='1944'>1944</option> <option value='1945'>1945</option> <option value='1946'>1946</option> <option value='1947'>1947</option> <option value='1948'>1948</option> <option value='1949'>1949</option> <option value='1950'>1950</option> <option value='1951'>1951</option> <option value='1952'>1952</option> <option value='1953'>1953</option> <option value='1954'>1954</option> <option value='1955'>1955</option> <option value='1956'>1956</option> <option value='1957'>1957</option> <option value='1958'>1958</option> <option value='1959'>1959</option> <option value='1960'>1960</option> <option value='1961'>1961</option> <option value='1962'>1962</option> <option value='1963'>1963</option> <option value='1964'>1964</option> <option value='1965'>1965</option> <option value='1966'>1966</option> <option value='1967'>1967</option> <option value='1968'>1968</option> <option value='1969'>1969</option> <option value='1970'>1970</option> <option value='1971'>1971</option> <option value='1972'>1972</option> <option value='1973'>1973</option> <option value='1974'>1974</option> <option value='1975'>1975</option> <option value='1976'>1976</option> <option value='1977'>1977</option> <option value='1978'>1978</option> <option value='1979'>1979</option> <option value='1980'>1980</option> <option value='1981'>1981</option> <option value='1982'>1982</option> <option value='1983'>1983</option> <option value='1984'>1984</option> <option value='1985'>1985</option> <option value='1986'>1986</option> <option value='1987'>1987</option> <option value='1988'>1988</option> <option value='1989'>1989</option> <option value='1990'>1990</option> <option value='1991'>1991</option> <option value='1992'>1992</option> <option value='1993'>1993</option> <option value='1994'>1994</option> <option value='1995'>1995</option> <option value='1996'>1996</option> <option value='1997'>1997</option> <option value='1998'>1998</option> <option value='1999'>1999</option> <option value='2000'>2000</option> <option value='2001'>2001</option> <option value='2002'>2002</option> <option value='2003'>2003</option> <option value='2004'>2004</option> <option value='2005'>2005</option> <option value='2006'>2006</option> <option value='2007'>2007</option> <option value='2008'>2008</option> <option value='2009'>2009</option> <option value='2010'>2010</option> <option value='2011'>2011</option> <option value='2012'>2012</option> </select></td></tr> i am using the e107 cms and i have entered this into the page that allows the user to register to become a member. Link to comment https://forums.phpfreaks.com/topic/255331-date-of-birth-drop-down-selection/#findComment-1309118 Share on other sites More sharing options...
Pikachu2000 Posted January 19, 2012 Share Posted January 19, 2012 You should store the date in the database in a DATE data type field. That's its purpose, after all. <select> fields don't get an explicit value= attribute; it's inherited from the <option>s. It would be so much easier to build those fields dynamically with php, too. Link to comment https://forums.phpfreaks.com/topic/255331-date-of-birth-drop-down-selection/#findComment-1309120 Share on other sites More sharing options...
utdfederation Posted January 19, 2012 Author Share Posted January 19, 2012 could you explain how you mean please as i am new to coding. what code should i be using? Link to comment https://forums.phpfreaks.com/topic/255331-date-of-birth-drop-down-selection/#findComment-1309164 Share on other sites More sharing options...
cyberRobot Posted January 19, 2012 Share Posted January 19, 2012 could you explain how you mean please as i am new to coding. what code should i be using? As Pikachu2000 mentioned, you can store the DOB information using the date type. If you're using MySQL, the following link may be helpful: http://dev.mysql.com/doc/refman/5.1/en/datetime.html As for using PHP to develop the drop-down menus, you could do something like the following to generate the "day" menu: <?php print "<select name='day' value='$day'><option value=''></option>"; for($i=0; $i<=31; $i++) { print "<option value='$i'>$i</option>"; } print "</select>"; ?> Link to comment https://forums.phpfreaks.com/topic/255331-date-of-birth-drop-down-selection/#findComment-1309215 Share on other sites More sharing options...
PFMaBiSmAd Posted January 19, 2012 Share Posted January 19, 2012 Also, the value='x' attributes in your month select list need to be the month number. Link to comment https://forums.phpfreaks.com/topic/255331-date-of-birth-drop-down-selection/#findComment-1309218 Share on other sites More sharing options...
cyberRobot Posted January 19, 2012 Share Posted January 19, 2012 Ah, just noticed the $day part. If you're looking to pre-populate the form with a DOB from the database, you need to modify the loop to select the necessary option. Here is one way: <?php $day = 22; print "<select name='day'><option value=''></option>"; for($i=1; $i<=31; $i++) { print "<option value='$i'"; if($day == $i) { print " selected='selected'"; } print ">$i</option>"; } print "</select>"; ?> EDIT - sorry, $i should start at 1...not 0 Link to comment https://forums.phpfreaks.com/topic/255331-date-of-birth-drop-down-selection/#findComment-1309219 Share on other sites More sharing options...
floridaflatlander Posted January 19, 2012 Share Posted January 19, 2012 I just did this about 15 minutes ago if ((empty($_POST['year'])) OR (empty($_POST['month'])) OR (empty($_POST['day']))) { $error [] = 1; $date_e = '<h5 style="color: red;">* You forgot to enter a date.</h5>'; } else { $date_yr = (int)$_POST['year']; $date_mth = (int)$_POST['month']; $date_day = (int)$_POST['day']; // Use checkdate as insurance that a date was entered if (checkdate($date_mth, $date_day, $date_yr)){ $date_pub = $date_yr.'-'; $date_pub .= $date_mth.'-'; $date_pub .= $date_day; } else { $error [] = 1; $date_e = '<h5 style="color: red;">* The date was not valid.</h5>'; } } Then it goes into a date field in the table. I was going to put it here on freaks to see if this is Okay anyway so here it is. Also I use <option value='01'>Jan</option> etc. as PFMaBiSmAd said. Link to comment https://forums.phpfreaks.com/topic/255331-date-of-birth-drop-down-selection/#findComment-1309223 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.