Ich lese .csv Datei über PHP mit fgetcsv(). Jetzt kann ich meine Lesedaten aus der CSV-Datei holen. Dann muss ich überprüfen, SKU-Spalte mit meinem fetch-Ergebnis & entsprechend entweder Insertion oder Updation durchführen müssen. Angenommen, die SKU ist dort bereits vorhanden, dann muss ich meine Zeile in der Tabelle aktualisieren, sonst muss ich einen neuen Datensatz einfügen. Ich habe Code schreiben folgende ... Plz n check me sagen, wo ich mistake- tue:Wie man einzelne Reihe/Daten von Mysql_fetch_array holt?
<?php
$row = 1;
if (($handle = fopen("localhost/data/htdocs/magento/var/import/Price.csv", "r")) !== FALSE)
{
while (($data = fgetcsv($handle, 8000, ",")) !== FALSE)
{
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
for ($c=0; $c < $num; $c++)
{
$temp = $data;
$string = implode(";", $temp);
}
$pieces = explode(";", $string);
$col1 = $pieces[0];
$col2 = $pieces[1];
$col3 = $pieces[2];
$col4 = $pieces[3];
$db_name = "magento";
$con = mysql_connect("localhost", "magento", "password");
If (!$con)
{
die('Could not connect: ' . mysql_error());
mysql_close($con);
}
$seldb = mysql_select_db($db_name, $con);
$query_fetch = "SELECT `sku` from `imoprt_prices`";
$result_fetch = mysql_query($query_fetch);
$num_rows = mysql_num_rows($result_fetch);
for($i = 0; $i < $num_rows; $i++)
{
$value = mysql_result($result_fetch, i, 'sku');
if(strcmp('".$value."', '".$col2."') == 0)
{
$flag = 1;
break;
}
else
{
$flag = 0;
break;
}
}
if($flag == 1)
{
$query_upadte = "(UPDATE imoprt_prices SET customer_id= '".$col1."', sku ='".$col2."', price= '".$col3."', website= '".$col4."'
)";
mysql_query($query_upadte);
$row++;
}
if($flag == 0)
{
mysql_query("INSERT INTO `imoprt_prices`(`customer_id`,`sku`,`price`,`website`) VALUES('".$col1."','".$col2."','".$col3."','".$col4."')");
$row++;
}
}
}
?>
Haben Sie einen eindeutigen Index für SKU, um Dubletten zu vermeiden? Oder wäre es möglich, einen hinzuzufügen? –
SKU ist einzigartig ... deshalb müssen für vorhandene SKUs aktualisiert werden. – Prat
Was ist der Fehler, den Sie erhalten, wenn Sie es ausführen? – Rocky