猿问

SQL 中的多次插入,数据库中的经常性费用插入

用户添加收入或支出。如果他将其归类为经常性交易,他会从包含(每周、每两周、每月等)的频率下拉列表中进行选择。用户还输入开始日期和结束日期。


我想根据所选的频率进行迄今为止的增量。例如,如果我有每周,那么我想使用“修改”添加 +1 周。函数,但该函数没有对日期进行任何修改,并且陷入连续的 if 循环中。


我的第一个查询成功并将数据插入数据库中,但循环内的查询不起作用,因为日期没有按照所选频率增加。


  //db query is done here.

  $sde=$_POST['startdateexpense'];

  $ede=$_POST['enddateexpense'];

  $dt = new DateTime(str_replace("-", "/", $sde));

  $dtUntil = new DateTime(str_replace("-", "/", $ede ? $ede : date("m-d-Y")));

  

          

  $modifiers=[

    "Annually"=>"+1 year",

    "Daily"=>"+1 day",

    "Weekly"=>"+1 week",

    "Fort-nightly"=>"+2 weeks",

    "Monthly"=>"+1 month",

    "Quarterly"=>"+4 months",

    "Semi-Annually"=>"+6 months",

    "Annually"=>"+1 year"

  ];

  $modifier=$modifiers[$ExpenseFrequency];

  $dt->modify($modifier); 

  if($dt <= $dtUntil){

    $dt->modify($modifier);

    //db query is done here.

    }

输入 预期输出和实际输出

谁能帮我解决这个问题吗?


温温酱
浏览 93回答 1
1回答

慕田峪9158850

$modifiers=[&nbsp; &nbsp; "Annually"=>"+1 year",&nbsp; &nbsp; "Daily"=>"+1 day",&nbsp; &nbsp; "Weekly"=>"+1 week",&nbsp; &nbsp; "Fort-nightly"=>"+2 weeks",&nbsp; &nbsp; "Monthly"=>"+1 month",&nbsp; &nbsp; "Quarterly"=>"+4 months",&nbsp; &nbsp; "Semi-Annually"=>"+6 months",&nbsp; &nbsp;&nbsp;&nbsp; ];&nbsp;&nbsp;&nbsp; //$dt->modify($modifier);&nbsp;&nbsp; if($sde <= $ede){&nbsp; &nbsp; $modifier= $modifiers[$ExpenseFrequency];$modifier= $modifiers[$ExpenseFrequency];这部分需要位于带有 [ ] 大括号的内部循环中。应将 $sde 格式化以将其插入数据库。&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; $sde = new DateTime($sde);&nbsp; &nbsp; $sde->modify($modifier);&nbsp; &nbsp; $sde= $sde->format('Y-m-d');&nbsp; &nbsp; echo $sde;&nbsp; &nbsp; $query=mysqli_query($con, "insert into expense(ExpenseDate,ExpenseItem,ExpenseCost,ExpenseCategoryName,Image) value('$sde','$item','$costitem','$ExpenseCategoryID','$image')");
随时随地看视频慕课网APP
我要回答