从两个表中选择数据,并将其插入新表中?(SQL/PHP)
几天来,我一直在尝试以下内容:我有一个HTML表单。收到数据(MENGE/PRODUKT/LIEFERANT)后,我想将数据插入表“bestellung”。为此,我需要两个不同表中的两个不同数据点:WARE表中的Waren_ID和kunde_lieferant表中的kunde_lieferant_ID 每次我尝试这个,我都会得到一个新的错误,无论是什么形式(语法,…)。我读过几十篇堆栈溢出的帖子,但没有一篇帮过我。如果有人能给我一个提示就好了:-)从两个表中选择数据,并将其插入新表中?(SQL/PHP),php,sql,mysqli,Php,Sql,Mysqli,几天来,我一直在尝试以下内容:我有一个HTML表单。收到数据(MENGE/PRODUKT/LIEFERANT)后,我想将数据插入表“bestellung”。为此,我需要两个不同表中的两个不同数据点:WARE表中的Waren_ID和kunde_lieferant表中的kunde_lieferant_ID 每次我尝试这个,我都会得到一个新的错误,无论是什么形式(语法,…)。我读过几十篇堆栈溢出的帖子,但没有一篇帮过我。如果有人能给我一个提示就好了:-) 添加MYSQLI\u ASSOC作为MYSQL
添加
MYSQLI\u ASSOC
作为MYSQLI\u fetch\u array()
的第二个参数,以使用键名而不是整数索引号:
$rs=mysqli\u fetch\u数组($speichen)代码>变成$rs=mysqli_fetch_数组($speichen,mysqli_ASSOC)代码>
及
$ts=mysqli\u fetch\u数组($result)代码>变成$ts=mysqli\u fetch\u数组($result,mysqli\u ASSOC)代码>
您还可以使用$rs=mysqli\u fetch\u assoc($speichen)代码>和$rs=mysqli_fetch_assoc($speichen)
通过键名而不是索引访问关联数组。insert语句中的一个潜在问题是,您没有单引号引用要传递给MySQL的值:这意味着它们都是数字的(例如,是«Menge»数字的吗?)
为了避免这种情况并防止代码被SQL注入,您可能应该使用参数化查询
通过更全面地查看您的代码,我认为您应该能够在单个INSERT…SELECT语句中实现所需的功能,如:
INSERT INTO bestellung
SELECT
:menge,
w.Waren_ID,
k.kunde_lieferant_ID
FROM
ware w
INNER JOIN kunde_lieferant k
ON k.Name = :lieferant
WHERE w.Name = :produkt
回应您的$Menge、$Produkt、$Lieferant和$final查询。。。在mysql门户上复制该查询并尝试执行
INSERT INTO bestellung
SELECT
:menge,
w.Waren_ID,
k.kunde_lieferant_ID
FROM
ware w
INNER JOIN kunde_lieferant k
ON k.Name = :lieferant
WHERE w.Name = :produkt