Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL PHP id从一个表到另一个表_Php_Mysql - Fatal编程技术网

MySQL PHP id从一个表到另一个表

MySQL PHP id从一个表到另一个表,php,mysql,Php,Mysql,我构建了一个数组,从复选框中获取信息。这很好,但是我需要第二个输入,第二个表的id放在数组数据旁边。例如,当用户向我的php表单输入数据时,它会在一个表上生成一个id,而我的复选框会保存到另一个表中。我想当用户选中复选框时,id会放在这里。我的问题是,我不知道该把这些数据放在哪里 $insertSQL2 = "INSERT INTO Project_course (Proj_id Cour_id) SELECT Course_id FROM courses WHERE Code IN (";

我构建了一个数组,从复选框中获取信息。这很好,但是我需要第二个输入,第二个表的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)
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']).")";
然后,只需调用

$projectID =  mysql_insert_id();
然后像

$sql = "INSERT INTO project (col1, col2) VALUES (blah1, blah2)";
mysql_query($sql)
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。例如,通过使用
按项目id描述限制1从项目订单中选择项目id

可以指定“项目id”的来源吗?您的代码仅显示如何构造查询以插入该数据与您所谈论的复选框之间的关系,而不显示该数据来自何处?这是另一个插入查询吗?表格上的数据?没错。请向我们提供表结构(当然只有基本字段)和表单结构(相同)。此表单允许用户输入数据,然后将数据保存到表项目中。复选框数据保存到表project_course中,从中获取链接到该复选框代码的id,并保存为cour_id。我希望proj_id链接到项目表,因此当cour_id列与其数据一起归档时,proj_id将获得项目表中最后一个条目的id。例如,当用户选中所有4个复选框时,cour_id将在单独的行中给出1 2 3 4,我希望这些将从proj_id列中的项目表中获得id感谢alot,很抱歉长时间没有响应。这很有效,只是需要修改一些代码。