【发布时间】:2016-04-07 06:59:57
【问题描述】:
我有 ClinicDays 数组,其中包含从星期一到星期日的复选框值和诊所 id 值:
clinicDays[]:4|1
clinicDays[]:1|1
管道前的第一个数字是诊所的 id,管道右侧的最后一个数字是当天的数字,我想做的是如果 ClinicDays 有值,那么将值放入表中,如果旧值与新值不匹配,则删除旧值,如果 ClinicDays 数组为空,则删除与 $doctorid 和 clinic_id 关联的所有行
插入值部分工作正常,但我无法让删除部分工作,可以指导我完成吗?
为此,我有 4 张桌子: 1-dg_clinics (id, Clinic_name) 2-dg_doctors (id, doctor_name) 3-dg_days (id, day_name) 4-dg_clinic_days (id, Clinic_id, doctor_id, day_id)
$doctorid = $_POST['doctor_doctorid'];
if(isset($_POST['clinicDays']))
{
$clinics = array();
foreach($_POST['clinicDays'] as $clinic_day_values){
$clinic_day_values = explode("|", $clinicday);
$q5 = "SELECT * FROM dg_doctors_clinic_days WHERE doctor_id = {$doctorid} AND clinic_id = {$clinic_day_values[0]} AND day_id = {$clinic_day_values[1]}";
$getClinicDay = $db->query($q5);
$num_days = mysql_num_rows($getClinicDay);
if( $num_days == 0 ) {
$q6 = "INSERT INTO dg_doctors_clinic_days (clinic_id,doctor_id,day_id,value,date_added) VALUES ({$clinic_day_values[0]},{$doctorid},$clinic_day_values[1],1,NOW())";
$r6 = $db->query($q6);
}
}
$items = implode(",", $_POST['checkAllClinics']);
$q3 = "DELETE FROM dg_clinic_doctors WHERE doctor_id = {$doctorid} AND clinic_id = {} AND day_id NOT IN ({$items})";
$r3 = $db->query($q3);
} else {
$q8 = "DELETE FROM dg_doctors_clinic_days WHERE doctor_id = {$doctorid}";
$r8 = $db->query($q8);
}
【问题讨论】:
-
我刚刚添加了问题@cale_b
标签: php mysql arrays multidimensional-array