我创建了一个基本的CRM。
我有联系人,我将任务和路径(任务组)附加到。
分配路径的方法是在我的数据库中的“路径”表中预先定义路径。
'id' 'category' 'set_name' 'function' 'text' 'days'
一些示例条目:
'1' 'Follow up' '2 Weeks' 'Call' 'Call them to say hello' '7'
'1' 'Follow up' '2 Weeks' 'SMS' 'Thank you for the chat yesterday' '8'
'1' 'Prospecting' '1 Week' 'SMS' Thank you for the chat' '0'
用户可以在网络表单的下拉菜单中选择一个跟踪。这是选项的代码:
<select name="activity_schedule_2" class="insert_new_select hovering">
<option value="notrail">No Trail</option>
<?php
$set_get = $mysqli->query("SELECT DISTINCT category,set_name FROM trail ORDER BY category");
if ($set_get->num_rows != 0){
while($set_1 = $set_get->fetch_assoc()) {
$set_category = $set_1['category'];
$set_name = $set_1['set_name'];
?>
<OPTION VALUE="<?php echo $set_category.','.$set_name; ?>"><?php echo $set_category.' :: '.$set_name ?></OPTION>
<?php
}
}
?>
</select>
在此表单提交的php页面上,我使用以下代码:
$contact_activityschedule = $_POST['activity_schedule_2'];
$contact_activityschedule = explode(",", $contact_activityschedule);
$contact_activityschedule_1 = $contact_activityschedule[0];
$contact_activityschedule_2 = $contact_activityschedule[1];
我在这里做的是分离'类别'和&amp; 'set_name'。准备查询它们。
以下是提交表单此部分的代码:
if ($contact_activityschedule != 'notrail'){
$setname = $mysqli->query("SELECT * FROM trail WHERE category = '$contact_activityschedule_1' AND set_name = '$contact_activityschedule_2'");
if($setname->num_rows != ''){
while($set_this = $setname->fetch_assoc()){
$set_id = $set_this['id'];
$set_category = $set_this['category'];
$set_name = $set_this['set_name'];
$set_function = $set_this['function'];
$set_text = $set_this['text'];
$set_days = $set_this['days'];
//Due date = today + 'days'
$dueDate = date('Y:m:d', strtotime('+'.$set_days.' days'));
$taskentry = $mysqli->query("INSERT INTO task (datetime, template, function, name, text, attachment, time_begin, time_due, property_id) VALUES (NOW(), '', '$set_function', '$set_name', '$set_text', '', '', '$dueDate', '')");
$get_task_id = $mysqli->query("SELECT * FROM task WHERE id = LAST_INSERT_ID();");
if($get_task_id->num_rows != ''){
while($thetaskid = $get_task_id->fetch_assoc()){
$final_task_id = $thetaskid['id'];
$linkentry = $mysqli->query("INSERT INTO link (datetime, user_id, current, contact_id, contact_id_b, property_id, group_id, task_id, theme_id, relationship, relationship_alias) VALUES (NOW(), '1', '1', '$final_contact_id', '', '$final_property_id', '', '$final_task_id', '', '', '')");
}
}
}
}
}
正如您所看到的,我设计了代码来搜索带有'trail'表的所有行,并匹配'category'和'set_name'并将它们提交到'task'表中(我还有一个'链接' '我用来将联系人连接到任务的表。)
我收到的错误非常奇怪。例如,如果特定路径中有5个任务。它只会输入4个。如果它是一组两个,它通常会输入它们。
我已经废弃了数据库,假设错误来自'category'或'set_names'中的miss类型,但它们都是相同的。该bug没有任何模式,只是随机跳过某些行。