Php 从表单和其他多个表向一个表中插入值
我有一个表单,有三个输入。两个下拉列表和一个文本输入。下拉列表在显示之前从我的数据库中填充。文本输入是来自用户的新数据。用户将向我的数据库添加新资产,但必须选择项目的制造商和类别 添加资产后,我希望更新资产表。我被困在如何使用表单数据和下拉列表中的现有值插入我的asset_names表中。我需要获取值和用户友好的单词,并从各自的数据库中选择相应的IDPhp 从表单和其他多个表向一个表中插入值,php,sql,pdo,Php,Sql,Pdo,我有一个表单,有三个输入。两个下拉列表和一个文本输入。下拉列表在显示之前从我的数据库中填充。文本输入是来自用户的新数据。用户将向我的数据库添加新资产,但必须选择项目的制造商和类别 添加资产后,我希望更新资产表。我被困在如何使用表单数据和下拉列表中的现有值插入我的asset_names表中。我需要获取值和用户友好的单词,并从各自的数据库中选择相应的ID INSERT INTO asset_names (asset_name, asset_category_id, asset_manufacture
INSERT INTO asset_names (asset_name, asset_category_id, asset_manufacturer_id, asset_status_id)
VALUES ( :newAssetName,
( SELECT category_id FROM asset_categories WHERE category_name=:newAssetCategory),
( SELECT manufacturer_id FROM manufacturers WHERE name=:newAssetManufacturer),
1)";
$stmt = $pdo->prepare( $sql );
//Bind value.
$stmt->bindValue( ':newAssetName', $newAssetName );
$stmt->bindValue( ':newAssetCategory', $newAssetCategory );
$stmt->bindValue( ':newAssetManufacturer', $newAssetManufacturer );
//Execute.
$stmt->execute();
如果我将值硬编码到语句变量中,那么语句就可以工作。现在变量几乎是空的 而不是使用子查询。只需将数据传递给DOM即可
<option value="<?php echo $id;?>"><?php echo $stringversion;?></option>
:新资产制造
!=<代码>:newAssetManufacturer@chris85,我修正了那个打字错误。好吧,那么现在这个代码会怎么样?它抛出了一个错误?插入错误的数据?为什么子查询只需将id作为选项的值放入表单中。@chris85,发生的情况是,当我提交表单时,字段被插入到数据库中,但变量:newAssetCategory和:newAssetManufacturer的值被输入为0。我不确定0来自哪里。我之所以使用select语句,是因为我需要从下拉列表中获取字符串,并使用它们来查找各自的行ID。我已经根据自动递增的行ID创建了表键。为什么需要将值设置为字符串而不是整数?
"INSERT INTO asset_names (asset_name, asset_category_id, asset_manufacturer_id, asset_status_id)
VALUES ( :newAssetName,
:newAssetCategory),
:newAssetManufacturer),
1)";
$stmt = $pdo->prepare( $sql );
//Bind value.
$stmt->bindValue( ':newAssetName', $newAssetName );
$stmt->bindValue( ':newAssetCategory', $newAssetCategory );
$stmt->bindValue( ':newAssetManufacturer', $newAssetManufacturer );