我正在尝试找出一种方法来创建一个基于Web的表,其中包含从多个Excel电子表格中获取的合并信息。目前我们在excel中执行Vlookup函数,并将所需的字段与给定的值匹配。例如:
产品ABC需要以下信息:
SKU RSP 成本 已售出数量 数量有限 ..等
这些相应值中的每一个都存储在不同的Excel表中,因此表1将具有产品ABC,SKU和RSP;表2 SKU,COST,QTY SOLD等...所有电子表格之间的共同因素是SKU编号。
基本上我们希望能够将产品ABC与相应的sku,成本等相匹配。
问题是,我该怎么做呢?我理解调用变量的php方面,但我认为我面临的最大挑战是构建数据库(可以是MSSQL或MYSQL)。关于如何设置数据库的任何想法?
更新
感谢您的回复,这些链接非常有用!如何有效地使用主键和外键来确保它的工作原理。如果我有一个名为“合并”的表的最终结果,我怎样才能确保该表拉出正确的行并匹配它们? skus没有任何特定的顺序,所以sql会自动知道哪些与其定义的PK / FK相匹配?
table 1 table2 table 3 consolidated table
SKU SKU SKU SKU RSP STATUS
QTY RSP COST QTY COST
DES QTY-SOLD STATUS DES QTY SOLD
答案 0 :(得分:1)
首先,您需要PHP来阅读您的Excel文件。
你可以做两件事:
我建议你制作一个空的数据库表,其中你的产品的所有英特尔都是colums(所以你输入的所有内容),以SKU编号作为索引。
如果您使用csv,则可以使用:http://www.daniweb.com/web-development/php/threads/119197
如果您想进行批量上传,我会在扫描服务器上的所需文件夹时使用循环。
当你导入时,你需要询问mySQL你的产品是否已经存在,如果是这样的话:UPDATE,否则,INSERT IN到你创建的表中:
if(mysql_num_rows("SELECT SKU FROM yourtable WHERE SKU = $sku") == 1) {
$result = mysql_query("UPDATE yourtable SET cost = $cost, in_stock = $in_stock WHERE SKU=$sku) OR die(mysql_error());
} else {
$result = mysql_query("INSERT INTO yourtable (SKU, cost, in_stock) VALUES ($sku, $cost, $in_stock) OR die(mysql_error());
}
之后你可以根据需要随意选择,更新,计算......,最好查看更多英特尔参考指南(http://dev.mysql.com)
更新到已发布的更新
比较不同的表很容易,但您首先需要了解SQL JOIN概念。你可以在这里查看所有内容:http://mysqljoin.com/
'JOIN'(可能是INNER JOIN)会比较你想要的键上的表格,并给出这个键的组合结果。之后,您可以在新表中插入所有内容。
答案 1 :(得分:0)
您需要研究数据规范化。这个概念已经存在多年,并且有很好的记录和思考。这是一个介绍: