从数组获取 ID 并 POST 加入 table
GET ID from an array and POST to JOIN table
我有 3 个 table 与连接链接所以我的想法是我有一个数组作为我的表单的一部分,它列出了我的所有类别形成我的 cat_list table:
<input type="checkbox" value="<?php echo $cat["cat_id"]; ?>" name="cat_no[$cat]"><?php echo $cat["cat_title"]; ?></a><br>
所以我正在遍历我的 cat_list 并向他们展示,如果我对这些做 var_dump 我得到这个:
array(2) { ["cat_id"]=> string(1) "1" ["cat_title"]=> string(11) "Consumables" }
array(2) { ["cat_id"]=> string(1) "3" ["cat_title"]=> string(12) "Service Desk" }
array(2) { ["cat_id"]=> string(1) "4" ["cat_title"]=> string(14) "Solutions Team" }
array(2) { ["cat_id"]=> string(1) "5" ["cat_title"]=> string(7) "@Remote" }
array(2) { ["cat_id"]=> string(1) "6" ["cat_title"]=> string(12) "new test cat" }
这很好,但我需要做的是获取我选择的任何一个的 ID,然后 post 将它们添加到我的连接 table 中,如下所示:
`cat_doc_link_table` (
`id` int(11) NOT NULL,
`link_cat_id` int(11) NOT NULL,
`link_doc_id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=
8 ;
我获取所有 cat_list 来创建这样的循环:
<?php
try{
// Selecting entire row from cat_list table
$results = $dbh->query("SELECT cat_id, cat_title FROM cat_list");
}catch(Exception $e) {
echo $e->getMessage();
die();
}
$cat = $results->fetchAll(PDO::FETCH_ASSOC);
?>
我对 post 的操作脚本如下所示:
<?php
include 'db_con.php';
try {
$dbh = new PDO("mysql:host=$hostname;dbname=dashboardr",$username,$password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // <== add this line
$sql = "UPDATE doc_list SET doc_title = :doc_title, doc_content = :doc_content, doc_updated=CURRENT_TIMESTAMP WHERE doc_id = :doc_id";
$query = $dbh->prepare($sql);
$query->execute(array(":doc_title"=>$_POST["doc_title"],":doc_content"=>$_POST["doc_content"], ":doc_id"=> $_POST["doc_id"]));
if ($query) {
header ('Location: ../docList.php');
}
else{
}
$dbh = null;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
?>
$SQL = "INSERT INTO `cat_doc_link_table`(`link_cat_id`, `link_doc_id`) VALUES";
$values = "";
$params = [];
$docId = $_POST["doc_id"];
foreach($cat_list as $cat)
{
$values.= "(?, ?), ";
$params[] = $cat["cat_id"];
$params[] = $docId;
}
$values = substr($values, 0, -2);
$SQL.= $values;
$query = $dbh->prepare($SQL);
$query->execute($params);
您首先在其中循环遍历您的类别,然后创建一个 VALUES 字符串 ($values.=
)。然后,我们将参数绑定到 ?标记 ($params[] = $cat["cat_id"];
)。最后,我们执行查询。
我有 3 个 table 与连接链接所以我的想法是我有一个数组作为我的表单的一部分,它列出了我的所有类别形成我的 cat_list table:
<input type="checkbox" value="<?php echo $cat["cat_id"]; ?>" name="cat_no[$cat]"><?php echo $cat["cat_title"]; ?></a><br>
所以我正在遍历我的 cat_list 并向他们展示,如果我对这些做 var_dump 我得到这个:
array(2) { ["cat_id"]=> string(1) "1" ["cat_title"]=> string(11) "Consumables" }
array(2) { ["cat_id"]=> string(1) "3" ["cat_title"]=> string(12) "Service Desk" }
array(2) { ["cat_id"]=> string(1) "4" ["cat_title"]=> string(14) "Solutions Team" }
array(2) { ["cat_id"]=> string(1) "5" ["cat_title"]=> string(7) "@Remote" }
array(2) { ["cat_id"]=> string(1) "6" ["cat_title"]=> string(12) "new test cat" }
这很好,但我需要做的是获取我选择的任何一个的 ID,然后 post 将它们添加到我的连接 table 中,如下所示:
`cat_doc_link_table` (
`id` int(11) NOT NULL,
`link_cat_id` int(11) NOT NULL,
`link_doc_id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=
8 ;
我获取所有 cat_list 来创建这样的循环:
<?php
try{
// Selecting entire row from cat_list table
$results = $dbh->query("SELECT cat_id, cat_title FROM cat_list");
}catch(Exception $e) {
echo $e->getMessage();
die();
}
$cat = $results->fetchAll(PDO::FETCH_ASSOC);
?>
我对 post 的操作脚本如下所示:
<?php
include 'db_con.php';
try {
$dbh = new PDO("mysql:host=$hostname;dbname=dashboardr",$username,$password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // <== add this line
$sql = "UPDATE doc_list SET doc_title = :doc_title, doc_content = :doc_content, doc_updated=CURRENT_TIMESTAMP WHERE doc_id = :doc_id";
$query = $dbh->prepare($sql);
$query->execute(array(":doc_title"=>$_POST["doc_title"],":doc_content"=>$_POST["doc_content"], ":doc_id"=> $_POST["doc_id"]));
if ($query) {
header ('Location: ../docList.php');
}
else{
}
$dbh = null;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
?>
$SQL = "INSERT INTO `cat_doc_link_table`(`link_cat_id`, `link_doc_id`) VALUES";
$values = "";
$params = [];
$docId = $_POST["doc_id"];
foreach($cat_list as $cat)
{
$values.= "(?, ?), ";
$params[] = $cat["cat_id"];
$params[] = $docId;
}
$values = substr($values, 0, -2);
$SQL.= $values;
$query = $dbh->prepare($SQL);
$query->execute($params);
您首先在其中循环遍历您的类别,然后创建一个 VALUES 字符串 ($values.=
)。然后,我们将参数绑定到 ?标记 ($params[] = $cat["cat_id"];
)。最后,我们执行查询。