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 |
11.04.2010, 18:48:47
|
|
Senior Member
|
|
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 55
Beiträge: 1.044
|
|
AW: XML aus MySQL auslesen
Noch schnell eine kurze Erklärung, wie es funktionieren soll.
Du lädst die Datei, wenn sie existiert. Sollte das Laden der Datei geklappt haben stellst du die Verbindung zur DB und korrekten Tabelle her.
Theoretisch könntest du dies auch vorher machen.
Dann wird der XML String per FOREACH jeder Artikel ($content) durchlaufen und die Variablen neu ja nach Angaben gesetzt.
Pro Artikel wird dann ein Insert abgesetzt.
Foreach endet automatisch sobald er die koplette Datei abgearbeitet ist.
Anmerkung: In dem Skript werden zur Zeit keine Fehler abgefangen und die Anzahl der betroffenen Datensätze werden auch nicht gezählt.
Du müsstest also eiegtnlich noch prüfen ob $resultset funktioniert hat.
Mit mysql_affected_rows könntest du einen Zähler einbauen.
|
11.04.2010, 19:21:21
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: XML aus MySQL auslesen
Zitat:
Zitat von urvater
[...]
PHP-Code:
$filename = 'body.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) {
$bestellnr = $content->bestnr;
$name = $content->name;
$groesse = $content->groesse;
$thumb = $content->thumbpic;
$pic = $content->pic;
$bigpic = $content->bigpic;
$beschreibung = $content->text;
$preis = $content->preis;
$waehrung = $content->euro;
$SQL_statement="INSERT INTO xmltest (OXARTNUM,OXTITLE,OXPRICE,OXUNITQUANTITY,OXLONGDESC,OXPIC1)
VALUES ('".$bestellnr."','".$name."','".$preis."','".$groesse."','".$beschreibung."','".$pic."')";
$resultset=mysql_query($SQL_statement)
}
mysql_close();
}
}
|
Kleine Korrektur(en):
PHP-Code:
...
foreach($xml->content as $content) {
$bestellnr = $content->bestnr->de;
$name = $content->name->de;
$groesse = $content->groesse->de;
$thumb = $content->thumbpic;
$pic = $content->pic;
$bigpic = $content->bigpic;
$beschreibung = $content->text->de;
$preis = $content->preis->de;
$wäehrung = $content->euro->de;
$SQL_statement="INSERT INTO xmltest
OXARTNUM, OXTITLE, OXPRICE, OXUNITQUANTITY, OXLONGDESC, OXPIC1)
VALUES ('".$bestellnr."','".$name."','".$preis."',
'".$groesse."','".$beschreibung."','".$pic."')";
$resultset=mysql_query($SQL_statement);
;-)
__________________
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!
|
11.04.2010, 19:58:47
|
|
Anfänger
|
|
Registriert seit: Apr 2010
Alter: 57
Beiträge: 25
|
|
AW: XML aus MySQL auslesen
Danke euch beiden! Hab noch einen Fehler:
Parse error: syntax error, unexpected '}' in - on line 19
Errors parsing - (das ist die Klammer vor mysql_close();) Da schau ich gleich drüber.
Und INSERT INTO hab ich mal auf oxarticles geändert. Ich will ja die Tabelle (oxarticles) und nicht die ganze DB (xmltest) ansprechen. War mein Fehler.
Viele Grüße
Mario
|
11.04.2010, 20:04:47
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: XML aus MySQL auslesen
Zitat:
Zitat von atomicbunny
Danke euch beiden! Hab noch einen Fehler:
Parse error: syntax error, unexpected '}' in - on line 19
Errors parsing - (das ist die Klammer vor mysql_close();) Da schau ich gleich drüber.
|
Nein ist weiter oben
PHP-Code:
$resultset = mysql_query($SQL_statement) or die(mysql_error());
dort fehlt bei urvater das ; - hatte ich oben schon drauf hingewiesen.
__________________
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!
|
11.04.2010, 20:43:59
|
|
Anfänger
|
|
Registriert seit: Apr 2010
Alter: 57
Beiträge: 25
|
|
AW: XML aus MySQL auslesen
Ach ja, stimmt ja. Von der Fehlermeldung aus zurück suchen. Geändert.
Schreibt allerdings nichts in die DB. ;-( Ich such weiter.
Viele Grüße
Mario
|
11.04.2010, 20:58:07
|
|
Anfänger
|
|
Registriert seit: Apr 2010
Alter: 57
Beiträge: 25
|
|
AW: XML aus MySQL auslesen
Ändert zwar auch nichts, aber wahrscheinlich hab ich auch noch einen Fehler fabriziert.
Wenn die XML Datei so aussieht:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<system>
<content timestamp_de="2009-04-16 09:56:56.74">
<published>2009.02.18T00:00:00</published>
<name>Produkt 1</name>
<bestnr>54654</bestnr>
<groesse>56x89x98</groesse>
<euro>2005</euro>
<thumbpic>os_thumbbild_01.jpg</thumbpic>
<pic>os_produktbild_01.jpg</pic>
<bigpic>os_musterbild_01.jpg</bigpic>
<text>Produktbeschreibung</text>
<preis>1535</preis>
</content>
<content timestamp_de="2009-04-16 09:56:56.74">
<published>2009.02.18T00:00:00</published>
<name>Produkt 1</name>
<bestnr>54654</bestnr>
<groesse>56x89x98</groesse>
<euro>2005</euro>
<thumbpic>os_thumbbild_01.jpg</thumbpic>
<pic>os_produktbild_01.jpg</pic>
<bigpic>os_musterbild_01.jpg</bigpic>
<text>Produktbeschreibung</text>
<preis>1535</preis>
</content>
...
</system>
müsste es dann nicht
PHP-Code:
foreach($xml->system->content as $content)
heissen?
Viele Grüße
Mario
|
11.04.2010, 23:32:46
|
|
Anfänger
|
|
Registriert seit: Apr 2010
Alter: 57
Beiträge: 25
|
|
AW: XML aus MySQL auslesen
Zitat:
müsste es dann nicht
PHP-Code:
foreach($xml->system->content as $content)
heissen?
|
Muss es nicht. Ich habs probiert. Das Problem ist ein anderes. Wenn ich eine neue DB und diese sechs Felder (OXARTNUM ...) anlege funktioniert es! Nur in die originale neue eigene Shop DB wird es nicht eingelesen. Ich brech ins Essen ...
Viele Grüße
Mario
|
12.04.2010, 07:31:33
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: XML aus MySQL auslesen
Zitat:
Zitat von atomicbunny
Muss es nicht. Ich habs probiert. Das Problem ist ein anderes. Wenn ich eine neue DB und diese sechs Felder (OXARTNUM ...) anlege funktioniert es! Nur in die originale neue eigene Shop DB wird es nicht eingelesen. Ich brech ins Essen ...
|
Befinden sich denn die Tabellen in der gleichen Datenbank?
__________________
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, 08:13:37
|
|
Anfänger
|
|
Registriert seit: Apr 2010
Alter: 57
Beiträge: 25
|
|
AW: XML aus MySQL auslesen
Moin!
Nein, ich hab eine neue DB angelegt und die sechs Felder mit Standardwerten:
Code:
CREATE TABLE `xmlimport` (
`id` int(11) NOT NULL,
`OXARTNUM` varchar(256) NOT NULL,
`OXTITLE` varchar(256) NOT NULL,
`OXPRICE` varchar(256) NOT NULL,
`OXUNITQUANTITY` varchar(256) NOT NULL,
`OXLONGDESC` varchar(256) NOT NULL,
`OXPIC1` varchar(256) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
Ich kann aber bis jetzt keinen Unterschied zur eigentlichen Shop DB feststellen (obwohl da in der Table Info etwas mehr steht). Mal wieder ne blöde Frage: Kann es so etwas wie einen Schreibschutz „von aussen“ geben? Dass vielleicht die Shopsoftware selbst schreiben kann, aber sonst eben nicht?
Viele Grüße
Mario
|
12.04.2010, 08:47:50
|
|
Anfänger
|
|
Registriert seit: Apr 2010
Alter: 57
Beiträge: 25
|
|
AW: XML aus MySQL auslesen
So sieht die originale Shop DB aus (die nicht benötigten Felder hab ich nur zur Übersicht hier rausgenommen)
Code:
CREATE TABLE `oxarticles` (
`OXID` char(32) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
`OXARTNUM` varchar(255) NOT NULL DEFAULT '',
`OXPRICE` double NOT NULL DEFAULT '0',
`OXUNITQUANTITY` double NOT NULL DEFAULT '0',
`OXPIC1` varchar(128) NOT NULL DEFAULT '',
`OXTITLE` varchar(255) NOT NULL DEFAULT '',
`OXSHORTDESC` varchar(255) NOT NULL DEFAULT '',
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
Viele Grüße
Mario
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
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 14:50:19 Uhr.
|