我有三个表checklists
,checklist_items
和checklist_item_types
。我想在我的预定工作中为INSERT
中符合条件(checklist_items
列为checklist_item_types
)中的每个记录,is_active
中的记录true
。 / p>
这是我的checklists
桌子:
id checklist_date notes
1 "2018-07-23" "Fixed extra stuff"
2 "2018-07-24" "These are some extra notes"
3 "2018-07-25" "Notes notes"
这是我的checklist_items
表,数据减少了:
id checklists_id checklists_item_types_id is_completed
1 1 1 false
2 1 2 true
3 1 3 true
...
34 2 16 true
35 2 17 true
36 2 18 true
这是checklist_item_types
,数据减少了(例如,假设除15外,所有is_active
都是true
)
id description is_active
1 "Unlock Entrances" true
2 "Ladies Locker Room Lights" true
3 "Check Hot Tubs (AM)" true
...
15 "Water Softener Boiler Room" false
16 "Water Softener Laundry" true
17 "Check/Stock Fire Logs" true
18 "Drain Steam Lines (4 locations)" true
因此,当我的工作运行时,我希望checklist_items
得到17条新记录(18 checklist_item_types
减去1,因为它是false
的{{1}})。 / p>
作业运行一次后,“新” is_active
如下所示:
checklist_items
答案 0 :(得分:1)
您似乎想要insert . . . select
:
insert into checklist_items (checklists_id, checklists_item_types_id, is_completed)
select 3, cit.checklists_item_types_id, false
from checklist_item_types cit;
答案 1 :(得分:0)
我建议创建类以与数据库进行通信。这是提取所需的checklist_item_types的类的一部分。如您所见,您需要在database.php文件中使用另一个类“ DatabaseConn”来打开与数据库的连接。您将需要一些PHP代码来调用此函数,并且还需要将该函数添加到checklist_items表中。
<?php
require_once("model/database.php");
class checklist_item_types extends DatabaseConn
{
...
public function get_records_by_id_and_completed($starting_id, $is_completed) {
global $dbConn;
$sql = "SELECT * FROM checklist_item_types
WHERE id >= $starting_id AND is_completed = $is_completed";
try {
$statement = $dbConn->prepare($sql);
$statement->execute();
$result = $statement->fetchAll();
$statement->closeCursor();
return $result;
} catch (PDOException $e) {
echo $sql . "<br>" . $e->getMessage();
}
}
...
}
?>