使用MySQL和PHP将数据分离到两个不同的数据库表中
我有一个产品提要,它多次列出服装项目,每种颜色和尺寸都列出一次使用MySQL和PHP将数据分离到两个不同的数据库表中,mysql,database,Mysql,Database,我有一个产品提要,它多次列出服装项目,每种颜色和尺寸都列出一次 ProductID Product Name Colour Size Price 1 Men's Board Shorts Blue S 4.99 1 Men's Board Shorts Blue M 4.99 1
ProductID Product Name Colour Size Price
1 Men's Board Shorts Blue S 4.99
1 Men's Board Shorts Blue M 4.99
1 Men's Board Shorts Blue L 5.99
1 Men's Board Shorts Red S 4.99
1 Men's Board Shorts Red M 4.99
1 Men's Board Shorts Red L 5.99
我有两张表:一张是名称和ID,另一张是每个产品的ID、颜色、尺寸和价格
在第一个表中,我只希望每个产品的名称出现一次,而不考虑不同尺寸和颜色的数量。在第二个表中,我希望产品的ID代码、尺寸和价格显示为每种不同的颜色
因此,我将得出以下数据:
Product Table
1 Men's Board Shorts
Options Table
1 Blue S 4.99
1 Blue M 4.99
1 Blue L 5.99
1 Red S 4.99
1 Red M 4.99
1 Red M 5.99
将大小分隔为单个记录而不是在一个字段中包含大小S、M、L的原因是,有时大型项目的价格与中小型项目的价格不同
有什么办法让我开始/指出正确的方向吗
谢谢…创建了两个表:
CREATE TABLE product (
id INT NOT NULL PRIMARY KEY,
name VARCHAR() NOT NULL
);
CREATE TABLE options (
product_id INT NOT NULL PRIMARY KEY,
color VARCHAR(30),
size VARCHAR(10),
price DECIMAL(10,2)
);
获取和插入表中的记录:
$result1 = mysql_fetch_assoc(mysql_query('SELECT * from ProductTemp GROUP BY ProductID', $conn));
$result2 = mysql_fetch_assoc(mysql_query('SELECT * from ProductTemp', $conn));
foreach( $result1 as $v ) {
$retval1 = mysql_query("INSERT INTO product VALUES('$v['ProductID']','$v['Product Name']')", $conn);
if(!$retval1) {
echo 'Could not enter data into table product: ' . mysql_error();
exit;
}
}
foreach( $result2 as $v ) {
$retval2 = mysql_query("INSERT INTO options VALUES('$v['ProductID']','$v['Color']','$v['Size']' , $v['Price'])", $conn);
if(!$retval2 ) {
echo 'Could not enter data into table options: ' . mysql_error();
exit;
}
}
第一张表:
CREATE TABLE IF NOT EXISTS `products` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) AUTO_INCREMENT=1 ;
INSERT INTO `products` (`name`) SELECT `p_name` FROM `source_table`;
第二张表:
CREATE TABLE IF NOT EXISTS `options` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`colour` varchar(12) NOT NULL,
`size` char(1) NOT NULL,
`price` float unsigned NOT NULL,
PRIMARY KEY (`id`)
) AUTO_INCREMENT=1 ;
INSERT INTO `options` (`colour`, `size`, `price`) SELECT `p_colour`, `p_size`, `p_price` FROM `source_table`;
我只希望我正确地理解了你的问题 不,我不想从这两个表中提取数据,我想将传入的数据分离并放入两个单独的表中。@PhilJames数据来自哪里?什么应用程序语言?是否从数据输入表单插入新产品?数据来自csv提要。我已经使用php将其输入mysql数据库。现在存储的传入数据是哪个表?当前存储在一个名为ProductTempYes的表中,我已经有了这些表,数据来自CSV提要。它当前使用PHP放入一个名为ProductTemp的表中。