根据我从下拉菜单中选择的条目,将条目存储到数据库

时间:2014-10-08 21:53:19

标签: php mysql

我很高兴再次问你,我有5个领域的员工休假登记页面 "员工姓名","度假类型"(一天假期,部分假期,长假一天),"假期日期"(用于一天假期和白天假期的一部分)"来自" (如果插入小时然后是休假的一部分&如果插入日期然后是长期休假)并且最终字段是"到" (如果插入小时然后是休假的一部分&如果插入日期然后是长期休假)

所以我需要根据度假类型的选择进行查询以将这些数据插入到我的数据库中,如果选择了一天假期则不需要插入("来自"和"到& #34;字段)到数据库只需插入员工姓名,一天假期和假期日期。

如果我选择了部分假期,那么我必须输入员工姓名,休假类型=部分日,休假日期,最后2个字段必须输入为我已经选择的小时数:从上午08:30:00到= 10:30 AM。

如果我选择了长假,那么我必须输入员工姓名,休假类型=长日,休假日期,并且必须输入最后2个字段作为我已经选择它的日期:from = 10/9/2014并且= 2014年9月9日。

这是我工作的一部分,但我不能让它在一个查询中工作

$employee_name=$_POST['employee_name']; 
$today = date("d/m/Y");           //date of vacation
$vacation=$_POST['vacation'];     //part day, one day and long term vacation
$start_hour=$_POST['start_hour']; //if i select part of day vacation hour from drop list
$end_hour=$_POST['end_hour'];     //if i select part of day vacation hour from drop list
$day_start=$_POST['day_start'];   //if i select long term vacation from drop list
$day_end=$_POST['day_end'];       //if i select long term vacation from drop list

我指的是我在下面的查询中应该做什么

$sql="INSERT INTO $vac_table(name, type, date, from, to)VALUES('$employee_name', '$vacation','$today','$start_hour'if part time and  '$day_start' if long time, '$end_hour' if part time  and '$day_end' if long time )";
$result=mysql_query($sql);

我知道这是一个很长的问题,但我希望你能成为这个领域的小伙伴,请你帮我多多谢谢

1 个答案:

答案 0 :(得分:0)

从您的代码中,您似乎只在数据库中有一个日期字段。您需要start_dateend_date

根据您的条件,以下代码可确保数据有效,并将其插入。

您只需要一张表

if ($vacation == 'one day') {
    $start_hour = '';
    $end_hour = '';
    $day_start = $_POST['day_start'];   //if i select long term vacation from drop list
    $day_end = $_POST['day_start'];
}

// for part day, end date is the same as start date
if ($vacation == 'part day') {
    $day_end = $_POST['day_start'];  
}

$sql = "INSERT INTO `vacations` (`name`, `type`, `start_date`, `end_date`, `start_hour`, `end_hour`) VALUES ('$employee_name', '$vacation', '$day_start', '$day_end', '$start_hour', '$end_hour')";
$result = mysql_query($sql);

您还可以将start_dateend_date作为日期时间字段,并执行以下操作:

if ($vacation == 'one day') {
    $day_start = $_POST['day_start'];   //if i select long term vacation from drop list
    $day_end = $_POST['day_start'];
}

// for part day, end date is the same as start date
if ($vacation == 'part day') {
    $day_end = $_POST['day_start'];  
}

 $day_start .= ' ' . $_POST['start_hour'];
 $day_end .= ' ' . $_POST['end_hour'];

然后

$sql = "INSERT INTO `vacations` (`name`, `type`, `start_date`, `end_date`) VALUES ('$employee_name', '$vacation', '$day_start', '$day_end')";
$result = mysql_query($sql);