CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |
12.04.2010, 09:58:22
|
Member
|
|
Registriert seit: Nov 2007
Beiträge: 843
|
|
AW: XML aus MySQL auslesen
Hi
Zitat:
Der neue Shop akzeptiert CSV Import oder eben MySQL.
|
Warum reden wir auf Seite 3 "noch" von Mysql import?
Erzeuge eine CSV und zeige deinem Kunden gleich wie er weitere Artikel aufnehmen kann.
Zitat:
Nur in die originale neue eigene Shop DB wird es nicht eingelesen
|
Was sagt mysql_error?
Zitat:
Ich kann aber bis jetzt keinen Unterschied zur eigentlichen Shop DB feststellen
|
Ich schon
Zitat:
Kann es so etwas wie einen Schreibschutz „von aussen“ geben? Dass vielleicht die Shopsoftware selbst schreiben kann, aber sonst eben nicht?
|
Ja aber eigentlich nicht beständig meines wissens nach, aber vielleicht läuft ein cron des shops der ab und zu sperrt und du hast genau diese momente getroffen ;)
http://dev.mysql.com/doc/refman/5.1/...l-locking.html
mfg
Ckaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
|
12.04.2010, 10:20:32
|
|
Anfänger
|
|
Registriert seit: Apr 2010
Alter: 57
Beiträge: 25
|
|
AW: XML aus MySQL auslesen
Von haus aus akzeptiert der Shop nur generischen CSV Import. Mir erschien das als Umweg. Wenn ich schon rumbasteln muss (XML Dateien auslesen) kann man das Ergebnis doch gleich in die DB einfügen. Da müssen die Daten doch rein. CSV Import ist ja nur noch ein Zwischenschritt mehr.
0:
Viele Grüße
Mario
|
12.04.2010, 13:44:01
|
|
Anfänger
|
|
Registriert seit: Apr 2010
Alter: 57
Beiträge: 25
|
|
AW: XML aus MySQL auslesen
Nun bekomme ich folgende Fehlermeldung beim Import in die originale Shop DB:
1062: Duplicate entry '' for key 'PRIMARY'
Der erste Artikel aus der XML Datei wird eingelesen und das wars.
Viele Grüße
Mario
|
12.04.2010, 13:57:46
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: XML aus MySQL auslesen
Zitat:
Zitat von atomicbunny
Nun bekomme ich folgende Fehlermeldung beim Import in die originale Shop DB:
1062: Duplicate entry '' for key 'PRIMARY'
Der erste Artikel aus der XML Datei wird eingelesen und das wars.
|
Wie sieht der aktuelle Code für den Import aus?
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
12.04.2010, 14:07:39
|
|
Anfänger
|
|
Registriert seit: Apr 2010
Alter: 57
Beiträge: 25
|
|
AW: XML aus MySQL auslesen
PHP-Code:
<?php
$filename = 'result_filtered.xml';
if(file_exists($filename)) {
$xml = simplexml_load_file($filename);
if($xml) {
$db = mysql_connect("localhost","root","root") or die ("Verbindung fehlgeschlagen");
mysql_select_db("xmltest",$db);
foreach($xml->content as $content) {
$artnr = $content->articleNr;
$name = $content->name;
$groesse = $content->groesse;
$pic = $content->pic;
$beschreibung = $content->text;
$preis = $content->preis;
$SQL_statement="INSERT INTO oxarticles (OXARTNUM,OXTITLE,OXUNITQUANTITY,OXPIC1,OXSHORTDESC,OXPRICE)
VALUES ('".$artnr."','".$name."','".$groesse."','".$pic."','".$beschreibung."','".$preis."')";
$resultset=mysql_query($SQL_statement);
}
echo mysql_errno() . ": " . mysql_error(). "\n";
mysql_close();
}
}
?>
|
12.04.2010, 14:25:26
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: XML aus MySQL auslesen
Ah ja, bevor Du Dein Srcipt startest leere Deine Tabelle. In der tabelle befinden sich (gem. Fehlermeldung) bereits Datensätze.
Arbeite bitte auch mit mysql_error(), nicht nur am Schluss des Scriptes. Zum Beispiel:
PHP-Code:
mysql_select_db("xmltest",$db) or die (mysql_error());
Es erleichtert die Fehlersuche.
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
12.04.2010, 14:33:37
|
|
Anfänger
|
|
Registriert seit: Apr 2010
Alter: 57
Beiträge: 25
|
|
AW: XML aus MySQL auslesen
Tabelle hatte ich schon mehrmals geleert. Bringt nichts.
War der mysql_error(). Eintrag weiter unten falsch?
Viele Grüße
Mario
|
12.04.2010, 14:54:32
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: XML aus MySQL auslesen
Laut der Ferhlermeldung hast Du einen doppelten Eintrag in der Tabelle (PRIMARY KEY). Deine Struktur von der Tabelle zeigt aber keinen Index.
Also mal die aktuelle Struktur und den aktuellen Code hier posten. Sonst wird es nur ein elendiges gestocher im Nebel. Zumal auch die Feldnamen nicht übereinstimmen.
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
12.04.2010, 15:15:26
|
|
Anfänger
|
|
Registriert seit: Apr 2010
Alter: 57
Beiträge: 25
|
|
AW: XML aus MySQL auslesen
Ok. Leere Tabelle oxarticles in DB „oxidtest“ :
Zitat:
CREATE TABLE `oxarticles` (
`OXID` char(32) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
`OXSHOPID` varchar(32) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL DEFAULT '',
`OXPARENTID` char(32) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL DEFAULT '',
`OXACTIVE` tinyint(1) NOT NULL DEFAULT '1',
`OXACTIVEFROM` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`OXACTIVETO` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`OXARTNUM` varchar(255) NOT NULL DEFAULT '',
`OXEAN` varchar(13) NOT NULL DEFAULT '',
`OXDISTEAN` varchar(13) NOT NULL DEFAULT '',
`OXTITLE` varchar(255) NOT NULL DEFAULT '',
`OXSHORTDESC` varchar(255) NOT NULL DEFAULT '',
`OXPRICE` double NOT NULL DEFAULT '0',
`OXBLFIXEDPRICE` tinyint(1) NOT NULL DEFAULT '0',
`OXPRICEA` double NOT NULL DEFAULT '0',
`OXPRICEB` double NOT NULL DEFAULT '0',
`OXPRICEC` double NOT NULL DEFAULT '0',
`OXBPRICE` double NOT NULL DEFAULT '0',
`OXTPRICE` double NOT NULL DEFAULT '0',
`OXUNITNAME` varchar(32) NOT NULL DEFAULT '',
`OXUNITQUANTITY` double NOT NULL DEFAULT '0',
`OXEXTURL` varchar(255) NOT NULL DEFAULT '',
`OXURLDESC` varchar(255) NOT NULL DEFAULT '',
`OXURLIMG` varchar(128) NOT NULL DEFAULT '',
`OXVAT` float DEFAULT NULL,
`OXTHUMB` varchar(128) NOT NULL DEFAULT '',
`OXICON` varchar(128) NOT NULL DEFAULT '',
`OXPIC1` varchar(128) NOT NULL DEFAULT '',
`OXPIC2` varchar(128) NOT NULL DEFAULT '',
`OXPIC3` varchar(128) NOT NULL DEFAULT '',
`OXPIC4` varchar(128) NOT NULL DEFAULT '',
`OXPIC5` varchar(128) NOT NULL DEFAULT '',
`OXPIC6` varchar(128) NOT NULL DEFAULT '',
`OXPIC7` varchar(128) NOT NULL DEFAULT '',
`OXPIC8` varchar(128) NOT NULL DEFAULT '',
`OXPIC9` varchar(128) NOT NULL DEFAULT '',
`OXPIC10` varchar(128) NOT NULL DEFAULT '',
`OXPIC11` varchar(128) NOT NULL DEFAULT '',
`OXPIC12` varchar(128) NOT NULL DEFAULT '',
`OXZOOM1` varchar(128) NOT NULL DEFAULT '',
`OXZOOM2` varchar(128) NOT NULL DEFAULT '',
`OXZOOM3` varchar(128) NOT NULL DEFAULT '',
`OXZOOM4` varchar(128) NOT NULL DEFAULT '',
`OXWEIGHT` double NOT NULL DEFAULT '0',
`OXSTOCK` double NOT NULL DEFAULT '-1',
`OXSTOCKFLAG` tinyint(1) NOT NULL DEFAULT '1',
`OXSTOCKTEXT` varchar(255) NOT NULL DEFAULT '',
`OXNOSTOCKTEXT` varchar(255) NOT NULL DEFAULT '',
`OXDELIVERY` date NOT NULL DEFAULT '0000-00-00',
`OXINSERT` date NOT NULL DEFAULT '0000-00-00',
`OXTIMESTAMP` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`OXLENGTH` double NOT NULL DEFAULT '0',
`OXWIDTH` double NOT NULL DEFAULT '0',
`OXHEIGHT` double NOT NULL DEFAULT '0',
`OXFILE` varchar(128) NOT NULL DEFAULT '',
`OXSEARCHKEYS` varchar(255) NOT NULL DEFAULT '',
`OXTEMPLATE` varchar(128) NOT NULL DEFAULT '',
`OXQUESTIONEMAIL` varchar(255) NOT NULL DEFAULT '',
`OXISSEARCH` tinyint(1) NOT NULL DEFAULT '1',
`OXVARNAME` varchar(255) NOT NULL DEFAULT '',
`OXVARSTOCK` int(5) NOT NULL DEFAULT '0',
`OXVARCOUNT` int(1) NOT NULL DEFAULT '0',
`OXVARSELECT` varchar(255) NOT NULL DEFAULT '',
`OXVARMINPRICE` double NOT NULL DEFAULT '0',
`OXVARNAME_1` varchar(255) NOT NULL DEFAULT '',
`OXVARSELECT_1` varchar(255) NOT NULL DEFAULT '',
`OXVARNAME_2` varchar(255) NOT NULL DEFAULT '',
`OXVARSELECT_2` varchar(255) NOT NULL DEFAULT '',
`OXVARNAME_3` varchar(255) NOT NULL DEFAULT '',
`OXVARSELECT_3` varchar(255) NOT NULL DEFAULT '',
`OXTITLE_1` varchar(255) NOT NULL DEFAULT '',
`OXSHORTDESC_1` varchar(255) NOT NULL DEFAULT '',
`OXURLDESC_1` varchar(255) NOT NULL DEFAULT '',
`OXSEARCHKEYS_1` varchar(255) NOT NULL DEFAULT '',
`OXTITLE_2` varchar(255) NOT NULL DEFAULT '',
`OXSHORTDESC_2` varchar(255) NOT NULL DEFAULT '',
`OXURLDESC_2` varchar(255) NOT NULL DEFAULT '',
`OXSEARCHKEYS_2` varchar(255) NOT NULL DEFAULT '',
`OXTITLE_3` varchar(255) NOT NULL DEFAULT '',
`OXSHORTDESC_3` varchar(255) NOT NULL DEFAULT '',
`OXURLDESC_3` varchar(255) NOT NULL DEFAULT '',
`OXSEARCHKEYS_3` varchar(255) NOT NULL DEFAULT '',
`OXBUNDLEID` varchar(32) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL DEFAULT '',
`OXFOLDER` varchar(32) NOT NULL DEFAULT '',
`OXSUBCLASS` varchar(32) NOT NULL DEFAULT '',
`OXSTOCKTEXT_1` varchar(255) NOT NULL DEFAULT '',
`OXSTOCKTEXT_2` varchar(255) NOT NULL DEFAULT '',
`OXSTOCKTEXT_3` varchar(255) NOT NULL DEFAULT '',
`OXNOSTOCKTEXT_1` varchar(255) NOT NULL DEFAULT '',
`OXNOSTOCKTEXT_2` varchar(255) NOT NULL DEFAULT '',
`OXNOSTOCKTEXT_3` varchar(255) NOT NULL DEFAULT '',
`OXSORT` int(5) NOT NULL DEFAULT '0',
`OXSOLDAMOUNT` double NOT NULL DEFAULT '0',
`OXNONMATERIAL` int(1) NOT NULL DEFAULT '0',
`OXFREESHIPPING` int(1) NOT NULL DEFAULT '0',
`OXREMINDACTIVE` int(1) NOT NULL DEFAULT '0',
`OXREMINDAMOUNT` double NOT NULL DEFAULT '0',
`OXAMITEMID` varchar(32) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL DEFAULT '',
`OXAMTASKID` varchar(16) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL DEFAULT '0',
`OXVENDORID` char(32) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL DEFAULT '',
`OXMANUFACTURERID` char(32) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL DEFAULT '',
`OXSKIPDISCOUNTS` tinyint(1) NOT NULL DEFAULT '0',
`OXRATING` double NOT NULL DEFAULT '0',
`OXRATINGCNT` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`OXID`),
KEY `OXCOUNT` (`OXPARENTID`,`OXSHOPID`),
KEY `OXSORT` (`OXSORT`),
KEY `OXSHOPID` (`OXSHOPID`),
KEY `OXISSEARCH` (`OXISSEARCH`),
KEY `OXARTNUM` (`OXARTNUM`),
KEY `OXSTOCK` (`OXSTOCK`),
KEY `OXSTOCKFLAG` (`OXSTOCKFLAG`),
KEY `OXINSERT` (`OXINSERT`),
KEY `OXVARNAME` (`OXVARNAME`),
KEY `OXACTIVE` (`OXACTIVE`),
KEY `OXACTIVEFROM` (`OXACTIVEFROM`),
KEY `OXACTIVETO` (`OXACTIVETO`),
KEY `OXVENDORID` (`OXVENDORID`),
KEY `OXMANUFACTURERID` (`OXMANUFACTURERID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
|
Aktueller Code:
PHP-Code:
<?php
$filename = 'result_child.xml';
if(file_exists($filename)) {
$xml = simplexml_load_file($filename);
if($xml) {
$db = mysql_connect("localhost","root","root") or die ("Verbindung fehlgeschlagen");
mysql_select_db("oxidtest",$db) or die (mysql_error());
foreach($xml->content as $content) {
$artnr = $content->articleNr->de;
$name = $content->name->de;
$groesse = $content->groesse->de;
$preis = $content->preis->de;
$SQL_statement="INSERT INTO oxarticles (OXARTNUM,OXTITLE,OXUNITQUANTITY,OXPRICE)
VALUES ('".$artnr."','".$name."','".$groesse."','".$preis."')";
$resultset=mysql_query($SQL_statement);
}
echo mysql_errno() . ": " . mysql_error(). "\n";
mysql_close();
}
}
?>
Auszug aus der XML Datei:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<system>
<content><published>2009.10.15T00:00:00</published><name><de>Steinreiniger, 250 ml</de></name><articleNr><de>10808</de></articleNr><bestnr><de /></bestnr><groesse><de>250 ml</de></groesse><colour><de><option>Transparent</option></de></colour><preis><de>520</de></preis></content>
<content><published>2009.10.15T00:00:00</published><name><de>Steinreiniger, 1 l</de></name><articleNr><de>10812</de></articleNr><bestnr><de /></bestnr><groesse><de>1 Liter</de></groesse><colour><de><option>Transparent</option></de></colour><preis><de>1225</de></preis></content>
<content><published>2009.10.15T00:00:00</published><name><de>Steinreiniger, 5 l</de></name><articleNr><de>10813</de></articleNr><bestnr><de /></bestnr><groesse><de>5 Liter</de></groesse><colour><de><option>Transparent</option></de></colour><preis><de>5220</de></preis></content>
</system>
Viele Grüße
Mario
|
12.04.2010, 15:36:09
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: XML aus MySQL auslesen
Ok, kleine Korrektur notwendig:
PHP-Code:
<?php
$filename = 'result_child.xml';
$i = 1;
if(file_exists($filename)) {
$xml = simplexml_load_file($filename);
if($xml) {
$db = mysql_connect("localhost","root","root") or die (mysql_error());
mysql_select_db("oxidtest", $db) or die (mysql_error());
foreach($xml->content as $content) {
$artnr = $content->articleNr->de;
$name = $content->name->de;
$groesse = $content->groesse->de;
$preis = $content->preis->de;
$SQL_statement = "INSERT INTO oxarticles
(OXID, OXARTNUM, OXTITLE, OXUNITQUANTITY, OXPRICE)
VALUES ($i, '".$artnr."', '".$name."', '".$groesse."', '".$preis."')";
$resultset = mysql_query($SQL_statement) or die(mysql_error());
$i++;
}
mysql_close($db);
}
}
?>
Nach COPY & PASTE sollte es nun flutschen ...
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 13:31:34 Uhr.
|