PHP MySQL数组选择、从、从何处

PHP MySQL数组选择、从、从何处,php,mysql,arrays,Php,Mysql,Arrays,我试图获得一个系统,其中数组数据被更改为与另一个MySQL表上的条目ID相匹配。我是从PHP脚本的复选框中得到的 这是密码 $insertSQL2 = "INSERT INTO test (Testing) VALUES SELECT Course_id FROM courses WHERE Code IN "; foreach ($_POST['CheckboxGroup1'] as $Q){ $Q = mysql_real_escape_string($Q); $insert

我试图获得一个系统,其中数组数据被更改为与另一个MySQL表上的条目ID相匹配。我是从PHP脚本的复选框中得到的

这是密码

$insertSQL2 = "INSERT INTO test (Testing) VALUES SELECT Course_id FROM courses WHERE Code IN ";
foreach ($_POST['CheckboxGroup1'] as $Q){
    $Q = mysql_real_escape_string($Q);
    $insertSQL2.= "('$Q'), ";
} 
$insertSQL2 = rtrim($insertSQL2, ", ");
我可以在需要时获得原始数据输出。e、 g.选中四个复选框后,它们将以单独的行(我需要)放置在表中。但是,当我尝试将其更改为与代码匹配时(当复选框=表中的代码时,将放置id而不是代码),我得到以下错误

You have an error in your SQL syntax; check the manual that corresponds to your MySQL      
server version for the right syntax to use near 'SELECT Course_id FROM courses WHERE 
Code IN ('CNMD'), ('EEM')' at line 1

有人有任何可能的解决方案吗?

您必须使SQL语句看起来像:

SELECT Course_id FROM courses WHERE Code IN ('CNMD', 'EEM')
因此,您的PHP代码需要类似于:

$insertSQL2 = "INSERT INTO test (Testing) VALUES 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 .= ")";

INSERT
语句可以使用
VALUES
SELECT
语法。不是两者都有

你可能想要第二个:

INSERT INTO test (Testing) 
  SELECT Course_id 
  FROM courses 
  WHERE Code IN ('CNMD', 'EEM') ;

其中('value1'、'value2'、'value3')中的代码是它的外观,或者您可以将$Q添加到数组中,然后使用逗号分隔符内爆。您花费了数小时尝试不同的方法,第一次在该网站上发布。不敢相信这是因为价值观-选择。你真是个大人物谢谢