php如何在当前表输入数据,同时另外一张表指定字段插入关联数据?

代码如下:两张表如下,需要再dd表中插入p_id之后再cg表中增加p_id,同时把sorder_qty的数值同步到cg表的cg_qty中去。dd表+-----------... 代码如下:

两张表如下,需要再dd表中插入p_id之后再cg表中增加p_id,同时把sorder_qty的数值同步到cg表的cg_qty中去。

dd表
+-----------+-----------+---------------+------------+-----------+---------------+------+
| Sorder_id | Sorder_ln | Sorder_des | Sorder_qty | Sorder_up | Sorder_amount | P_id |
+-----------+-----------+---------------+------------+-----------+---------------+------+
| 6 | 1 | torque wrench | 6 | 200.00 | 1200.00 | 3 |
| 7 | 1 | ground tester | 1 | 25000.00 | 25000.00 | 4 |
+-----------+-----------+---------------+------------+-----------+---------------+------+
cg表
+-------+-------+--------------+--------+--------+-----------+------+
| cg_id | cg_ln | cg_des | cg_qty | cg_up | cg_amount | P_id |
+-------+-------+--------------+--------+--------+-----------+------+
| 1 | 1 | | 5 | 150.00 | 0.00 | 1 |
| 2 | 1 | | 10 | 150.00 | 150.00 | 1 |
+-------+-------+--------------+--------+--------+-----------+------+

代码如下,field_1应该是cg表的P_id, new_value_field_1的正确写法是什么,我试了很多,只能在cg表中增加一条空白数据而已,应该是new_value_field_1的写法不正确,请各位帮帮忙。。。

/**
* Insert a record on another table
*/

// SQL statement parameters
$insert_table = 'my_table'; // Table name
$insert_fields = array( // Field list, add as many as needed
'field_1' => "'new_value_field_1'",
'field_2' => "'new_value_field_2'",
);

// Insert record
$insert_sql = 'INSERT INTO ' . $insert_table
. ' (' . implode(', ', array_keys($insert_fields)) . ')'
. ' VALUES (' . implode(', ', array_values($insert_fields)) . ')';

sc_exec_sql($insert_sql);
展开
 我来答
abccccaf
2017-12-20 · TA获得超过845个赞
知道小有建树答主
回答量:912
采纳率:86%
帮助的人:259万
展开全部

你的 dd 表数据插入成功后获取刚才用于插入的数据再新组装一个 SQL 添加进cg表,你写的太复杂了。

/**
 *  dd 表所有字段
 *
 *  Sorder_id
 *  Sorder_ln
 *  Sorder_des 
 *  Sorder_qty 
 *  Sorder_up 
 *  Sorder_amount 
 *  P_id 
 */
 
 function fields ($data) {
     // 组装你的 keys 和 values 
   $keys = '';
   $values = '';
   foreach ($data AS $key => $value) {
     $keys .= $key . ',';
     $values .= '\'' . $value . '\',';
   }
   return [
       'keys' => preg_replace('/,$/', '', $keys),
     'values' => preg_replace('/,$/', '', $values),
   ];
 }
 
 // 数据数组(dd 表)
 $data = [
   'Sorder_id' => 'Sorder_id',
   'Sorder_ln' => 'Sorder_ln',
   'Sorder_des ' => 'Sorder_des',
   'Sorder_qty' => 'Sorder_qty',
   'Sorder_up' => 'Sorder_up',
   'Sorder_amount' => 'Sorder_amount',
   'P_id' => 'P_id',
 ];
 
 $result = fields($data);
 $sql = "INSERT INTO tablename (" . $result['keys'] . ") VALUES (" . $result['values'] . ")";
 echo $sql; // 插入
 
 
 
 // cg 表的数据数组
 $dataCg = [
   'cg_id' => 'cg_id', 
   'cg_ln' => 'cg_ln',
   'cg_des' => 'cg_des',
   'cg_qty' => $data['Sorder_qty'], // 同步 dd 表中的 sorder_qty
   'cg_up' => 'cg_up',
   'cg_amount' => 'cg_amount',
   'P_id' => $data['P_id'],         // 同步 dd 表中的 P_id
 ];
 
 $result = fields($dataCg);
 $sql = "INSERT INTO tablename (" . $result['keys'] . ") VALUES (" . $result['values'] . ")";
 echo $sql;   // cg 表插入
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式