phpbar.de logo

Mailinglisten-Archive

[php] CSV-Datei nach MySQL: Neuerstellung oder Aktualisierung von =?iso-8859-1?Q?Datens=E4tzen?= =?iso-8859-1?Q?Datens=E4tzen?=

[php] CSV-Datei nach MySQL: Neuerstellung oder Aktualisierung von =?iso-8859-1?Q?Datens=E4tzen?= =?iso-8859-1?Q?Datens=E4tzen?=

Frank Gudenkauf frank_(at)_gudenkauf.de
Fri, 04 Aug 2000 20:38:28 +0200


Hallo Liste!

Ich stehe vor folgendem Problem:

Eine größere CSV-Datei soll eingelesen und zeilenweise in die Tabelle
artikel eingetragen werden. Neue Artikel werden eingefügt, bestehende
aktualisiert.

-------------

//***** Abarbeitung jeder Zeile der CSV-Datei *****
while ($data = fgetcsv ($fp, 1000, ";"))
{

...

//*****Prüfung, ob Artikel bereits vorhanden*****
$anweisungsid = mysql_query("SELECT artikelnr FROM artikel WHERE
(artikelnr=$data[0])");
//*****$data[0] ist das erste Feld der CSV-Zeile und enthält die
Artikelnr.*****

if ($zeile = mysql_fetch_object($anweisungsid)) // line 35
{
   $sql = <UPDATEANWEISUNG>
}
else 
{
   $sql = <INSERTANWEISUNG>
}
mysql_query("$sql");

}//while 

-------------

Wenn ich nun die 5825 Zeilen (Artikel) der CSV-Datei abarbeiten lasse,
wobei alle Artikel bereits in der Datenbank enthalten sind und somit nur
aktualisiert werden sollten, werden 5455 Artikel neu angelegt und 370
aktualisiert.
Nach 370 Zeilen funktioniert die Abfrage, ob der Artikel bereits
vorhanden ist, nämlich nicht mehr: Es wird 
<<Warning: 0 is not a MySQL result index in csv.php3 on line 35>>
ausgegeben und der Artikel via INSERT eingefügt.


Hat jemand eine Idee, wie ich dieses Problem lösen kann und auch größere
CSV-Dateien in die Datenbank einlesen kann?

Besten Dank

Frank


php::bar PHP Wiki   -   Listenarchive