php - 如何动态重命名数组键以便该键可以用作表中的主键?

标签 php mysql arrays

我正在使用此工具动态创建数组。

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 位数产品代码?另外,当我上传数组时,如何跳过数据库中已存在的值组合,这样我就不会拥有具有相同配置的两个不同产品代码。

最佳答案

  1. 停止弄清楚如何通过获取记录序列中的下一个 id 来生成唯一的数组 id。你将会在并发方面遇到很大的麻烦。将您的 ID 字段更改为自动增量并让 DBMS 处理它。

  2. products 表的colorsize 属性创建UNIQUE 约束。然后,当您插入时使用 INSERT ... ON DUPLICATE UPDATE语法,因此您永远不会拥有具有相同属性的产品。

关于php - 如何动态重命名数组键以便该键可以用作表中的主键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7902050/

相关文章:

php - 在购物车 Woocommerce 中添加产品简短描述

十六进制字符串上的Mysql max

mysql - 如何从表中删除外键?

mysql - 连接表的条件比引用条件更快

c - 将文本文件扫描到数组中?

php - 在 php 中查询下拉列表中的选定项目

php - 2 个并发 AJAX 上的 CodeIgniter $this->session->set_userdata()

javascript - ExtJS GridPanel 整行单击

javascript - 如何将数组元素附加到div?

c - 两个数组中两个元素的最小总和,使得索引不相同