Hallo,
die Schritte sind im Titel beschrieben:
1. csv Datei über Formular hochladen
2. csv Datei bearbeiten -> sprich eine Spalte einfügen mit immer dem selben Wert, der im Formular festgelegt wird
3. Daten importieren
Mein Code:
Habe jetzt einige Dinge bei denen ich mal Unterstützung oder Denkanstöße brauche:
1. Warum führt er auch wenn ich keine Datei zum hochladen einfüge den Import aus und nicht nur die Fehlermeldung?
2. Kann ich einfach so mit den Zeilen
bestimmen, dass er die Datei "bearbeitet" -> mir ist klar er bearbeitet die Datei nicht, sondern er ergänzt diese quasi.
3. Anscheinend kann ich es nicht so einfach
es werden nämlich nur leere Felder importiert und die anscheinend in einer endlosschleife...
die Schritte sind im Titel beschrieben:
1. csv Datei über Formular hochladen
2. csv Datei bearbeiten -> sprich eine Spalte einfügen mit immer dem selben Wert, der im Formular festgelegt wird
3. Daten importieren
Mein Code:
PHP-Code:
<h1>Import</h1>
<br />
<?
if(isset($_POST['check'])){
$check = $_POST['check'];
}else{
$check = "0";
}
/* Wenn check == 0 --> Uploadmenue zeigen */
if($check == 0){
?>
<table style="width:500px;" class="cmsView" cellpadding="3" cellspacing="1" border="0">
<tr><td class="bg_box_0" colspan="2">CSV-Import:</td></tr>
<tr>
<td style="width:150px;" class="bg_box_1">Shop:</td>
<td class="bg_box_2">
<!-- BEGIN Upload File -->
<form action="import.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="check" value="1" />
<select name="shop" size="1">
<option value="Shop">Shop</option>
</select>
</td>
</tr>
<tr>
<td class="bg_box_1">CSV-Datei auswählen:</td>
<td class="bg_box_2">
<input type="File" name="csv_import" value="" />
</td>
</tr>
<tr>
<td class="bg_box_1"> </td>
<td class="bg_box_2"">
<input type="submit" value="CSV-Daten jetzt einlesen" />
</form>
<!-- END Upload File -->
</td>
</tr>
</table>
<?php
}
/* Wenn check == 0 AND SHOP == empty AND Datei == empty --> Fehlermeldung */
if($check == 1 AND (empty($_POST['shop']) OR empty($_POST['csv_import']))){
?>
FEHLERMELDUNG: Es wurde entweder kein Shop eingetragen oder Sie haben keine Datei eingespielt !!!
<?php
}
/* Wenn check == 1 --> Upload starten */
if($check == 1 AND (!empty($_POST['shop']) OR !empty($_POST['csv_import']))){
include('../inc/mysql.inc.php');
$db = mysql_connect($sql['host'],$sql['uid'],$sql['psw']) or die ("Keine Verbindung zu der Datenbank möglich.");
mysql_select_db($sql['db'], $db);
$fp = fopen($_POST['csv_import'], "r");
define("Shop", $_POST['shop']);
define("ProductId", 0);
define("ProgramId", 1);
define("MerchantProductNumber", 2);
define("ProductName", 3);
define("ProductPrice", 4);
define("ProductLongDescription", 5);
define("Status", 6);
define("MerchantProductCategory", 7);
define("ZanoxProductCategory", 8);
define("ImageSmallURL", 9);
define("ImageMediumURL", 10);
define("ProductManufacturerBrand", 11);
define("ZanoxProductLink", 12);
define("ZanoxProductCategoryNumber", 13);
define("MerchantProductCategoryNumber", 14);
define("DeliveryTime", 15);
define("TermsOfContract", 16);
define("ProductEAN", 17);
define("ProductPriceOld", 18);
define("CurrencySymbolOfPrice", 19);
define("UpdateDate", 20);
define("ValidFromDate", 21);
define("ValidToDate", 22);
define("ProductShortDescription", 23);
define("ImageLargeURL", 24);
$query = "INSERT INTO xxx
(Shop,
ProductId,
ProgramId,
MerchantProductNumber,
ProductName,
ProductPrice,
ProductLongDescription,
Status,
MerchantProductCategory,
ZanoxProductCategory,
ImageSmallURL,
ImageMediumURL,
ProductManufacturerBrand,
ZanoxProductLink,
ZanoxProductCategoryNumber,
MerchantProductCategoryNumber,
DeliveryTime,
TermsOfContract,
ProductEAN,
ProductPriceOld,
CurrencySymbolOfPrice,
UpdateDate,
ValidFromDate,
ValidToDate,
ProductShortDescription,
ImageLargeURL) VALUES ";
$cc=0;
while( !feof($fp) ) {
$zeile = fgetcsv ( $fp , 4096 , ";" );
if ($cc>0) {
$values = " ('".mysql_real_escape_string($zeile[Shop])."',
'".mysql_real_escape_string($zeile[ProductId])."',
'".mysql_real_escape_string($zeile[ProgramId])."',
'".mysql_real_escape_string($zeile[MerchantProductNumber])."',
'".mysql_real_escape_string($zeile[ProductName])."',
'".mysql_real_escape_string($zeile[ProductPrice])."',
'".mysql_real_escape_string($zeile[ProductLongDescription])."',
'".mysql_real_escape_string($zeile[Status])."',
'".mysql_real_escape_string($zeile[MerchantProductCategory])."',
'".mysql_real_escape_string($zeile[ZanoxProductCategory])."',
'".mysql_real_escape_string($zeile[ImageSmallURL])."',
'".mysql_real_escape_string($zeile[ImageMediumURL])."',
'".mysql_real_escape_string($zeile[ProductManufacturerBrand])."',
'".mysql_real_escape_string($zeile[ZanoxProductLink])."',
'".mysql_real_escape_string($zeile[ZanoxProductCategoryNumber])."',
'".mysql_real_escape_string($zeile[MerchantProductCategoryNumber])."',
'".mysql_real_escape_string($zeile[DeliveryTime])."',
'".mysql_real_escape_string($zeile[TermsOfContract])."',
'".mysql_real_escape_string($zeile[ProductEAN])."',
'".mysql_real_escape_string($zeile[ProductPriceOld])."',
'".mysql_real_escape_string($zeile[CurrencySymbolOfPrice])."',
'".mysql_real_escape_string($zeile[UpdateDate])."',
'".mysql_real_escape_string($zeile[ValidFromDate])."',
'".mysql_real_escape_string($zeile[ValidToDate])."',
'".mysql_real_escape_string($zeile[ProductShortDescription])."',
'".mysql_real_escape_string($zeile[ImageLargeURL])."' )";
echo $query.$values."<br>";
mysql_unbuffered_query($query.$values) or die(mysql_error());
}
$cc++;
}
}
?>
1. Warum führt er auch wenn ich keine Datei zum hochladen einfüge den Import aus und nicht nur die Fehlermeldung?
2. Kann ich einfach so mit den Zeilen
PHP-Code:
...
define("Shop", $_POST['shop']);
define("ProductId", 0);
...
3. Anscheinend kann ich es nicht so einfach

Kommentar