Here's my issue:
I have a script which is parsing data from csv file (comma separated value) and inserting it to a mySQL database:
<?
$link = mysql_connect('xxxx','xxxx', 'xxxxx')
or die("Could not connect");
mysql_select_db('ngcomputers')
or die("Could not select database");
$code = file_get_contents("pl.csv",TRUE);
$masiv = preg_split("#\\n#i",$code);
###### ot main board do cpu #######
foreach ($masiv as $k=>$val){
if (eregi("^ ,", $val)) {
unset($masiv[$k]);
}
if (eregi("\*\*\*\*\* MAIN BOARD \*\*\*\*\*", $val)) {
$start_element=$k;
}
if (eregi("\*\*\*\*\* CPU \*\*\*\*\*", $val)) {
$end_element=$k;
}
}
for ($i=$start_element+1; $i<$end_element-1; $i++){
$new[]=explode(",", $masiv[$i]);
}
foreach ($new as $k=>$v) {
$q = "INSERT INTO `mainboard` VALUES ('".mysql_escape_string($v[0])."', '".mysql_escape_string($v[1])."', '".mysql_escape_string($v[2])."', '".mysql_escape_string($v[3])."')";
mysql_query($q);
echo $q ."<br>\n";
}
echo "<br>";
###### END ot main board do cpu #######
###### ot cpu do fan#######
foreach ($masiv as $k=>$val){
if (eregi("^ ,", $val)) {
unset($masiv[$k]);
}
if (eregi("\*\*\*\*\* CPU \*\*\*\*\*", $val)) {
$start_element=$k;
}
if (eregi("\*\*\*\*\* FAN \*\*\*\*\*", $val)) {
$end_element=$k;
}
}
for ($i=$start_element+1; $i<$end_element-1; $i++){
$new[]=explode(",", $masiv[$i]);
}
foreach ($new as $k=>$v) {
$q = "INSERT INTO `cpu` VALUES ('".mysql_escape_string($v[0])."', '".mysql_escape_string($v[1])."', '".mysql_escape_string($v[2])."', '".mysql_escape_string($v[3])."')";
mysql_query($q);
echo $q ."<br>\n";
}
print_r ($i);
###### END ot cpu do fan#######
?>
The .csv file looks like:
** MAIN BOARD , , ,
INTEL D915PGNL/915P/BULK,106.00,110.00,114.00,
INTEL SE7505VB2/DUAL XEON,390.00,405.00,420.00,
INTEL SE7525GP2/DUAL XEON,401.00,416.00,431.00,
, , ,
CPU , , ,
ATHLON64 3400+/2.2G/1M CACHE,255.00,265.00,274.00,
ATHLON64 3000+ /BOX /S939,180.00,187.00,194.00,
ATHLON64 3500+ /BOX /S939,320.00,332.00,344.00,
AMD OPTERON 240/1M CACHE/S940,251.00,261.00,270.00,
AMD ATHLON/T-BIRD 900,60.00,62.00,64.50,
, , ,
FAN **
But when I execute the script it goes this
INSERT INTO mainboard VALUES ('INTEL D915PGNL/915P/BULK', '106.00', '110.00', '114.00')
INSERT INTO mainboard VALUES ('INTEL SE7505VB2/DUAL XEON', '390.00', '405.00', '420.00')
INSERT INTO mainboard VALUES ('INTEL SE7525GP2/DUAL XEON', '401.00', '416.00', '431.00')
INSERT INTO cpu VALUES ('INTEL D915PGNL/915P/BULK', '106.00', '110.00', '114.00')
INSERT INTO cpu VALUES ('INTEL SE7505VB2/DUAL XEON', '390.00', '405.00', '420.00')
INSERT INTO cpu VALUES ('INTEL SE7525GP2/DUAL XEON', '401.00', '416.00', '431.00')
INSERT INTO cpu VALUES ('ATHLON64 3400+/2.2G/1M CACHE', '255.00', '265.00', '274.00')
INSERT INTO cpu VALUES ('ATHLON64 3000+ /BOX /S939', '180.00', '187.00', '194.00')
INSERT INTO cpu VALUES ('ATHLON64 3500+ /BOX /S939', '320.00', '332.00', '344.00')
INSERT INTO cpu VALUES ('AMD OPTERON 240/1M CACHE/S940', '251.00', '261.00', '270.00')
INSERT INTO cpu VALUES ('AMD ATHLON/T-BIRD 900', '60.00', '62.00', '64.50')
As you can see the firs rows duplicates in the second insert (the red ones)..... where's the problem? 🙁 How should I fix this ...? Any ideas ..Any help will be appritiated . 🙂
Thanks in advance!