我正在使用此工具动态创建数组。
http://174.121.67.116/~achadire/aware5/product_options.php?cid=6
数组输出如下所示。
$data = array(
0 => array(
0 => 300,
3 => 186,
),
1 => array(
0 => 341,
3 => 186,
),
2 => array(
0 => 257,
3 => 186,
),
3 => array(
0 => 300,
3 => 360,
),
4 => array(
0 => 300,
3 => 187,
),
5 => array(
0 => 341,
3 => 360,
),
6 => array(
0 => 341,
3 => 187,
),
7 => array(
0 => 257,
3 => 360,
),
8 => array(
0 => 257,
3 => 187,
),
);
0 => 数组是乘积。 [0]=>300、[2]=>186 表示给定数组键的唯一产品配置。 (即蓝色、大。)(每个值都是一个属性的 ID。)
所以我想将结果上传到MySQL中的产品表中。这是我的问题:
首先,如何使我的数组 key 成为唯一的 7 位数产品代码。换句话说,如何使用唯一的 7 位代码重新索引数组,这样我就不会两次对数组使用相同的键。我认为这意味着找出 mysql 数据库中的下一个值,然后在推送到表之前使用 i++ 循环遍历数组。
其次,相同的配置只能应用于一种产品。因此,如果数组组合键已存在,则应跳到下一个数组。
简而言之,如何将我的阵列 key 转换为唯一的 7 位数产品代码?另外,当我上传数组时,如何跳过数据库中已存在的值组合,这样我就不会拥有具有相同配置的两个不同产品代码。
最佳答案
停止弄清楚如何通过获取记录序列中的下一个 id 来生成唯一的数组 id。你将会在并发方面遇到很大的麻烦。将您的 ID 字段更改为自动增量并让 DBMS 处理它。
对
products
表的color
和size
属性创建UNIQUE
约束。然后,当您插入时使用INSERT ... ON DUPLICATE UPDATE
语法,因此您永远不会拥有具有相同属性的产品。
关于php - 如何动态重命名数组键以便该键可以用作表中的主键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7902050/