MySQL PHP ID 从表到另一个表


MySQL PHP id from on table to another

我构造了一个从复选框中获取信息的数组。这工作正常,但是我需要第二个输入,其中第二个表的 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 .