1

我已经构建了一个从复选框获取信息的数组。这工作正常,但是我需要第二个输入,其中第二个表的 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 表中的关系意味着一列不能为空。

我知道这很啰嗦,所以任何帮助都将不胜感激

4

1 回答 1

2

如果我正确理解您的问题,表格首先保存项目数据,然后 - 一些与该项目相关的课程数据。

顺便说一句 - 我建议的第一件事是让纯 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.

于 2012-05-18T23:35:26.013 回答