Php 如何在datefield中使用不同的日期更新数据库

Php 如何在datefield中使用不同的日期更新数据库,php,mysql,web-services,Php,Mysql,Web Services,我有三张桌子 1. 事件:事件id、标题、位置、纬度、经度、地址、描述、电子邮件 2. 事件时间:显示id、事件id、开始时间、持续时间、开始日期、结束日期、日期 3. 类别:类别id、事件id 我写这段代码是为了更新数据, 如果我使用更新查询,它不会在日期字段中编辑,因为日期字段不是由用户输入的,它会在内部计算并在字段中填充。因此,它会对具有相同事件id的所有字段采用相同的日期值。 但我希望所有其他字段都相同,但只有日期字段不同, 所以我试图删除数据库中的整个事件并重新插入新数据。所以我写了这

我有三张桌子
1. 事件:
事件id、标题、位置、纬度、经度、地址、描述、电子邮件

2. 事件时间
显示id、事件id、开始时间、持续时间、开始日期、结束日期、日期

3. 类别:
类别id、事件id

我写这段代码是为了更新数据, 如果我使用更新查询,它不会在
日期
字段中编辑,因为日期字段不是由用户输入的,它会在内部计算并在字段中填充。因此,它会对具有相同事件id的所有字段采用相同的日期值。 但我希望所有其他字段都相同,但只有日期字段不同, 所以我试图删除数据库中的整个事件并重新插入新数据。所以我写了这个

<?php
include_once("webconfig.php");
include_once("webdatabase.php");
$title= isset($_REQUEST['title'])?trim($_REQUEST['title']):"";
$u_id= isset($_REQUEST['user_id'])?trim($_REQUEST['user_id']):"";
$username = isset($_REQUEST['username'])?trim($_REQUEST['username']):"";
$location = isset($_REQUEST['location'])?trim($_REQUEST['location']):"";
$add = isset($_REQUEST['add'])?trim($_REQUEST['add']):"";
$des = isset($_REQUEST['des'])?trim($_REQUEST['des']):"";
$latitude = isset($_REQUEST['latitude'])?trim($_REQUEST['latitude']):"";
$long = isset($_REQUEST['long'])?trim($_REQUEST['long']):"";
$event_id=isset($_REQUEST['event_id'])?trim($_REQUEST['event_id']):"";
$sdate = isset($_REQUEST['sdate'])?trim($_REQUEST['sdate']):"";
$edate=isset($_REQUEST['edate'])?trim($_REQUEST['edate']):"";
$stime = isset($_REQUEST['stime'])?trim($_REQUEST['stime']):"";
$dur = isset($_REQUEST['dur'])?trim($_REQUEST['dur']):"";
//$date=isset($_REQUEST['date'])?trim($_REQUEST['date']):"";

$aryDeparture = explode(":", "$stime"); 
$aryDuration = explode(":", "$dur"); 

$timeDeparture = mktime($aryDeparture[0], $aryDeparture[1]); 

$arrive = date("H:i", strtotime("+" . $aryDuration[0] . " hours +" . $aryDuration[1] . " minutes " , $timeDeparture)); 
$sql ="Delete events,event_time,category from events join event_time join category on(events.event_id=event_time.event_id and event_time.event_id=category.event_id) where event_time. event_id='$event_id'";
mysql_query($sql);

$sql1= "insert into events(event_id,user_id,title,email,location,address,latitude,longitude,description)values('','$u_id','$title','$username','$location','$add','$latitude','$long','$des')";
mysql_query($sql1);
$lastid=mysql_insert_id();
$init_date = strtotime($sdate);
$dst_date = strtotime($edate);
$offset = $dst_date-$init_date;

$dates = floor($offset/60/60/24) + 1;
for ($i = 0; $i< $dates; $i++)
{
$newdate = date("Y-m-d", mktime(12,0,0,date("m", strtotime($sdate)),
(date("d", strtotime($sdate)) + $i), date("Y", strtotime($sdate))));
$sql2="insert into event_time(show_id,event_id,start_date,start_time,end_date,duration,date,end_time) values('','$lastid','$sdate','$stime','$edate','$dur','$newdate','$arrive')";
mysql_query($sql2);
//$sql1="update event_time join events on(events.event_id=event_time.event_id) set events.title='$title',events.location='$location',events.address='$add',events.latitude='$latitude',events.longitude='$long',events.description='$des',event_time.start_time='$stime',event_time.duration='$dur',event_time.start_date='$sdate',event_time.end_date='$edate',event_time.end_time='$arrive',event_time.date='$newdate' where event_time.event_id='$event_id'";
//mysql_query($sql1);
}


//echo $newdate ."<br>";
if(mysql_affected_rows()!=0)
{
$successMsg ="Event Updated Successfully!.";
$xml=
header("Content-type: text/xml");
echo "<root>";
echo "<post>";
echo "<status>True</status>";
echo "<message>$successMsg</message>";
echo "</post>";
echo "</root>";
return $xml;
}
else
{
$xml .= '<root>';
$xml .= '<post>';
$xml .= '<status>false</status>';
$xml .= "<message>event not found</message>";
$xml .= '</post>';
$xml .= '</root>';
echo $xml;
}
?> 


现在我可以插入新数据,也可以在日期字段中获取不同的数据,但我不会删除旧的事件数据。请任何人帮助我。

在删除之前,您没有定义变量
$event\u id
。 您的删除查询很混乱,请尝试执行单独的查询“是”,然后检查错误。
不要忘记在字段周围使用反勾号,以避免出现与保留字相关的错误。

请告诉所有日期字段的
数据类型