i db.
alder_d (Dag)
alder_m (Måned)
alder_a (år)
det vil give problemer senere hen, ved feks alders beregning, sortering efter alder, der bør holdes fast i date eller datetime formatet
1. Når de skriver alder ind, skriver den bare 0000-00-00 i databasen.
du skal omsætte datoen til time format
strtotimedu må ikke have flere id'er der hedder det sammen >>id="gender"<< på sammen side
en lille test
<?php
/*
CREATE TABLE IF NOT EXISTS `tbl_test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`Navn` varchar(255) COLLATE utf8_danish_ci NOT NULL,
`created` date NOT NULL,
`gender` varchar(10) COLLATE utf8_danish_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci AUTO_INCREMENT=7 ;
INSERT INTO `tbl_test` (`id`, `Navn`, `created`, `gender`) VALUES
(5, 'ukendt', '2007-08-14', 'm'),
(6, 'ukendt', '2007-02-01', 'unknown');
*/
include_once($_SERVER['DOCUMENT_ROOT']."/include/php/debugheader.php"); // for at vise alle fejl og advarsler
if(isset($_POST['send']) ){
$conn = mysqli_connect("localhost", "root", "", "test");
if (!$conn) {
echo "fejl";
}
mysqli_set_charset($conn, "utf8");
$gender = (isset($_POST['gender'])) ? $_POST['gender'] : "unknown";
$Dato = $_POST['birth_year'] . "-" . $_POST['birth_month'] . "-" . $_POST['birth_day'];
// http://stackoverflow.com/questions/2891937/strtotime-doesnt-work-with-dd-mm-yyyy-format
// $Dato = str_replace('/', '-', $Dato);
// stting to time
$navn ="ukendt";
$Dato = date('Y-m-d', strtotime($Dato));
$sql ="INSERT INTO tbl_test (`Navn`,`created`, `gender`) VALUES ('$navn','$Dato','$gender') ";
$rs = mysqli_query($conn, $sql) or die ( mysqli_error($conn));
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>rjo test</title>
<style type="text/css">
</style>
<script type="text/javascript">
</script>
</head>
<body>
<form action="#" method="post">
<input type="radio" name="gender" value="m" >Mand <br/>
<input type="radio" name="gender" value="f" >Kvinde<br/>
<select name="birth_month" class="formFields" id="birth_month">
<option value="01">Januar</option>
<option value="02">Februar</option>
<option value="03">Marts</option>
<option value="04">April</option>
<option value="05">Maj</option>
<option value="06">Juni</option>
<option value="07">Juli</option>
<option value="08">August</option>
<option value="09">September</option>
<option value="10">Oktober</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
<?php
$out = '<select name="birth_day" class="formFields" id="birth_day">';
for($i=1; $i<=31; $i++){
$out .= '<option value="'.sprintf("%02d", $i).'">'. $i .'</option>';
}
$out .= '</select>';
echo $out;
$out = '<select name="birth_year" class="formFields" id="birth_year">';
for($i=2010; $i >=1980; $i--){
$out .= '<option value="'.$i.'">'. $i .'</option>';
}
$out .= '</select>';
echo $out;
?>
<input type="submit" name="send" value="send">
</form>
</body>
</html>
du bruger vist nok stadig det gamle mysql API men det har jeg ikke lyst til at skrive i, når jeg ved det udgår at PHP i fremtidige vertioner af PHP
hvis du stadig vil bruge det gamle API må du selv omskrive de få linjer