我构造了一个从复选框中获取信息的数组。这工作正常,但是我需要第二个输入,其中第二个表的 id 放在数组数据旁边。例如,当用户向我的 php 表单输入数据时,它会在一个表上生成一个 id,而我的复选框则保存到第二个表。我希望当用户选中复选框时,id被放置在这里。我遇到的问题是我不知道把这些数据放在哪里。
$insertSQL2 = "INSERT INTO Project_course (Proj_id Cour_id) SELECT Course_id FROM courses WHERE
Code IN (";
foreach ($_POST['CheckboxGroup1'] as $Q){
$Q = mysql_real_escape_string($Q);
$insertSQL2.= "'$Q', ";
}
$insertSQL2 = rtrim($insertSQL2, ", ");
$insertSQL2 .= ")";
Proj_id是 id 需要去的地方,而Cour_id是保存复选框的位置。除此之外,它需要同时发生,因为 mysql 表中的关系意味着一列不能为空。
我知道这是冗长的,所以任何帮助都会被感激地接受
如果我正确理解您的问题,表格首先保存项目数据,然后 - 与该项目相关的一些课程数据。
顺便说一句 - 我建议的第一件事是保留纯 mysql_* 函数以支持 PDO。但这是题外话。
无论如何 - 首先你可能会运行类似的东西
$sql = "INSERT INTO project (col1, col2) VALUES (blah1, blah2)";
mysql_query($sql)
然后,您只需调用即可检查新项目 ID
$projectID = mysql_insert_id();
然后像这样
foreach ($_POST['CheckboxGroup1'] as $key => $val)
{
$_POST['CheckboxGroup1'][$key] = mysql_real_escape_string($val);
}
$sql = "INSERT INTO project_course(project_id, course_id) SELECT ".$projectID.", course_id FROM courses WHERE code IN (".implode(", ", $_POST['CheckboxGroup1']).")";
更新 - 如果项目表中已有项目,则可以通过多种方式获取项目 ID。例如,通过使用 SELECT project_id FROM project ORDER BY project_id DESC LIMIT 1
.