我正在从 SQL 数据库获取结果并使用以下代码将其输出到 CSV...
while ($row = $results->fetch_assoc()) {
fputcsv($handle, array(
'admin',
'base',
'Default',
'simple',
'2',
$row['part_id'],
$row['part_id'],
$row['price'],
$row['list_price'],
$row['core'],
$row['weight'],
$row['height'],
$row['length'],
$row['width'],
$row['popularity'],
$row['qty'],
$row['description_line_two'],
$row['detailed_description'],
$row['note'],
$row['YearID'],
$row['MakeID'],
$row['ModelID'],
$row['aspiration'],
$row['bed_length'],
$row['bed_type'],
$row['body_num_doors'],
$row['body_type'],
$row['brake_abs'],
$row['brake_system'],
$row['cylinder_head_type'],
$row['drive_type'],
$row['engine_base'],
$row['engine_designation'],
$row['engine_version'],
$row['engine_vin'],
$row['fuel_delivery_type'],
$row['fuel_delivery_subtype'],
$row['fuel_system_design'],
$row['fuel_type'],
$row['mfr_body_code'],
$row['region'],
$row['steering_system'],
$row['steering_type'],
$row['submodel'],
$row['transmission_control_type'],
$row['transmission_num_speeds'],
$row['transmission_type'],
$row['valves_per_engine'],
$row['wheel_base']
));
}
在数据中,有几个实例,其中零件 ID 在几行中相同,而其他字段(如年份、品牌、型号)不同。我希望做的是整合数据。换句话说,如果两行或多行的 part_id 一致,我想将其他一些字段(例如年份、品牌、型号)合并到一行中。
也就是说,目前是这样的……
Part ID Year Make Model
0001 2013 Suzuki NA
0001 2012 Acura NA
0001 2011 Hyundai Elantra
我希望它像...
Part ID Year Make Model
0001 2013,2012,2011 Suzuki, Acura, Hyundai NA, Elantra
这有可能吗?如果是这样,我将如何着手去做?
如果有帮助的话,我愿意接受 QUERY 操作数据库中的数据,然后再获取它!
最佳答案
也许是这样的:
CREATE TEMPORARY TABLE tmp_table
SELECT 'admin' as custom1,'base' as custom2,part_id,year... etc
FROM original_table
WHERE 1;
然后你会想从那里选择你的东西,并将分组放在:
SELECT part_id, custom1, GROUP_CONCAT(year) as year
FROM tmp_table
WHERE 1
GROUP BY part_id
不确定结构或分组,但使用谷歌搜索和引用搜索应该可以填补空白。概念在那里,你要找的是MySQL的GROUP_CONCAT特性(http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html)
关于php - 获取数组 - 在 CSV 中合并一些结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17415232/